[M120 Migration][MM] Support W3C EME
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / unittest / utc_blink_ewk_intercept_request_response_header_add_func.cpp
1 // Copyright 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 <string>
6
7 #include "utc_blink_ewk_intercept_request_response_base.h"
8
9 class utc_blink_ewk_intercept_request_response_header_add
10     : public utc_blink_ewk_intercept_request_response_base {
11  protected:
12   std::string get_js_title_test() override {
13     return std::string(body_ajax_test_);
14   }
15
16   void pos_func(Ewk_Intercept_Request* intercept_request) override {
17     header_add_result_field_1_ = ewk_intercept_request_response_header_add(
18         intercept_request, "TEST_FIELD_1", "TEST_VALUE_1");
19     header_add_result_field_2_ = ewk_intercept_request_response_header_add(
20         intercept_request, "TEST_FIELD_2", "TEST_VALUE_2");
21   }
22
23   bool neg_func(Ewk_Intercept_Request* intercept_request) override {
24     return ewk_intercept_request_response_header_add(
25         intercept_request, header_field_name_, header_field_value_);
26   }
27
28   const char* body_ajax_test_ =
29       "document.title = 'TEST_FIELD_1: '"
30       "+ this.getResponseHeader('TEST_FIELD_1') + ', TEST_FIELD_2: '"
31       "+ this.getResponseHeader('TEST_FIELD_2');";
32
33   const char* header_field_name_;
34   const char* header_field_value_;
35   bool header_add_result_field_1_;
36   bool header_add_result_field_2_;
37 };
38
39 /**
40  * @brief Tests if headers are correctly added.
41  */
42 TEST_F(utc_blink_ewk_intercept_request_response_header_add,
43        POS_TEST_RESPONSE_HEADER_ADD) {
44   pos_test();
45   EXPECT_TRUE(header_add_result_field_1_);
46   EXPECT_TRUE(header_add_result_field_2_);
47   /*
48    * title set in JS after ajax response:
49    * TEST_FIELD_1: <header('TEST_FIELD_1')>, \
50    * TEST_FIELD_2: <header('TEST_FIELD_2')>
51    */
52   EXPECT_STREQ("TEST_FIELD_1: TEST_VALUE_1, TEST_FIELD_2: TEST_VALUE_2",
53                ewk_view_title_get(GetEwkWebView()));
54 }
55
56 /**
57  * @brief Tests if EINA_FALSE is returned for null header field name.
58  */
59 TEST_F(utc_blink_ewk_intercept_request_response_header_add,
60        NEG_TEST_NULL_HEADER_FIELD_NAME) {
61   intercept_request_null_ = false;
62   header_field_name_ = nullptr;
63   header_field_value_ = "TEST";
64   neg_test();
65 }
66
67 /**
68  * @brief Tests if EINA_FALSE is returned for null header field value.
69  */
70 TEST_F(utc_blink_ewk_intercept_request_response_header_add,
71        NEG_TEST_NULL_HEADER_FIELD_VALUE) {
72   intercept_request_null_ = false;
73   header_field_name_ = "Server";
74   header_field_value_ = nullptr;
75   neg_test();
76 }
77
78 /**
79  * @brief Tests if EINA_FALSE is returned for null intercept request.
80  */
81 TEST_F(utc_blink_ewk_intercept_request_response_header_add,
82        NEG_TEST_NULL_INTERCEPT_RESPONSE) {
83   intercept_request_null_ = true;
84   header_field_name_ = "Server";
85   header_field_value_ = "TEST";
86   neg_test();
87 }