[M120 Migration][MM] Support W3C EME
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / unittest / utc_blink_ewk_view_resume_func.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 class utc_blink_ewk_view_resume : public utc_blink_ewk_base
8 {
9 protected:
10   enum RunPhase {
11     PageLoadStart,
12     PageSuspended,
13     PageResumed
14   };
15
16 protected:
17  utc_blink_ewk_view_resume()
18      : phase(PageLoadStart), result_url_set(EINA_FALSE) {}
19
20  /* Callback for quitting main loop */
21  void LoadProgress(Evas_Object* webview, double pr) override {
22    // Page started to load, after that we want to suspend right after
23    if (phase == PageLoadStart) {
24      phase = PageSuspended;
25      EventLoopStop(Success);
26    }
27   }
28
29   bool TimeOut() override {
30     if (phase == PageSuspended) {
31       phase = PageResumed;
32       EventLoopStop(Success);
33       return true;
34     }
35
36     return false;
37   }
38
39   void LoadFinished(Evas_Object* webview) override {
40     if (phase == PageResumed) {
41       EventLoopStop(Success);
42     } else {
43       EventLoopStop(Failure);
44     }
45   }
46
47   static void job_url_set(utc_blink_ewk_base* data) {
48     utc_blink_ewk_view_resume* owner =
49         static_cast<utc_blink_ewk_view_resume*>(data);
50     owner->result_url_set =
51         ewk_view_url_set(owner->GetEwkWebView(), "http://www.google.pl");
52   }
53
54   RunPhase phase;
55   Eina_Bool result_url_set;
56 };
57
58 /**
59  * @brief Positive test case of ewk_view_resume()
60  */
61 TEST_F(utc_blink_ewk_view_resume, POS_TEST)
62 {
63   SetTestJob(utc_blink_ewk_view_resume::job_url_set);
64
65   if (Success != EventLoopStart())
66     FAIL();
67
68   ASSERT_EQ(EINA_TRUE, result_url_set);
69
70   utc_message("Suspend");
71   ewk_view_suspend(GetEwkWebView());
72
73   if (Success != EventLoopStart(5.0)) // Wait few seconds to see if it realy was suspended
74     FAIL();
75
76   utc_message("Resume");
77   ewk_view_resume(GetEwkWebView());
78
79   if (Success != EventLoopStart())
80     FAIL();
81
82   evas_object_show(GetEwkWebView());
83   evas_object_show(GetEwkWindow());
84 }
85
86 /**
87  * @brief Negative test case of ewk_view_resume()
88  */
89 TEST_F(utc_blink_ewk_view_resume, NEG_TEST)
90 {
91   // This test is pointless. ewk_view_resume has no return value so we have nothing to test here.
92   ewk_view_resume(NULL);
93   evas_object_show(GetEwkWebView());
94   evas_object_show(GetEwkWindow());
95 }