Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(520)

Side by Side Diff: chrome/browser/extensions/api/declarative_webrequest/webrequest_action_unittest.cc

Issue 14197014: Add TestBrowserThreadBundle into RenderViewHostTestHarness. Kill some unnecessary real threads. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merged ToT Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_action .h" 5 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_action .h"
6 6
7 #include "base/files/file_path.h" 7 #include "base/files/file_path.h"
8 #include "base/json/json_file_value_serializer.h" 8 #include "base/json/json_file_value_serializer.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
11 #include "base/message_loop.h" 11 #include "base/message_loop.h"
12 #include "base/path_service.h" 12 #include "base/path_service.h"
13 #include "base/test/values_test_util.h" 13 #include "base/test/values_test_util.h"
14 #include "base/time.h" 14 #include "base/time.h"
15 #include "base/values.h" 15 #include "base/values.h"
16 #include "chrome/browser/extensions/api/declarative_webrequest/request_stage.h" 16 #include "chrome/browser/extensions/api/declarative_webrequest/request_stage.h"
17 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_condit ion.h" 17 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_condit ion.h"
18 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_consta nts.h" 18 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_consta nts.h"
19 #include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h" 19 #include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h"
20 #include "chrome/browser/extensions/extension_info_map.h" 20 #include "chrome/browser/extensions/extension_info_map.h"
21 #include "chrome/common/chrome_paths.h" 21 #include "chrome/common/chrome_paths.h"
22 #include "chrome/common/extensions/extension.h" 22 #include "chrome/common/extensions/extension.h"
23 #include "chrome/common/extensions/extension_constants.h" 23 #include "chrome/common/extensions/extension_constants.h"
24 #include "chrome/common/extensions/extension_test_util.h" 24 #include "chrome/common/extensions/extension_test_util.h"
25 #include "content/public/test/test_browser_thread.h" 25 #include "content/public/test/test_browser_thread_bundle.h"
26 #include "net/http/http_response_headers.h" 26 #include "net/http/http_response_headers.h"
27 #include "net/url_request/url_request_test_util.h" 27 #include "net/url_request/url_request_test_util.h"
28 #include "testing/gmock/include/gmock/gmock.h" 28 #include "testing/gmock/include/gmock/gmock.h"
29 #include "testing/gtest/include/gtest/gtest.h" 29 #include "testing/gtest/include/gtest/gtest.h"
30 30
31 using base::DictionaryValue; 31 using base::DictionaryValue;
32 using base::ListValue; 32 using base::ListValue;
33 using extension_test_util::LoadManifestUnchecked; 33 using extension_test_util::LoadManifestUnchecked;
34 using testing::HasSubstr; 34 using testing::HasSubstr;
35 35
(...skipping 28 matching lines...) Expand all
64 return action_set.Pass(); 64 return action_set.Pass();
65 } 65 }
66 66
67 } // namespace 67 } // namespace
68 68
69 namespace keys = declarative_webrequest_constants; 69 namespace keys = declarative_webrequest_constants;
70 70
71 class WebRequestActionWithThreadsTest : public testing::Test { 71 class WebRequestActionWithThreadsTest : public testing::Test {
72 public: 72 public:
73 WebRequestActionWithThreadsTest() 73 WebRequestActionWithThreadsTest()
74 : io_thread_(content::BrowserThread::IO, &message_loop_) {} 74 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP) {}
75 75
76 protected: 76 protected:
77 virtual void SetUp() OVERRIDE; 77 virtual void SetUp() OVERRIDE;
78 78
79 // Creates a URL request for URL |url_string|, and applies the actions from 79 // Creates a URL request for URL |url_string|, and applies the actions from
80 // |action_set| as if they were triggered by the extension with 80 // |action_set| as if they were triggered by the extension with
81 // |extension_id| during |stage|. 81 // |extension_id| during |stage|.
82 bool ActionWorksOnRequest(const char* url_string, 82 bool ActionWorksOnRequest(const char* url_string,
83 const std::string& extension_id, 83 const std::string& extension_id,
84 const WebRequestActionSet* action_set, 84 const WebRequestActionSet* action_set,
85 RequestStage stage); 85 RequestStage stage);
86 86
87 // Expects a JSON description of an |action| requiring <all_urls> host 87 // Expects a JSON description of an |action| requiring <all_urls> host
88 // permission, and checks that only an extensions with full host permissions 88 // permission, and checks that only an extensions with full host permissions
89 // can execute that action at |stage|. Also checks that the action is not 89 // can execute that action at |stage|. Also checks that the action is not
90 // executable for http://clients1.google.com. 90 // executable for http://clients1.google.com.
91 void CheckActionNeedsAllUrls(const char* action, RequestStage stage); 91 void CheckActionNeedsAllUrls(const char* action, RequestStage stage);
92 92
93 net::TestURLRequestContext context_; 93 net::TestURLRequestContext context_;
94 94
95 // An extension with *.com host permissions and the DWR permission. 95 // An extension with *.com host permissions and the DWR permission.
96 scoped_refptr<Extension> extension_; 96 scoped_refptr<Extension> extension_;
97 // An extension with host permissions for all URLs and the DWR permission. 97 // An extension with host permissions for all URLs and the DWR permission.
98 scoped_refptr<Extension> extension_all_urls_; 98 scoped_refptr<Extension> extension_all_urls_;
99 scoped_refptr<ExtensionInfoMap> extension_info_map_; 99 scoped_refptr<ExtensionInfoMap> extension_info_map_;
100 100
101 private: 101 private:
102 base::MessageLoopForIO message_loop_; 102 content::TestBrowserThreadBundle thread_bundle_;
103 content::TestBrowserThread io_thread_;
104 }; 103 };
105 104
106 void WebRequestActionWithThreadsTest::SetUp() { 105 void WebRequestActionWithThreadsTest::SetUp() {
107 testing::Test::SetUp(); 106 testing::Test::SetUp();
108 107
109 std::string error; 108 std::string error;
110 extension_ = LoadManifestUnchecked("permissions", 109 extension_ = LoadManifestUnchecked("permissions",
111 "web_request_com_host_permissions.json", 110 "web_request_com_host_permissions.json",
112 Manifest::INVALID_LOCATION, 111 Manifest::INVALID_LOCATION,
113 Extension::NO_FLAGS, 112 Extension::NO_FLAGS,
(...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after
567 for (WebRequestActionSet::Actions::const_iterator it = 566 for (WebRequestActionSet::Actions::const_iterator it =
568 action_set->actions().begin(); 567 action_set->actions().begin();
569 it != action_set->actions().end(); 568 it != action_set->actions().end();
570 ++it) { 569 ++it) {
571 EXPECT_EQ(kExpectedNames[index], (*it)->GetName()); 570 EXPECT_EQ(kExpectedNames[index], (*it)->GetName());
572 ++index; 571 ++index;
573 } 572 }
574 } 573 }
575 574
576 } // namespace extensions 575 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698