[M120 Migration][MM] Support W3C EME
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / unittest / utc_blink_ewk_view_hit_test_request_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 class utc_blink_ewk_view_hit_test_request: public utc_blink_ewk_base
8 {
9 protected:
10   utc_blink_ewk_view_hit_test_request()
11     : req_x(-1)
12     , req_y(-1)
13     , req_mode(-1)
14   {
15   }
16
17   void LoadFinished(Evas_Object* webview) override {
18     EventLoopStop(utc_blink_ewk_base::Success);
19   }
20
21   static void hit_test_result(Evas_Object* o, int x, int y, int mode, Ewk_Hit_Test* hit_test, void* user_data)
22   {
23     utc_message("I'm here");
24     utc_blink_ewk_view_hit_test_request* owner = NULL;
25     OwnerFromVoid(user_data, &owner);
26     ASSERT_TRUE(owner);
27
28     EXPECT_EQ(owner->req_x, x);
29     EXPECT_EQ(owner->req_y, y);
30     EXPECT_EQ(owner->req_mode, mode);
31     EXPECT_TRUE(hit_test);
32     owner->EventLoopStop(Success);
33   }
34
35   void PostSetUp() override {
36     ASSERT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(), url));
37     ASSERT_EQ(Success, EventLoopStart());
38   }
39
40   void StartHitTest(int x, int y, int mode)
41   {
42     req_x = x;
43     req_y = y;
44     req_mode = mode;
45
46     ASSERT_EQ(EINA_TRUE, ewk_view_hit_test_request(GetEwkWebView(), req_x, req_y, req_mode, hit_test_result, this));
47     ASSERT_EQ(Success, EventLoopStart());
48   }
49
50 protected:
51   static const char*const url;
52   int req_x;
53   int req_y;
54   int req_mode;
55 };
56
57 const char*const utc_blink_ewk_view_hit_test_request::url="http://m.naver.com";
58
59 /**
60  * @brief Checking whether hit test instance is created properly by hit test mode.
61  */
62 TEST_F(utc_blink_ewk_view_hit_test_request, POS_TEST1)
63 {
64   StartHitTest(100, 150, EWK_HIT_TEST_MODE_DEFAULT);
65   StartHitTest(120, 170, EWK_HIT_TEST_MODE_NODE_DATA);
66   StartHitTest(140, 190, EWK_HIT_TEST_MODE_IMAGE_DATA);
67   StartHitTest(160, 210, EWK_HIT_TEST_MODE_ALL);
68   StartHitTest(180, 230, EWK_HIT_TEST_MODE_IMAGE_DATA|EWK_HIT_TEST_MODE_NODE_DATA);
69 }
70
71 /**
72  * @brief Checking whether function works properly in case of NULL of a webview.
73  */
74 TEST_F(utc_blink_ewk_view_hit_test_request, NEG_TEST1)
75 {
76   EXPECT_EQ(EINA_FALSE, ewk_view_hit_test_request(NULL, 100, 150, EWK_HIT_TEST_MODE_DEFAULT, hit_test_result, this));
77   EXPECT_EQ(EINA_FALSE, ewk_view_hit_test_request(NULL, 120, 170, EWK_HIT_TEST_MODE_NODE_DATA, hit_test_result, this));
78   EXPECT_EQ(EINA_FALSE, ewk_view_hit_test_request(NULL, 140, 190, EWK_HIT_TEST_MODE_IMAGE_DATA, hit_test_result, this));
79   EXPECT_EQ(EINA_FALSE, ewk_view_hit_test_request(NULL, 160, 210, EWK_HIT_TEST_MODE_ALL, hit_test_result, this));
80   EXPECT_EQ(EINA_FALSE, ewk_view_hit_test_request(NULL, 180, 230, EWK_HIT_TEST_MODE_IMAGE_DATA|EWK_HIT_TEST_MODE_NODE_DATA, hit_test_result, this));
81 }