Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / declarative_webrequest / webrequest_rules_registry_unittest.cc
index 7ef5524..b49807d 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry.h"
+#include "extensions/browser/api/declarative_webrequest/webrequest_rules_registry.h"
 
 #include <string>
 #include <vector>
 #include "base/basictypes.h"
 #include "base/json/json_reader.h"
 #include "base/memory/linked_ptr.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/message_loop/message_loop.h"
 #include "base/stl_util.h"
 #include "base/test/values_test_util.h"
 #include "base/values.h"
-#include "chrome/browser/extensions/api/declarative_webrequest/webrequest_constants.h"
-#include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h"
 #include "chrome/common/extensions/extension_test_util.h"
 #include "components/url_matcher/url_matcher_constants.h"
 #include "content/public/test/test_browser_thread.h"
+#include "extensions/browser/api/declarative_webrequest/webrequest_constants.h"
+#include "extensions/browser/api/web_request/web_request_api_helpers.h"
 #include "net/base/request_priority.h"
+#include "net/url_request/url_request.h"
 #include "net/url_request/url_request_test_util.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest-message.h"
@@ -68,11 +70,9 @@ class TestWebRequestRulesRegistry : public WebRequestRulesRegistry {
   }
 
  protected:
-  virtual ~TestWebRequestRulesRegistry() {}
+  ~TestWebRequestRulesRegistry() override {}
 
-  virtual void ClearCacheOnNavigation() OVERRIDE {
-    ++num_clear_cache_calls_;
-  }
+  void ClearCacheOnNavigation() override { ++num_clear_cache_calls_; }
 
  private:
   int num_clear_cache_calls_;
@@ -84,11 +84,11 @@ class WebRequestRulesRegistryTest : public testing::Test {
       : ui_(content::BrowserThread::UI, &message_loop_),
         io_(content::BrowserThread::IO, &message_loop_) {}
 
-  virtual ~WebRequestRulesRegistryTest() {}
+  ~WebRequestRulesRegistryTest() override {}
 
-  virtual void SetUp() OVERRIDE;
+  void SetUp() override;
 
-  virtual void TearDown() OVERRIDE {
+  void TearDown() override {
     // Make sure that deletion traits of all registries are executed.
     message_loop_.RunUntilIdle();
   }
@@ -281,9 +281,9 @@ TEST_F(WebRequestRulesRegistryTest, AddRulesImpl) {
 
   GURL http_url("http://www.example.com");
   net::TestURLRequestContext context;
-  net::TestURLRequest http_request(
-      http_url, net::DEFAULT_PRIORITY, NULL, &context);
-  WebRequestData request_data(&http_request, ON_BEFORE_REQUEST);
+  scoped_ptr<net::URLRequest> http_request(context.CreateRequest(
+      http_url, net::DEFAULT_PRIORITY, NULL, NULL));
+  WebRequestData request_data(http_request.get(), ON_BEFORE_REQUEST);
   matches = registry->GetMatches(request_data);
   EXPECT_EQ(2u, matches.size());
 
@@ -295,9 +295,9 @@ TEST_F(WebRequestRulesRegistryTest, AddRulesImpl) {
   EXPECT_TRUE(ContainsKey(matches_ids, std::make_pair(kExtensionId, kRuleId2)));
 
   GURL foobar_url("http://www.foobar.com");
-  net::TestURLRequest foobar_request(
-      foobar_url, net::DEFAULT_PRIORITY, NULL, &context);
-  request_data.request = &foobar_request;
+  scoped_ptr<net::URLRequest> foobar_request(context.CreateRequest(
+      foobar_url, net::DEFAULT_PRIORITY, NULL, NULL));
+  request_data.request = foobar_request.get();
   matches = registry->GetMatches(request_data);
   EXPECT_EQ(1u, matches.size());
   WebRequestRule::GlobalRuleId expected_pair =
@@ -422,8 +422,9 @@ TEST_F(WebRequestRulesRegistryTest, Precedences) {
 
   GURL url("http://www.google.com");
   net::TestURLRequestContext context;
-  net::TestURLRequest request(url, net::DEFAULT_PRIORITY, NULL, &context);
-  WebRequestData request_data(&request, ON_BEFORE_REQUEST);
+  scoped_ptr<net::URLRequest> request(context.CreateRequest(
+      url, net::DEFAULT_PRIORITY, NULL, NULL));
+  WebRequestData request_data(request.get(), ON_BEFORE_REQUEST);
   std::list<LinkedPtrEventResponseDelta> deltas =
       registry->CreateDeltas(NULL, request_data, false);
 
@@ -470,8 +471,9 @@ TEST_F(WebRequestRulesRegistryTest, Priorities) {
 
   GURL url("http://www.google.com/index.html");
   net::TestURLRequestContext context;
-  net::TestURLRequest request(url, net::DEFAULT_PRIORITY, NULL, &context);
-  WebRequestData request_data(&request, ON_BEFORE_REQUEST);
+  scoped_ptr<net::URLRequest> request(context.CreateRequest(
+      url, net::DEFAULT_PRIORITY, NULL, NULL));
+  WebRequestData request_data(request.get(), ON_BEFORE_REQUEST);
   std::list<LinkedPtrEventResponseDelta> deltas =
       registry->CreateDeltas(NULL, request_data, false);
 
@@ -543,8 +545,9 @@ TEST_F(WebRequestRulesRegistryTest, IgnoreRulesByTag) {
 
   GURL url("http://www.foo.com/test");
   net::TestURLRequestContext context;
-  net::TestURLRequest request(url, net::DEFAULT_PRIORITY, NULL, &context);
-  WebRequestData request_data(&request, ON_BEFORE_REQUEST);
+  scoped_ptr<net::URLRequest> request(context.CreateRequest(
+      url, net::DEFAULT_PRIORITY, NULL, NULL));
+  WebRequestData request_data(request.get(), ON_BEFORE_REQUEST);
   std::list<LinkedPtrEventResponseDelta> deltas =
       registry->CreateDeltas(NULL, request_data, false);
 
@@ -592,9 +595,9 @@ TEST_F(WebRequestRulesRegistryTest, GetMatchesCheckFulfilled) {
 
   GURL http_url("http://www.example.com");
   net::TestURLRequestContext context;
-  net::TestURLRequest http_request(
-      http_url, net::DEFAULT_PRIORITY, NULL, &context);
-  WebRequestData request_data(&http_request, ON_BEFORE_REQUEST);
+  scoped_ptr<net::URLRequest> http_request(context.CreateRequest(
+      http_url, net::DEFAULT_PRIORITY, NULL, NULL));
+  WebRequestData request_data(http_request.get(), ON_BEFORE_REQUEST);
   matches = registry->GetMatches(request_data);
   EXPECT_EQ(1u, matches.size());
   WebRequestRule::GlobalRuleId expected_pair = std::make_pair(kExtensionId,
@@ -640,7 +643,7 @@ TEST_F(WebRequestRulesRegistryTest, GetMatchesDifferentUrls) {
     GURL("http://fpfc.example.com")  // matching
   };
   // Which rules should match in subsequent test iterations.
-  const char* matchingRuleIds[] = { kRuleId1, kRuleId2 };
+  const char* const matchingRuleIds[] = { kRuleId1, kRuleId2 };
   COMPILE_ASSERT(arraysize(urls) == arraysize(firstPartyUrls),
                  urls_and_firstPartyUrls_need_to_have_the_same_size);
   COMPILE_ASSERT(arraysize(urls) == arraysize(matchingRuleIds),
@@ -649,10 +652,10 @@ TEST_F(WebRequestRulesRegistryTest, GetMatchesDifferentUrls) {
 
   for (size_t i = 0; i < arraysize(matchingRuleIds); ++i) {
     // Construct the inputs.
-    net::TestURLRequest http_request(
-        urls[i], net::DEFAULT_PRIORITY, NULL, &context);
-    WebRequestData request_data(&http_request, ON_BEFORE_REQUEST);
-    http_request.set_first_party_for_cookies(firstPartyUrls[i]);
+    scoped_ptr<net::URLRequest> http_request(context.CreateRequest(
+        urls[i], net::DEFAULT_PRIORITY, NULL, NULL));
+    WebRequestData request_data(http_request.get(), ON_BEFORE_REQUEST);
+    http_request->set_first_party_for_cookies(firstPartyUrls[i]);
     // Now run both rules on the input.
     matches = registry->GetMatches(request_data);
     SCOPED_TRACE(testing::Message("i = ") << i << ", rule id = "
@@ -667,26 +670,28 @@ TEST_F(WebRequestRulesRegistryTest, GetMatchesDifferentUrls) {
 
 TEST(WebRequestRulesRegistrySimpleTest, StageChecker) {
   // The contentType condition can only be evaluated during ON_HEADERS_RECEIVED
-  // but the redirect action can only be executed during ON_BEFORE_REQUEST.
+  // but the SetRequestHeader action can only be executed during
+  // ON_BEFORE_SEND_HEADERS.
   // Therefore, this is an inconsistent rule that needs to be flagged.
   const char kRule[] =
-      "{                                                                 \n"
-      "  \"id\": \"rule1\",                                              \n"
-      "  \"conditions\": [                                               \n"
-      "    {                                                             \n"
-      "      \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n"
-      "      \"url\": {\"hostSuffix\": \"foo.com\"},                     \n"
-      "      \"contentType\": [\"image/jpeg\"]                           \n"
-      "    }                                                             \n"
-      "  ],                                                              \n"
-      "  \"actions\": [                                                  \n"
-      "    {                                                             \n"
-      "      \"instanceType\": \"declarativeWebRequest.RedirectRequest\",\n"
-      "      \"redirectUrl\": \"http://bar.com\"                         \n"
-      "    }                                                             \n"
-      "  ],                                                              \n"
-      "  \"priority\": 200                                               \n"
-      "}                                                                 ";
+      "{                                                                  \n"
+      "  \"id\": \"rule1\",                                               \n"
+      "  \"conditions\": [                                                \n"
+      "    {                                                              \n"
+      "      \"instanceType\": \"declarativeWebRequest.RequestMatcher\",  \n"
+      "      \"url\": {\"hostSuffix\": \"foo.com\"},                      \n"
+      "      \"contentType\": [\"image/jpeg\"]                            \n"
+      "    }                                                              \n"
+      "  ],                                                               \n"
+      "  \"actions\": [                                                   \n"
+      "    {                                                              \n"
+      "      \"instanceType\": \"declarativeWebRequest.SetRequestHeader\",\n"
+      "      \"name\": \"Content-Type\",                                  \n"
+      "      \"value\": \"text/plain\"                                    \n"
+      "    }                                                              \n"
+      "  ],                                                               \n"
+      "  \"priority\": 200                                                \n"
+      "}                                                                  ";
 
   scoped_ptr<base::Value> value(base::JSONReader::Read(kRule));
   ASSERT_TRUE(value);
@@ -704,7 +709,8 @@ TEST(WebRequestRulesRegistrySimpleTest, StageChecker) {
 
   bool bad_message = false;
   scoped_ptr<WebRequestActionSet> actions =
-      WebRequestActionSet::Create(NULL, rule.actions, &error, &bad_message);
+      WebRequestActionSet::Create(
+          NULL, NULL, rule.actions, &error, &bad_message);
   ASSERT_TRUE(error.empty()) << error;
   ASSERT_FALSE(bad_message);
   ASSERT_TRUE(actions);
@@ -731,7 +737,7 @@ TEST(WebRequestRulesRegistrySimpleTest, HostPermissionsChecker) {
   std::string error;
   bool bad_message = false;
   scoped_ptr<WebRequestActionSet> action_set(
-      WebRequestActionSet::Create(NULL, actions, &error, &bad_message));
+      WebRequestActionSet::Create(NULL, NULL, actions, &error, &bad_message));
   ASSERT_TRUE(error.empty()) << error;
   ASSERT_FALSE(bad_message);
   ASSERT_TRUE(action_set);
@@ -796,15 +802,17 @@ TEST_F(WebRequestRulesRegistryTest, CheckOriginAndPathRegEx) {
 
   // No match because match is in the query parameter.
   GURL url1("http://bar.com/index.html?foo.com");
-  net::TestURLRequest request1(url1, net::DEFAULT_PRIORITY, NULL, &context);
-  WebRequestData request_data1(&request1, ON_BEFORE_REQUEST);
+  scoped_ptr<net::URLRequest> request1(context.CreateRequest(
+      url1, net::DEFAULT_PRIORITY, NULL, NULL));
+  WebRequestData request_data1(request1.get(), ON_BEFORE_REQUEST);
   deltas = registry->CreateDeltas(NULL, request_data1, false);
   EXPECT_EQ(0u, deltas.size());
 
   // This is a correct match.
   GURL url2("http://foo.com/index.html");
-  net::TestURLRequest request2(url2, net::DEFAULT_PRIORITY, NULL, &context);
-  WebRequestData request_data2(&request2, ON_BEFORE_REQUEST);
+  scoped_ptr<net::URLRequest> request2(context.CreateRequest(
+      url2, net::DEFAULT_PRIORITY, NULL, NULL));
+  WebRequestData request_data2(request2.get(), ON_BEFORE_REQUEST);
   deltas = registry->CreateDeltas(NULL, request_data2, false);
   EXPECT_EQ(1u, deltas.size());
 }