[M120 Migration][MM] Support W3C EME
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / unittest / utc_blink_ewk_context_preferred_languages_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 #define URL  ("http://request.urih.com/")
8 #define ACCEPT_LANGUAGES_DEFAULT_VALUE ("en-us,en")
9
10 class utc_blink_ewk_context_preferred_languages_set : public utc_blink_ewk_base
11 {
12 protected:
13   utc_blink_ewk_context_preferred_languages_set()
14   {
15   }
16
17   void LoadFinished(Evas_Object* webview) override {
18     ewk_view_plain_text_get(webview, _get_plain_text_cb, this);
19   }
20
21   static void _get_plain_text_cb(Evas_Object* obj, const char* result, void* data)
22   {
23     utc_blink_ewk_context_preferred_languages_set* owner = static_cast<utc_blink_ewk_context_preferred_languages_set*>(data);
24
25     ASSERT_TRUE(owner);
26
27     if (result != NULL) {
28       owner->plain_text_result.append(result);
29     }
30
31     owner->EventLoopStop(utc_blink_ewk_base::Success);
32   }
33
34 protected:
35   std::string plain_text_result;
36 };
37
38 /**
39  * @brief Positive test case of utc_blink_ewk_context_preferred_languages_set()
40  */
41 TEST_F(utc_blink_ewk_context_preferred_languages_set, POS_TEST1)
42 {
43   utc_message("Loading url: %s", URL);
44
45   Eina_List *list = NULL;
46   list = eina_list_append(list, "TEST");
47   list = eina_list_append(list, "ACC_EPT");
48   list = eina_list_append(list, "LA-NG");
49
50   ewk_context_preferred_languages_set(list);
51
52   ASSERT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(), URL));
53   ASSERT_EQ(Success, EventLoopStart());
54
55   ASSERT_NE(plain_text_result.find("test,acc-ept,la-ng"), std::string::npos);
56 }
57
58 /**
59  * @brief Positive test case of utc_blink_ewk_context_preferred_languages_set()
60  *        NULL value should make the AcceptLangs header to be set to default value.
61  */
62 TEST_F(utc_blink_ewk_context_preferred_languages_set, POS_TEST2)
63 {
64   utc_message("Loading url: %s", URL);
65
66   ewk_context_preferred_languages_set(NULL);
67
68   ASSERT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(), URL));
69   ASSERT_EQ(Success, EventLoopStart());
70
71   ASSERT_NE(plain_text_result.find(ACCEPT_LANGUAGES_DEFAULT_VALUE), std::string::npos);
72 }
73