1 // Copyright 2015 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_base.h"
7 class utc_blink_ewk_notification_test_base : public utc_blink_ewk_base
10 utc_blink_ewk_notification_test_base()
11 : security_origins(NULL)
12 , notification_sample_1(GetResourceUrl("/common/sample_notification_1.html"))
16 void PostSetUp() override;
17 void PreTearDown() override;
19 void NotificationShow(Ewk_Notification* notification) override {}
21 void NotificationCancel(uint64_t notificationId) override {}
23 Eina_Bool NotificationPermissionRequest(
25 Ewk_Notification_Permission_Request* request) override;
27 static Eina_Bool notification_permission_request_callback(Evas_Object* webview, Ewk_Notification_Permission_Request* request, utc_blink_ewk_notification_test_base* owner)
29 utc_message("[notification_permission_request_callback] :: ");
35 owner->EventLoopStop(Failure);
39 const Ewk_Security_Origin *perm_origin = ewk_notification_permission_request_origin_get(request);
42 std::string proto, host;
44 if (ewk_security_origin_protocol_get(perm_origin)) {
45 proto = ewk_security_origin_protocol_get(perm_origin);
48 if (ewk_security_origin_host_get(perm_origin)) {
49 host = ewk_security_origin_host_get(perm_origin);
52 Ewk_Security_Origin *origin = ewk_security_origin_new_from_string((proto + "://" + host).c_str());
53 owner->security_origins = eina_list_append(owner->security_origins, origin);
56 return owner->NotificationPermissionRequest(webview, request);
59 static void notification_show_callback(Ewk_Notification* notification, utc_blink_ewk_notification_test_base* owner)
61 utc_message("[notification_show_callback] :: ");
65 owner->EventLoopStop(Failure);
66 ASSERT_TRUE(notification);
69 owner->NotificationShow(notification);
72 static void notification_cancel_callback(uint64_t notificationId, utc_blink_ewk_notification_test_base* owner)
74 utc_message("[notification_cancel_callback] :: ");
77 if (!notificationId) {
78 owner->EventLoopStop(Failure);
79 ASSERT_TRUE(notificationId);
82 owner->NotificationCancel(notificationId);
86 Eina_List* security_origins;
87 const std::string notification_sample_1;