[M120 Migration][MM] Support W3C EME
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / unittest / utc_blink_ewk_geolocation_permission_reply_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 /* Define those macros _before_ you include the utc_blink_ewk.h header file. */
6
7 #include "utc_blink_ewk_base.h"
8
9 class utc_blink_ewk_geolocation_permission_reply : public utc_blink_ewk_base {
10
11 protected:
12  void PostSetUp() override {
13    ewk_view_geolocation_permission_callback_set(GetEwkWebView(), nullptr,
14                                                 nullptr);
15    evas_object_smart_callback_add(
16        GetEwkWebView(), "geolocation,permission,request",
17        ToSmartCallback(request_geolocation_permisson), this);
18   }
19
20   void PreTearDown() override {
21     evas_object_smart_callback_del(GetEwkWebView(), "geolocation,permission,request",
22                                    ToSmartCallback(request_geolocation_permisson));
23   }
24
25   void ConsoleMessage(Evas_Object*, const Ewk_Console_Message* msg) override {
26     utc_message("JavaScript::console:\t\"%s\"", ewk_console_message_text_get(msg));
27     EventLoopStop(Success);
28   }
29
30   static void request_geolocation_permisson(utc_blink_ewk_geolocation_permission_reply* owner,
31                                Evas_Object*, Ewk_Geolocation_Permission_Request* permission_request)
32   {
33     utc_message("%s", __PRETTY_FUNCTION__);
34     EXPECT_TRUE(permission_request);
35     ASSERT_TRUE(owner);
36     EXPECT_EQ(EINA_TRUE, ewk_geolocation_permission_reply(permission_request, owner->set));
37   }
38
39 protected:
40   Eina_Bool set;
41 };
42
43 /**
44  * @brief Check for NULL tolerance
45  */
46 TEST_F(utc_blink_ewk_geolocation_permission_reply, NullArg)
47 {
48   ASSERT_EQ(EINA_FALSE, ewk_geolocation_permission_reply(NULL, EINA_TRUE));
49 }
50
51 /**
52  * @brief Test for reject to geolocation permission for frame.
53  */
54 TEST_F(utc_blink_ewk_geolocation_permission_reply, False)
55 {
56   set = EINA_FALSE;
57   EXPECT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(),
58             GetResourceUrl("common/sample_js_geolocation.html").c_str()));
59   EXPECT_EQ(Success, EventLoopStart());
60   ASSERT_STREQ("EWK Geolocation PERMISSION_DENIED", ewk_view_title_get(GetEwkWebView()));
61 }
62
63 /**
64  * @brief Test for allowed to geolocation permission for frame.
65  */
66 TEST_F(utc_blink_ewk_geolocation_permission_reply, True)
67 {
68   set = EINA_TRUE;
69   ASSERT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(),
70             GetResourceUrl("common/sample_js_geolocation.html").c_str()));
71   EXPECT_EQ(Success, EventLoopStart());
72   EXPECT_STRNE("EWK Geolocation TIMEOUT", ewk_view_title_get(GetEwkWebView())) <<
73                                                  "\e[43mIs GPS enabled and receives a signal?\e[0m";
74   ASSERT_STREQ("EWK Geolocation SUCCESS", ewk_view_title_get(GetEwkWebView()));
75 }