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 #include "utc_blink_ewk_notification_test_base.h"
7 class utc_blink_ewk_notification_policies_removed : public utc_blink_ewk_notification_test_base {
9 utc_blink_ewk_notification_policies_removed()
10 : permission_request_call_cnt(0)
17 ~utc_blink_ewk_notification_policies_removed() override {
18 eina_stringshare_del(proto_);
19 eina_stringshare_del(host_);
22 /* Callback for notification permission request */
23 Eina_Bool NotificationPermissionRequest(
25 Ewk_Notification_Permission_Request* request) override {
26 const Ewk_Security_Origin* origin = ewk_notification_permission_request_origin_get(request);
29 EventLoopStop(Failure);
34 ++permission_request_call_cnt;
35 proto_ = eina_stringshare_add(ewk_security_origin_protocol_get(origin));
36 host_ = eina_stringshare_add(ewk_security_origin_host_get(origin));
37 ewk_notification_permission_reply(request, EINA_TRUE);
41 void NotificationShow(Ewk_Notification*) override { EventLoopStop(Success); }
44 int permission_request_call_cnt;
45 Eina_Stringshare* proto_;
46 Eina_Stringshare* host_;
47 const char* const expected_proto_;
48 const char* const expected_host_;
51 TEST_F(utc_blink_ewk_notification_policies_removed, POS_TEST)
53 ASSERT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(), notification_sample_1.c_str()));
54 ASSERT_EQ(Success, EventLoopStart());
56 ASSERT_EQ(1, permission_request_call_cnt);
57 ASSERT_STREQ(expected_proto_, proto_);
58 ASSERT_STREQ(expected_host_, host_);
60 ASSERT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(), notification_sample_1.c_str()));
61 ASSERT_EQ(Success, EventLoopStart());
62 ASSERT_EQ(1, permission_request_call_cnt);
65 Eina_List *list = NULL;
66 Ewk_Security_Origin *origin = ewk_security_origin_new_from_string((std::string(proto_) + "://" + std::string(host_)).c_str());
67 list = eina_list_append(list, origin);
69 ASSERT_EQ(EINA_TRUE, ewk_notification_policies_removed(list));
72 EINA_LIST_FREE(list, data) {
73 origin = static_cast<Ewk_Security_Origin*>(data);
74 ewk_security_origin_free(origin);
77 ASSERT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(), notification_sample_1.c_str()));
78 ASSERT_EQ(Success, EventLoopStart());
79 ASSERT_EQ(2, permission_request_call_cnt);
82 TEST_F(utc_blink_ewk_notification_policies_removed, NEG_TEST)
84 ewk_notification_policies_removed(NULL);