[M120 Migration][MM] Support W3C EME
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / unittest / utc_blink_ewk_view_web_application_icon_urls_get_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 #include <map>
7
8 class utc_blink_ewk_view_web_application_icon_urls_get : public utc_blink_ewk_base
9 {
10 protected:
11  void LoadFinished(Evas_Object*) override { EventLoopStop(Success); }
12
13  static void webAppUrlsGetCallback(
14      Eina_List* urls,
15      utc_blink_ewk_view_web_application_icon_urls_get* owner) {
16    ASSERT_TRUE(NULL != owner);
17    utc_message("[webAppUrlsGetCallback] :: ");
18    ASSERT_EQ(owner->expectedUrls.size(), eina_list_count(urls));
19    Eina_List* l = 0;
20    void* d = 0;
21    EINA_LIST_FOREACH(urls, l, d) {
22      const char* size = ewk_web_application_icon_data_size_get(
23          static_cast<Ewk_Web_App_Icon_Data*>(d));
24      ASSERT_TRUE(NULL != size);
25      const char* url = ewk_web_application_icon_data_url_get(
26          static_cast<Ewk_Web_App_Icon_Data*>(d));
27      ASSERT_TRUE(NULL != url);
28      utc_message("[URLS]: %s ; %s", size, url);
29      ASSERT_STREQ(
30          owner->GetResourceUrl(owner->expectedUrls[size].c_str()).c_str(), url);
31    }
32    owner->EventLoopStop(Success);
33   }
34
35 protected:
36   std::map<std::string, std::string> expectedUrls;
37   static const char * const webAppUrlsPage;
38   static const char * const noUrlsPage;
39 };
40
41 const char * const utc_blink_ewk_view_web_application_icon_urls_get::webAppUrlsPage = "ewk_view_web_application/web_app_urls_get.html";
42 const char * const utc_blink_ewk_view_web_application_icon_urls_get::noUrlsPage = "<html><body></body></html>";
43
44 TEST_F(utc_blink_ewk_view_web_application_icon_urls_get, WEB_APP_URLS_PAGE)
45 {
46   ASSERT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(), GetResourceUrl(webAppUrlsPage).c_str()));
47   ASSERT_EQ(Success, EventLoopStart());
48   expectedUrls["64x64"] = "ewk_view_web_application/tizen-icon1.png";
49   expectedUrls["128x128"] = "ewk_view_web_application/tizen-icon2.png";
50   expectedUrls["144x144"] = "ewk_view_web_application/tizen-icon3.png";
51   ASSERT_EQ(EINA_TRUE, ewk_view_web_application_icon_urls_get(GetEwkWebView(),
52                                                              (void(*)(Eina_List*,void*))webAppUrlsGetCallback,
53                                                              this));
54   ASSERT_EQ(Success, EventLoopStart());
55 }
56
57 TEST_F(utc_blink_ewk_view_web_application_icon_urls_get, NO_URLS_PAGE)
58 {
59   ASSERT_EQ(EINA_TRUE, ewk_view_html_string_load(GetEwkWebView(), noUrlsPage, 0, 0));
60   ASSERT_EQ(Success, EventLoopStart());
61   ASSERT_EQ(EINA_TRUE, ewk_view_web_application_icon_urls_get(GetEwkWebView(),
62                                                              (void(*)(Eina_List*,void*))webAppUrlsGetCallback,
63                                                              this));
64   ASSERT_EQ(Success, EventLoopStart());
65 }