Merge "[Cherry-pick] Refactor WrapShape classes to BasicShape" into tizen_2.1
[framework/web/webkit-efl.git] / TC / unit_test / webkit2 / utc_webkit2_ewk_hit_test_tag_name_get_func.c
1 /*
2  * WebKit2 EFL
3  *
4  * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5  *
6  * This library is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Lesser General Public License as published by the
8  * Free Software Foundation; either version 2.1 of the License, or (at your option)
9  * any later version.
10  *
11  * This library is distributed in the hope that it will be useful, but WITHOUT ANY
12  * WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14  * License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this library; if not, write to the Free Software Foundation, Inc., 51
18  * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19  *
20  */
21
22 /**
23  * @file utc_webkit2_ewk_hit_test_tag_name_get_func.c
24  * @author Yuni Jeong <yhnet.jung@samsung.com>
25  * @date 2012-06-12
26  * @brief Tests EWK function ewk_hit_test_tag_name_get()
27  */
28
29 /* Define those macros _before_ you include the utc_webkit2_ewk.h header file. */
30 #define TESTED_FUN_NAME ewk_hit_test_tag_name_get
31 #define POSITIVE_TEST_FUN_NUM 1
32 #define NEGATIVE_TEST_FUN_NUM 1
33
34 #include "utc_webkit2_ewk.h"
35
36 static Eina_Bool is_failed = EINA_FALSE;
37
38 static void load_finished(void* data, Evas_Object* webview, void* event_info)
39 {
40     utc_message("[load_finished] :: \n");
41     is_failed = EINA_FALSE;
42     utc_webkit2_main_loop_quit();
43 }
44
45 static void load_error(void* data, Evas_Object* webview, void* event_info)
46 {
47     utc_message("[load_error] :: \n");
48     is_failed = EINA_TRUE;
49     utc_webkit2_main_loop_quit();
50 }
51
52 /* Startup and cleanup functions */
53 static void startup(void)
54 {
55     utc_webkit2_ewk_test_init();
56
57     evas_object_smart_callback_add(test_view.webview, "load,finished", load_finished, NULL);
58     evas_object_smart_callback_add(test_view.webview, "load,error", load_error, NULL);
59 }
60
61
62 static void cleanup(void)
63 {
64     evas_object_smart_callback_del(test_view.webview, "load,finished", load_finished);
65     evas_object_smart_callback_del(test_view.webview, "load,error", load_error);
66
67     utc_webkit2_ewk_test_end();
68 }
69
70 /**
71  * @brief Checking whether the tag name of hit element is returned properly.
72  */
73 POS_TEST_FUN(1)
74 {
75     char* full_path = generate_full_resource_path("/ewk_hit_test/index.html");
76     if (!full_path)
77         utc_fail();
78
79     Eina_Bool result = ewk_view_url_set(test_view.webview, full_path);
80     if (!result)
81         utc_fail();
82     free(full_path);
83     utc_webkit2_main_loop_begin();
84
85     if (is_failed)
86         utc_fail();
87
88     Ewk_Hit_Test* hit_test = ewk_view_hit_test_new(test_view.webview, 80, 100, EWK_HIT_TEST_MODE_NODE_DATA);
89     if (ewk_hit_test_tag_name_get(hit_test))
90         result = EINA_TRUE;
91     else
92         result = EINA_FALSE;
93
94     ewk_hit_test_free(hit_test);
95     utc_check_eq(result, EINA_TRUE);
96 }
97
98 /**
99  * @brief Checking whether function works properly in case of NULL of a hit test instance.
100  */
101 NEG_TEST_FUN(1)
102 {
103     utc_check_eq(ewk_hit_test_tag_name_get(NULL), 0);
104 }