[M120 Migration][MM] Support W3C EME
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / unittest / utc_blink_ewk_certificate_policy_decision_certificate_pem_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_certificate_pem_get : public utc_blink_ewk_base
12 {
13 protected:
14  void PostSetUp() override {
15    pem = 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(), "request,certificate,confirm", policy_decision);
22     eina_stringshare_del(pem);
23   }
24
25   void LoadFinished(Evas_Object* webview) override {
26     EventLoopStop(utc_blink_ewk_base::Failure); // will noop if EventLoopStop was alraedy called
27   }
28
29   static void policy_decision(void* data, Evas_Object* webview, void* event_info)
30   {
31     utc_message("[policy decision] :: \n");
32     utc_blink_ewk_certificate_policy_decision_certificate_pem_get *owner =
33         static_cast<utc_blink_ewk_certificate_policy_decision_certificate_pem_get*>(data);
34
35     Ewk_Certificate_Policy_Decision* policy = (Ewk_Certificate_Policy_Decision*)event_info;
36
37     owner->pem = eina_stringshare_add(ewk_certificate_policy_decision_certificate_pem_get(policy));
38     if (policy && owner->pem) {
39       utc_message("[policy decision] :: pem: %s\n", owner->pem);
40       owner->EventLoopStop(utc_blink_ewk_base::Success);
41     }
42   }
43
44 protected:
45   Eina_Stringshare* pem;
46 };
47
48 /**
49 * @brief Checking whether ewk_certificate_policy_decision_certificate_pem_get
50 * returns not empty string.
51 */
52 TEST_F(utc_blink_ewk_certificate_policy_decision_certificate_pem_get, POS_TEST)
53 {
54   ASSERT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(), URL));
55   ASSERT_EQ(Success, EventLoopStart());
56   ASSERT_STRNE("", pem);
57 }
58
59 /**
60 * @brief Checking whether function works properly in case of NULL argument.
61 */
62 TEST_F(utc_blink_ewk_certificate_policy_decision_certificate_pem_get, NEG_TEST)
63 {
64   ASSERT_STREQ("", ewk_certificate_policy_decision_certificate_pem_get(NULL));
65 }