[M120 Migration][MM] Support W3C EME
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / unittest / utc_blink_ewk_view_scale_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 class utc_blink_ewk_view_scale_set : public utc_blink_ewk_base
8 {
9  protected:
10   /* Callback for load finished */
11   void LoadFinished(Evas_Object* webview) override { EventLoopStop(Success); }
12
13   /* Function called when timer expires */
14   static Eina_Bool mainLoopQuit(void* data)
15   {
16     if(data)
17       static_cast<utc_blink_ewk_view_scale_set*>(data)->EventLoopStop(Success);
18     return ECORE_CALLBACK_DONE;
19   }
20
21 protected:
22   static const char*const sample;
23 };
24
25 const char* const utc_blink_ewk_view_scale_set::sample =
26     "/common/sample_2.html";
27
28 /**
29   * @brief Positive test case of ewk_view_scale_set(). Page is loaded, APIs for setting scale and retrieving its value are called.
30   */
31   TEST_F(utc_blink_ewk_view_scale_set, POS_TEST)
32   {
33     if(!ewk_view_url_set(GetEwkWebView(),GetResourceUrl(sample).c_str()))
34       utc_fail();
35     if(Success!=EventLoopStart())
36       utc_fail();
37
38     const double scaleFactor = 1.0;
39     const Evas_Coord centerX = 5;
40     const Evas_Coord centerY = 5;
41
42     Eina_Bool result = ewk_view_scale_set(GetEwkWebView(), scaleFactor, centerX, centerY);
43     ecore_timer_add(0.5f, mainLoopQuit, this);
44     if(Success!=EventLoopStart())
45       utc_fail();
46
47     const double getScaleFactor = ewk_view_scale_get(GetEwkWebView());
48
49     Evas_Coord getCenterX = 0, getCenterY = 0;
50     ewk_view_scroll_pos_get(GetEwkWebView(), &getCenterX, &getCenterY);
51
52     if (scaleFactor != getScaleFactor || centerX != getCenterX ||
53         centerY != getCenterY)
54       result = EINA_FALSE;
55
56     utc_check_eq(result, EINA_TRUE);
57   }
58
59   /**
60   * @brief Checking whether function works properly in case of NULL of a webview.
61   */
62   TEST_F(utc_blink_ewk_view_scale_set, NEG_TEST)
63   {
64     const Eina_Bool result = ewk_view_scale_set(NULL, 1, 0, 0);
65     utc_check_eq(result, EINA_FALSE);
66   }