[M120 Migration][MM] Support W3C EME
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / unittest / utc_blink_ewk_intercept_request_headers_get_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_get_base.h"
8
9 class utc_blink_ewk_intercept_request_headers_get
10     : public utc_blink_ewk_intercept_request_get_base {
11  public:
12   utc_blink_ewk_intercept_request_headers_get() : headers_from_ewk_(nullptr) {}
13
14  protected:
15   void test_func(Ewk_Intercept_Request* intercept_request) override {
16     headers_from_ewk_ = ewk_intercept_request_headers_get(intercept_request);
17     if (headers_from_ewk_) {
18       const char* accept =
19           static_cast<const char*>(eina_hash_find(headers_from_ewk_, "Accept"));
20       if (accept) {
21         accept_header_from_ewk_ = accept;
22       }
23       const char* user_agent = static_cast<const char*>(
24           eina_hash_find(headers_from_ewk_, "User-Agent"));
25       if (user_agent) {
26         user_agent_header_from_ewk_ = user_agent;
27       }
28     }
29   }
30
31   const Eina_Hash* headers_from_ewk_;
32   std::string accept_header_from_ewk_;
33   std::string user_agent_header_from_ewk_;
34 };
35
36 /**
37  * @brief Tests if headers are returned for intercept request.
38  */
39 TEST_F(utc_blink_ewk_intercept_request_headers_get, POS_TEST_HEADERS_GET) {
40   pos_test();
41   ASSERT_NE(nullptr, headers_from_ewk_);
42   EXPECT_NE(std::string::npos, accept_header_from_ewk_.find("text/html"))
43       << "Substring \"text/html\" not in "
44       << "\"" << accept_header_from_ewk_ << "\"." << std::endl;
45   EXPECT_NE(std::string::npos, user_agent_header_from_ewk_.find("KHTML"))
46       << "Substring \"KHTML\" not in "
47       << "\"" << user_agent_header_from_ewk_ << "\"." << std::endl;
48 }
49
50 /**
51  * @brief Tests if null headers are returned for null intercept request.
52  */
53 TEST_F(utc_blink_ewk_intercept_request_headers_get, NEG_TEST_HEADERS_GET_NULL) {
54   neg_test();
55   ASSERT_EQ(nullptr, headers_from_ewk_);
56 }