[M120 Migration][MM] Support W3C EME
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / unittest / utc_blink_ewk_view_get_cookies_for_url_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 <regex.h>
7
8 class utc_blink_ewk_view_get_cookies_for_url : public utc_blink_ewk_base
9 {
10 protected:
11  void LoadFinished(Evas_Object* webview) override { EventLoopStop(Success); }
12 };
13
14 /**
15  * @brief Checking cookie after load page witch cookies
16  */
17 TEST_F(utc_blink_ewk_view_get_cookies_for_url, POS_TEST)
18 {
19   // http://wp.pl set cookie for each new request with out prompt user
20   ASSERT_EQ(EINA_TRUE, ewk_view_url_set(GetEwkWebView(), "http://wp.pl/"));
21   ASSERT_EQ(Success, EventLoopStart());
22   const char* const url = ewk_view_url_get(GetEwkWebView());
23   ASSERT_TRUE(url);
24   utc_message("url=%s", url);
25   char* cookies = ewk_view_get_cookies_for_url(GetEwkWebView(), url);
26   ASSERT_TRUE(cookies);
27   utc_message("cookies=%s", cookies);
28   regex_t scope;
29   ASSERT_TRUE(0 == regcomp(&scope, "^.*=*.(;.*=*.)*$",1 ));
30   ASSERT_TRUE(0 == regexec(&scope, cookies, 0, 0, 0));
31   regfree(&scope);
32   free(cookies);
33 }
34
35 /**
36  * @brief Checking cookie after load page without cookies
37  */
38 TEST_F(utc_blink_ewk_view_get_cookies_for_url, NEG_TEST1)
39 {
40   // Normaly resource have not cookie.
41   // See http://wolfslittlestore.be/2012/08/cookies-on-local-files-in-chrome/
42   // or http://stackoverflow.com/questions/12992494/how-to-read-write-cookies-for-local-file-html-document
43   ASSERT_TRUE(ewk_view_url_set(GetEwkWebView(), GetResourceUrl("common/sample.html").c_str()));
44   ASSERT_EQ(Success, EventLoopStart());
45   const char* const url = ewk_view_url_get(GetEwkWebView());
46   ASSERT_TRUE(url);
47   utc_message("url=%s", url);
48   ASSERT_TRUE(NULL == ewk_view_get_cookies_for_url(GetEwkWebView(), url));
49 }
50
51 /**
52  * @brief Checking function works properly in case of invalid parameters.
53  */
54
55 TEST_F(utc_blink_ewk_view_get_cookies_for_url, NEG_TEST2)
56 {
57   ASSERT_TRUE(NULL == ewk_view_get_cookies_for_url(GetEwkWebView(),NULL));
58   ASSERT_TRUE(NULL == ewk_view_get_cookies_for_url(NULL,"http://samsung.com/"));
59 }