[M120 Migration][MM] Support W3C EME
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / unittest / utc_blink_ewk_certificate_policy_decision_url_get_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 /* Define those macros _before_ you include the utc_blink_ewk.h header file. */
6
7 #include "utc_blink_ewk_base.h"
8
9 #define URL "https://www.pcwebshop.co.uk/"
10
11 class utc_blink_ewk_certificate_policy_decision_url_get  : public utc_blink_ewk_base
12 {
13 protected:
14  void PostSetUp() override {
15    url = NULL;
16    evas_object_smart_callback_add(
17        GetEwkWebView(), "request,certificate,confirm", policy_decision, this);
18   }
19
20   void PreTearDown() override {
21     evas_object_smart_callback_del(GetEwkWebView(),
22         "request,certificate,confirm", policy_decision);
23     eina_stringshare_del(url);
24   }
25
26   void LoadFinished(Evas_Object* webview) override {
27     EventLoopStop(utc_blink_ewk_base::Failure); // will noop if EventLoopStop was alraedy called
28   }
29
30   static void policy_decision(void* data, Evas_Object* webview, void* event_info)
31   {
32     utc_message("[policy decision]");
33     utc_blink_ewk_certificate_policy_decision_url_get *owner =
34         static_cast<utc_blink_ewk_certificate_policy_decision_url_get*>(data);
35
36     Ewk_Certificate_Policy_Decision* policy =
37         (Ewk_Certificate_Policy_Decision*) event_info;
38
39     owner->url = eina_stringshare_add(ewk_certificate_policy_decision_url_get(policy));
40     if (policy && owner->url) {
41       utc_message("[policy decision] :: URL: %s\n", owner->url);
42       owner->EventLoopStop(utc_blink_ewk_base::Success);
43     }
44   }
45
46 protected:
47   Eina_Stringshare* url;
48 };
49
50 /**
51 * @brief Checking whether ewk_certificate_policy_decision_url_get
52 * returns not empty string.
53 */
54 TEST_F(utc_blink_ewk_certificate_policy_decision_url_get, POS_TEST)
55 {
56   ASSERT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(), URL));
57   ASSERT_EQ(Success, EventLoopStart());
58   ASSERT_STREQ(URL, url);
59 }
60
61 /**
62 * @brief Checking whether function works properly in case of NULL argument.
63 */
64 TEST_F(utc_blink_ewk_certificate_policy_decision_url_get, NEG_TEST)
65 {
66   ASSERT_STREQ("", ewk_certificate_policy_decision_url_get(NULL));
67 }