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.
5 #include "utc_blink_ewk_base.h"
6 #include "../private/ewk_main_private.h"
8 class utc_blink_ewk_home_directory_set : public utc_blink_ewk_base
13 * @brief Test if home directory is correctly set.
15 TEST_F(utc_blink_ewk_home_directory_set, POS_TEST1)
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());
26 * @brief Test if home directory path is internally stored.
28 TEST_F(utc_blink_ewk_home_directory_set, POS_TEST2)
30 char* test = strdup("/foobar");
31 ewk_home_directory_set(test);
32 const char* home_dir = ewk_home_directory_get();
34 ASSERT_STRNE(test, home_dir);
38 * @brief Test if function works correctly with NULL argument.
40 TEST_F(utc_blink_ewk_home_directory_set, NEG_TEST1)
43 const char* new_dir = "/foobar";
44 ewk_home_directory_set(new_dir);
45 ASSERT_STREQ(new_dir, ewk_home_directory_get());
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);
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);
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);
72 ASSERT_STREQ("/tmp", ewk_home_dir);