[M120 Migration][MM] Support W3C EME
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / unittest / utc_blink_ewk_view_quota_permission_request_callback_set_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_callback_set : public utc_blink_ewk_base
11 {
12 protected:
13
14   static void quotaPermission(Evas_Object*,
15                               const Ewk_Quota_Permission_Request* request,
16                               utc_blink_ewk_view_quota_permission_request_callback_set* owner)
17   {
18     utc_message("[ %s ]", __PRETTY_FUNCTION__);
19     ASSERT_TRUE(owner);
20     EXPECT_TRUE(request);
21     ewk_view_quota_permission_request_cancel(request);
22     owner->EventLoopStop(Success);
23   }
24 };
25
26 /**
27  * @brief Positive  test case of ewk_view_quota_permission_request_callback_set()
28  * ewk_view_quota_permission_request_callback should be set if the page content triggers a request callback
29  */
30 TEST_F(utc_blink_ewk_view_quota_permission_request_callback_set, POS_TEST)
31 {
32   /*
33    * Because we cannot predict when quota permission callback is called
34    * (can be called after LoadFinish event!) a timeout is required.
35    * Callback is pure asynchronous.
36    */
37   ewk_view_quota_permission_request_callback_set(
38                            GetEwkWebView(),
39                            reinterpret_cast<Ewk_Quota_Permission_Request_Callback>(quotaPermission),
40                            this);
41   ASSERT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(),
42                                         GetResourceUrl(SAMPLE_HTML_FILE).c_str()));
43   ASSERT_EQ(Success, EventLoopStart(10));
44
45   ewk_view_quota_permission_request_callback_set(GetEwkWebView(), NULL, NULL);
46   ASSERT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(),
47                                         GetResourceUrl(SAMPLE_HTML_FILE).c_str()));
48   ASSERT_EQ(Timeout, EventLoopStart(10));
49 }
50
51 /**
52 * @brief Checking whether function works properly in case of NULL of a webview and callback.
53 */
54 TEST_F(utc_blink_ewk_view_quota_permission_request_callback_set, NEG_TEST)
55 {
56   ewk_view_quota_permission_request_callback_set(NULL, NULL, NULL);
57 }