[M120 Migration][MM] Support W3C EME
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / unittest / utc_blink_cb_magnifier_show.cpp
1 // Copyright 2014-2016 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 URL  ("http://google.com")
8
9 class utc_blink_cb_magnifier_show : public utc_blink_ewk_base
10 {
11 public:
12     /* Callback for "load,finished" */
13  void LoadFinished(Evas_Object* webview) override {
14    EventLoopStop(utc_blink_ewk_base::Success);
15     }
16
17     void PostSetUp() override {
18       evas_object_smart_callback_add(GetEwkWebView(), "magnifier,show", magnifier_show_cb, this);
19       touch_events_enabled = ewk_view_touch_events_enabled_get(GetEwkWebView());
20       ewk_view_touch_events_enabled_set(GetEwkWebView(), EINA_TRUE);
21     }
22
23     void PreTearDown() override {
24       ewk_view_touch_events_enabled_set(GetEwkWebView(), touch_events_enabled);
25       evas_object_smart_callback_del(GetEwkWebView(), "magnifier,show", magnifier_show_cb);
26     }
27
28     static void magnifier_show_cb(void* data, Evas_Object* webview, void* event_info)
29     {
30       utc_blink_cb_magnifier_show *owner = NULL;
31       OwnerFromVoid(data, &owner);
32       owner->EventLoopStop(Success);
33     }
34
35     static Eina_Bool do_text_selection_down(void* data)
36     {
37       utc_blink_cb_magnifier_show *owner = NULL;
38       OwnerFromVoid(data, &owner);
39       Ewk_View_Smart_Data* ewk_smart_data = static_cast<Ewk_View_Smart_Data*>(evas_object_smart_data_get(owner->GetEwkWebView()));
40       ewk_smart_data->api->text_selection_down(ewk_smart_data, 10, 10);
41       return ECORE_CALLBACK_CANCEL;
42     }
43
44     static void job_do_text_selection_down(utc_blink_ewk_base* data)
45     {
46       utc_blink_cb_magnifier_show* owner =
47         static_cast<utc_blink_cb_magnifier_show*>(data);
48       ecore_timer_add(1.0, do_text_selection_down, owner);
49     }
50
51  protected:
52   utc_blink_cb_magnifier_show()
53       : touch_events_enabled(EINA_FALSE) {}
54
55   Eina_Bool touch_events_enabled;
56 };
57
58 /**
59  * @brief Tests "magnifier,show" callback
60  */
61 TEST_F(utc_blink_cb_magnifier_show, callback)
62 {
63     utc_message("Loading url: %s", URL);
64     ASSERT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(), URL));
65
66     ASSERT_EQ(Success, EventLoopStart());
67
68     SetTestJob(utc_blink_cb_magnifier_show::job_do_text_selection_down);
69     ASSERT_EQ(Success, EventLoopStart());
70 }