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.
5 /* Define those macros _before_ you include the utc_blink_ewk.h header file. */
7 #include "utc_blink_ewk_base.h"
9 #define URL "https://wrong.host.badssl.com/"
11 class utc_blink_ewk_certificate_policy_decision_suspend : public utc_blink_ewk_base
14 utc_blink_ewk_certificate_policy_decision_suspend()
15 : certificate_policy_decision(NULL)
16 , policy_suspended(false)
19 void PostSetUp() override
21 evas_object_smart_callback_add(GetEwkWebView(), "request,certificate,confirm", policy_decision, this);
24 void PreTearDown() override
26 evas_object_smart_callback_del(GetEwkWebView(), "request,certificate,confirm", policy_decision);
29 void LoadFinished(Evas_Object* webview) override
31 utc_message("[policy decision] :: Load finished for URL: %s\n", ewk_view_url_get(webview));
33 EventLoopStop(utc_blink_ewk_base::Failure);
36 static void policy_decision(void* data, Evas_Object* webview, void* event_info)
38 utc_message("[policy decision] :: \n");
40 utc_blink_ewk_certificate_policy_decision_suspend *owner =
41 static_cast<utc_blink_ewk_certificate_policy_decision_suspend*>(data);
42 ASSERT_TRUE(owner) << "Event triggered with invalid data object";
44 owner->certificate_policy_decision = static_cast<Ewk_Certificate_Policy_Decision*>(event_info);
46 if (owner->certificate_policy_decision && !owner->policy_suspended) {
47 ewk_certificate_policy_decision_suspend(owner->certificate_policy_decision);
48 owner->policy_suspended = true;
52 bool TimeOut() override
54 EventLoopStop(policy_suspended ? Success : Failure);
60 Ewk_Certificate_Policy_Decision* certificate_policy_decision;
61 bool policy_suspended;
65 * @brief Checking whether certification request confirmation works properly.
67 TEST_F(utc_blink_ewk_certificate_policy_decision_suspend, POS_TEST)
69 ASSERT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(), URL));
71 ASSERT_EQ(Success, EventLoopStart(5));
73 ASSERT_TRUE(policy_suspended);
74 ASSERT_TRUE(certificate_policy_decision != NULL);
76 ewk_certificate_policy_decision_allowed_set(certificate_policy_decision, EINA_TRUE);
77 ASSERT_EQ(Failure, EventLoopStart(10));
81 * @brief Checking whether function works properly in case of NULL argument.
83 TEST_F(utc_blink_ewk_certificate_policy_decision_suspend, NEG_TEST)
85 ASSERT_EQ(EINA_FALSE, ewk_certificate_policy_decision_suspend(NULL));