Fixed a problem that remember popup does not disappear
[framework/web/webkit-efl.git] / TC / unit_test / webkit2 / utc_webkit2_ewk_policy_decision_host_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_policy_decision_host_get_func.c
24  * @author Jongseok Yang <js45.yang@samsung.com>
25  * @date 2012-06-12
26  * @brief Tests EWK function ewk_policy_decision_host_get()
27  */
28
29 /* Define those macros _before_ you include the utc_webkit2_ewk.h header file. */
30 #define TESTED_FUN_NAME ewk_policy_decision_host_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 g_result = EINA_FALSE;
37
38 static void load_finished(void* data, Evas_Object* webview, void* event_info)
39 {
40     utc_message("[load_finished] :: \n");
41
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     g_result = EINA_FALSE;
49     utc_webkit2_main_loop_quit();
50 }
51
52 static void policy_navigation_decide(void* data, Evas_Object* webview, void* event_info)
53 {
54     utc_message("[policy_navigation_decide] :: \n");
55
56     Ewk_Policy_Decision* policy_decision = (Ewk_Policy_Decision*)event_info;
57
58     if (ewk_policy_decision_host_get(policy_decision))
59         g_result = EINA_TRUE;
60     else
61         g_result = EINA_FALSE;
62
63     utc_webkit2_main_loop_quit();
64 }
65
66 static void policy_newwindow_decide(void* data, Evas_Object* webview, void* event_info)
67 {
68     utc_message("[policy_newwindow_decide] :: \n");
69 }
70
71 static void policy_response_decide(void* data, Evas_Object* webview, void* event_info)
72 {
73     utc_message("[policy_response_decide] :: \n");
74 }
75
76 /* Startup and cleanup functions */
77 static void startup(void)
78 {
79     utc_webkit2_ewk_test_init();
80
81     evas_object_smart_callback_add(test_view.webview, "load,finished", load_finished, NULL);
82     evas_object_smart_callback_add(test_view.webview, "load,error", load_error, NULL);
83     evas_object_smart_callback_add(test_view.webview, "policy,navigation,decide", policy_navigation_decide, NULL);
84 }
85
86 static void cleanup(void)
87 {
88     evas_object_smart_callback_del(test_view.webview, "load,finished", load_finished);
89     evas_object_smart_callback_del(test_view.webview, "load,error", load_error);
90     evas_object_smart_callback_del(test_view.webview, "policy,navigation,decide", policy_navigation_decide);
91
92     utc_webkit2_ewk_test_end();
93 }
94
95 /**
96  * @brief Tests if the host for policy decision is returned properly.
97  */
98 POS_TEST_FUN(1)
99 {
100     if (!ewk_view_url_set(test_view.webview, "http://www.google.com")) {
101         utc_message("[ewk_view_url_set error] :: \n");
102         utc_fail();
103     }
104
105     utc_webkit2_main_loop_begin();
106
107     utc_check_eq(g_result, EINA_TRUE);
108 }
109
110 /**
111  * @brief Tests if function works properly in case of NULL of a webview
112  */
113 NEG_TEST_FUN(1)
114 {
115     utc_check_eq(ewk_policy_decision_host_get(0), 0);
116 }