[M120 Migration][MM] Support W3C EME
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / unittest / utc_blink_ewk_view_quota_permission_request_cancel_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 #include "utc_blink_ewk_base.h"
6
7 #define SAMPLE_HTML_FILE        ("/ewk_view/quota_ask.html")
8
9
10 class utc_blink_ewk_view_quota_permission_request_cancel : public utc_blink_ewk_base
11 {
12 protected:
13  void PostSetUp() override {
14    isTitleNull = true;
15    title = "";
16    evas_object_smart_callback_add(GetEwkWebView(), "title,changed",
17                                   ToSmartCallback(title_changed), this);
18   }
19
20   void PreTearDown() override {
21     evas_object_smart_callback_del(GetEwkWebView(), "title,changed",
22                                    ToSmartCallback(title_changed));
23   }
24
25   static void quotaPermission(Evas_Object*, const Ewk_Quota_Permission_Request* request,
26                               utc_blink_ewk_view_quota_permission_request_cancel* owner)
27   {
28     utc_message("[ %s ]", __PRETTY_FUNCTION__);
29     if (!request) {
30       ASSERT_TRUE(owner);
31       owner->EventLoopStop(Failure);
32       return;
33     }
34     ewk_view_quota_permission_request_cancel(request);
35   }
36
37   static void title_changed(utc_blink_ewk_view_quota_permission_request_cancel* owner,
38                             Evas_Object*, const char* title){
39     utc_message("[ %s ]", __PRETTY_FUNCTION__);
40     ASSERT_TRUE(owner);
41     if (!title) {
42       owner->isTitleNull = true;
43       owner->title = "";
44       owner->EventLoopStop(Failure);
45       return;
46     }
47     owner->isTitleNull = false;
48     owner->title = title;
49     // Ignore initial title
50     if (owner->title != "No reply yet")
51       owner->EventLoopStop(Success);
52   }
53
54 protected:
55   bool isTitleNull;
56   std::string title;
57 };
58
59 /**
60  * @brief Positive  test case of ewk_view_quota_permission_request_cancel()
61  * ewk_view_quota_permission_request_callback should be set if the page content triggers a request callback
62  */
63 TEST_F(utc_blink_ewk_view_quota_permission_request_cancel, POS_TEST)
64 {
65   ewk_view_quota_permission_request_callback_set(
66                            GetEwkWebView(),
67                            reinterpret_cast<Ewk_Quota_Permission_Request_Callback>(quotaPermission),
68                            this);
69   ASSERT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(),
70                                         GetResourceUrl(SAMPLE_HTML_FILE).c_str()));
71   ASSERT_EQ(Success, EventLoopStart());
72   ASSERT_FALSE(isTitleNull);
73   ASSERT_STREQ("0", title.c_str());
74 }
75
76 /**
77 * @brief Checking whether function works properly in case of NULL of a webview and callback.
78 */
79 TEST_F(utc_blink_ewk_view_quota_permission_request_cancel, NEG_TEST)
80 {
81   ewk_view_quota_permission_request_cancel(NULL);
82 }