[M120 Migration][MM] Support W3C EME
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / unittest / utc_blink_ewk_home_directory_set_func.cpp
1 // Copyright 2014 Samsung Electronics. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "utc_blink_ewk_base.h"
6 #include "../private/ewk_main_private.h"
7
8 class utc_blink_ewk_home_directory_set : public utc_blink_ewk_base
9 {
10 };
11
12 /**
13  * @brief Test if home directory is correctly set.
14  */
15 TEST_F(utc_blink_ewk_home_directory_set, POS_TEST1)
16 {
17   const char* home_dir = ewk_home_directory_get();
18   ASSERT_TRUE(home_dir);
19   const char* new_dir = "/foobar";
20   ASSERT_STRNE(home_dir, new_dir);
21   ewk_home_directory_set(new_dir);
22   ASSERT_STREQ(new_dir, ewk_home_directory_get());
23 }
24
25 /**
26  * @brief Test if home directory path is internally stored.
27  */
28 TEST_F(utc_blink_ewk_home_directory_set, POS_TEST2)
29 {
30   char* test = strdup("/foobar");
31   ewk_home_directory_set(test);
32   const char* home_dir = ewk_home_directory_get();
33   test[0] = 'A';
34   ASSERT_STRNE(test, home_dir);
35 }
36
37 /**
38  * @brief Test if function works correctly with NULL argument.
39  */
40 TEST_F(utc_blink_ewk_home_directory_set, NEG_TEST1)
41 {
42   // Set any home dir
43   const char* new_dir = "/foobar";
44   ewk_home_directory_set(new_dir);
45   ASSERT_STREQ(new_dir, ewk_home_directory_get());
46
47   // Set it to NULL
48   ewk_home_directory_set(NULL);
49   const char* ewk_home_dir = ewk_home_directory_get();
50   utc_message("Home dir == %s", ewk_home_dir);
51   // Check if it was changed
52   ASSERT_STRNE(new_dir, ewk_home_dir);
53   ASSERT_STRNE("", ewk_home_dir);
54   ASSERT_TRUE(ewk_home_dir);
55
56   // Check behavior with empty string
57   ewk_home_directory_set("");
58   ewk_home_dir = ewk_home_directory_get();
59   utc_message("Home dir == %s", ewk_home_dir);
60   // Assuming $HOME is not defined as empty string
61   ASSERT_STRNE("", ewk_home_dir);
62   ASSERT_TRUE(ewk_home_dir);
63
64   // Check if it was returned as one of the the expected values
65   const char* home_dir = getenv("HOME");
66   const char* tmp_dir = getenv("TMPDIR");
67   if (home_dir && home_dir[0]) {
68     ASSERT_STREQ(home_dir, ewk_home_dir);
69   } else if (tmp_dir && tmp_dir[0]) {
70     ASSERT_STREQ(tmp_dir, ewk_home_dir);
71   } else {
72     ASSERT_STREQ("/tmp", ewk_home_dir);
73   }
74 }
75