[M120 Migration][MM] Support W3C EME
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / unittest / utc_blink_ewk_policy_decision_use_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
7 class utc_blink_ewk_policy_decision_use : public utc_blink_ewk_base {
8
9 protected:
10  void PostSetUp() override {
11    evas_object_smart_callback_add(GetEwkWebView(), "policy,navigation,decide",
12                                   policy_navigation_decide, this);
13   }
14
15   void PreTearDown() override {
16     evas_object_smart_callback_del(GetEwkWebView(), "policy,navigation,decide", policy_navigation_decide);
17   }
18
19   void LoadFinished(Evas_Object* webview) override {
20     EventLoopStop(utc_blink_ewk_base::Success); // will noop if EventLoopStop was alraedy called
21   }
22
23   static void policy_navigation_decide(void* data, Evas_Object* webview, void* event_info)
24   {
25     utc_message("[policy_navigation_decide] :: \n");
26     utc_blink_ewk_policy_decision_use *owner = static_cast<utc_blink_ewk_policy_decision_use*>(data);
27     Ewk_Policy_Decision* policy_decision = (Ewk_Policy_Decision*)event_info;
28
29     if (policy_decision && ewk_policy_decision_use(policy_decision)) {
30
31       owner->EventLoopStop(utc_blink_ewk_base::Success);
32     }
33   }
34 };
35
36 /**
37  * @brief Tests if use operation for policy decision is set properly
38  */
39 TEST_F(utc_blink_ewk_policy_decision_use, POS_TEST)
40 {
41   Eina_Bool result = ewk_view_url_set(GetEwkWebView(), "http://www.google.com");
42   if (!result)
43     FAIL();
44
45   utc_blink_ewk_base::MainLoopResult main_result = EventLoopStart();
46   if (main_result != utc_blink_ewk_base::Success)
47     FAIL();
48 }
49
50 /**
51  * @brief Tests if function works properly in case of NULL of a webview
52  */
53 TEST_F(utc_blink_ewk_policy_decision_use, NEG_TEST)
54 {
55   utc_check_ne(ewk_policy_decision_use(0), EINA_TRUE);
56 }