[M120 Migration][MM] Support W3C EME
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / unittest / utc_blink_ewk_view_bg_color_get_func.cpp
1 // Copyright 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 class utc_blink_ewk_view_bg_color_get : public utc_blink_ewk_base {
8  public:
9   utc_blink_ewk_view_bg_color_get()
10       : utc_blink_ewk_base(),
11         bgcolor_r_value_(23),
12         bgcolor_g_value_(30),
13         bgcolor_b_value_(55),
14         bgcolor_a_value_(2) {}
15
16   void LoadFinished(Evas_Object* webview) override { EventLoopStop(Success); }
17
18   static void BackgroundColorGetCallback(Evas_Object* o,
19                                          int r,
20                                          int g,
21                                          int b,
22                                          int a,
23                                          void* user_data) {
24     ASSERT_TRUE(user_data != NULL);
25
26     utc_blink_ewk_view_bg_color_get* const owner =
27         static_cast<utc_blink_ewk_view_bg_color_get*>(user_data);
28
29     owner->EventLoopStop(
30         owner->bgcolor_r_value_ == r && owner->bgcolor_g_value_ == g &&
31                 owner->bgcolor_b_value_ == b && owner->bgcolor_a_value_ == a
32             ? Success
33             : Failure);
34   }
35
36   static Eina_Bool GetBackgroundColorOnTimer(void* user_data) {
37     if (user_data) {
38       utc_blink_ewk_view_bg_color_get* const owner =
39           static_cast<utc_blink_ewk_view_bg_color_get*>(user_data);
40
41       if (!ewk_view_bg_color_get(owner->GetEwkWebView(),
42                                  BackgroundColorGetCallback, owner)) {
43         owner->EventLoopStop(Failure);
44       }
45     }
46     return ECORE_CALLBACK_CANCEL;
47   }
48
49  protected:
50   unsigned int bgcolor_r_value_;
51   unsigned int bgcolor_g_value_;
52   unsigned int bgcolor_b_value_;
53   unsigned int bgcolor_a_value_;
54 };
55
56 /**
57 * @brief Tests if setting and getting the background color is fetched
58 *  from webkit properly.
59 */
60 TEST_F(utc_blink_ewk_view_bg_color_get, POS_TEST) {
61   ASSERT_TRUE(ewk_view_url_set(GetEwkWebView(),
62                                GetResourceUrl("/common/sample.html").c_str()));
63
64   ASSERT_EQ(EventLoopStart(), Success);
65
66   ewk_view_bg_color_set(GetEwkWebView(), bgcolor_r_value_, bgcolor_g_value_,
67                         bgcolor_b_value_, bgcolor_a_value_);
68
69   ASSERT_TRUE(ecore_timer_add(1, GetBackgroundColorOnTimer, this) != NULL);
70
71   ASSERT_EQ(EventLoopStart(), Success);
72 }
73
74 /**
75 * @brief Tests if getter returns false when callback function is NULL
76 *  or view is NULL
77 */
78 TEST_F(utc_blink_ewk_view_bg_color_get, NEG_TEST) {
79   EXPECT_FALSE(ewk_view_bg_color_get(NULL, BackgroundColorGetCallback, this));
80   EXPECT_FALSE(ewk_view_bg_color_get(GetEwkWebView(), NULL, this));
81 }