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.
5 /* Define those macros _before_ you include the utc_blink_ewk.h header file. */
7 #include "utc_blink_ewk_base.h"
9 class utc_blink_ewk_context_web_database_delete_all : public utc_blink_ewk_base {
11 utc_blink_ewk_context_web_database_delete_all()
17 ~utc_blink_ewk_context_web_database_delete_all() override {
21 void PostSetUp() override {
22 utc_message("[postSetUp] :: ");
23 ctx = ewk_view_context_get(GetEwkWebView());
26 void LoadFinished(Evas_Object* webview) override {
27 utc_message("[loadFinished] :: ");
28 EventLoopStop(Success);
31 static void origins_get_cb(Eina_List* origins, void* user_data)
33 utc_message("origins_get_cb: %p, %p", origins, user_data);
34 ASSERT_TRUE(user_data);
35 utc_blink_ewk_context_web_database_delete_all* owner = static_cast<utc_blink_ewk_context_web_database_delete_all*>(user_data);
36 owner->SetOrigins(origins);
37 owner->EventLoopStop(Success);
40 void SetOrigins(Eina_List* new_origins)
42 utc_message("[setOrigins] :: ");
43 if (new_origins != origins) {
45 ewk_context_origins_free(origins);
48 origins = new_origins;
52 void GetOrigins(int expected_count)
54 // web database operations are async, we must wait for changes to propagate
55 for (int i = 0; i < 3; ++i) {
56 if (EINA_TRUE != ewk_context_web_database_origins_get(ctx, origins_get_cb, this)) {
60 if (Success != EventLoopStart()) {
64 if (expected_count == eina_list_count(origins)) {
68 if (!EventLoopWait(3.0)) {
78 static const char* const web_database_file;
81 const char* const utc_blink_ewk_context_web_database_delete_all::web_database_file = "ewk_context/WebDB2.html";
84 * @brief Tests if can delete all web databases.
86 TEST_F(utc_blink_ewk_context_web_database_delete_all, POS_TEST)
89 std::string resurl = GetResourceUrl(web_database_file);
90 utc_message("Loading resource: %s", resurl.c_str());
91 ASSERT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(), resurl.c_str()));
92 ASSERT_EQ(Success, EventLoopStart());
94 // Check if any origin is loaded
95 ASSERT_GE(1, eina_list_count(origins));
97 ASSERT_EQ(EINA_TRUE, ewk_context_web_database_delete_all(ctx));
99 ASSERT_EQ(0, eina_list_count(origins));
101 // if there are no origins in db, the "origins" argument passed to callback is NULL
102 // see "void OnGetWebDBOrigins()" in "eweb_context.cc"
103 ASSERT_TRUE(origins == NULL);
107 * @brief Tests if returns false when context is null.
109 TEST_F(utc_blink_ewk_context_web_database_delete_all, NEG_TEST)
111 ASSERT_EQ(EINA_FALSE, ewk_context_web_database_delete_all(0));