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

Side by Side Diff: components/subresource_filter/core/browser/ruleset_service_unittest.cc

Issue 2731283009: Swap ownership of RulesetService and the content delegate (Closed)
Patch Set: Swap ownership of RulesetService and the content delegate Created 3 years, 9 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "components/subresource_filter/core/browser/ruleset_service.h" 5 #include "components/subresource_filter/core/browser/ruleset_service.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 138
139 // Test fixtures -------------------------------------------------------------- 139 // Test fixtures --------------------------------------------------------------
140 140
141 using testing::TestRulesetPair; 141 using testing::TestRulesetPair;
142 using testing::TestRulesetCreator; 142 using testing::TestRulesetCreator;
143 143
144 class SubresourceFilteringRulesetServiceTest : public ::testing::Test { 144 class SubresourceFilteringRulesetServiceTest : public ::testing::Test {
145 public: 145 public:
146 SubresourceFilteringRulesetServiceTest() 146 SubresourceFilteringRulesetServiceTest()
147 : task_runner_(new base::TestSimpleTaskRunner), 147 : task_runner_(new base::TestSimpleTaskRunner),
148 task_runner_handle_(task_runner_), 148 task_runner_handle_(task_runner_) {}
149 mock_delegate_(nullptr) {}
150 149
151 protected: 150 protected:
152 void SetUp() override { 151 void SetUp() override {
153 IndexedRulesetVersion::RegisterPrefs(pref_service_.registry()); 152 IndexedRulesetVersion::RegisterPrefs(pref_service_.registry());
154 153
155 SetUpTempDir(); 154 SetUpTempDir();
156 ResetRulesetService(); 155 ResetRulesetService();
157 RunUntilIdle(); 156 RunUntilIdle();
158 157
159 ASSERT_NO_FATAL_FAILURE( 158 ASSERT_NO_FATAL_FAILURE(
160 ruleset_creator_.CreateRulesetToDisallowURLsWithPathSuffix( 159 ruleset_creator_.CreateRulesetToDisallowURLsWithPathSuffix(
161 kTestDisallowedSuffix1, &test_ruleset_1_)); 160 kTestDisallowedSuffix1, &test_ruleset_1_));
162 ASSERT_NO_FATAL_FAILURE( 161 ASSERT_NO_FATAL_FAILURE(
163 ruleset_creator_.CreateRulesetToDisallowURLsWithPathSuffix( 162 ruleset_creator_.CreateRulesetToDisallowURLsWithPathSuffix(
164 kTestDisallowedSuffix2, &test_ruleset_2_)); 163 kTestDisallowedSuffix2, &test_ruleset_2_));
165 ASSERT_NO_FATAL_FAILURE( 164 ASSERT_NO_FATAL_FAILURE(
166 ruleset_creator_.CreateRulesetToDisallowURLsWithPathSuffix( 165 ruleset_creator_.CreateRulesetToDisallowURLsWithPathSuffix(
167 kTestDisallowedSuffix3, &test_ruleset_3_)); 166 kTestDisallowedSuffix3, &test_ruleset_3_));
168 } 167 }
169 168
170 virtual void SetUpTempDir() { 169 virtual void SetUpTempDir() {
171 ASSERT_TRUE(scoped_temp_dir_.CreateUniqueTempDir()); 170 ASSERT_TRUE(scoped_temp_dir_.CreateUniqueTempDir());
172 } 171 }
173 172
174 void ResetRulesetService() { 173 void ResetRulesetService() {
174 mock_delegate_ = base::MakeUnique<MockRulesetServiceDelegate>();
175 service_ = base::MakeUnique<RulesetService>( 175 service_ = base::MakeUnique<RulesetService>(
176 &pref_service_, task_runner_, 176 &pref_service_, task_runner_, mock_delegate_.get(), base_dir());
177 base::WrapUnique(mock_delegate_ = new MockRulesetServiceDelegate),
178 base_dir());
179 } 177 }
180 178
181 void ClearRulesetService() { 179 void ClearRulesetService() {
182 mock_delegate_ = nullptr;
183 service_.reset(); 180 service_.reset();
181 mock_delegate_.reset();
184 } 182 }
185 183
186 // Creates a new file with the given license |contents| at a unique temporary 184 // Creates a new file with the given license |contents| at a unique temporary
187 // path, which is returned in |path|. 185 // path, which is returned in |path|.
188 void CreateTestLicenseFile(const std::string& contents, 186 void CreateTestLicenseFile(const std::string& contents,
189 base::FilePath* path) { 187 base::FilePath* path) {
190 ASSERT_NO_FATAL_FAILURE( 188 ASSERT_NO_FATAL_FAILURE(
191 test_ruleset_creator()->GetUniqueTemporaryPath(path)); 189 test_ruleset_creator()->GetUniqueTemporaryPath(path));
192 ASSERT_EQ(static_cast<int>(contents.size()), 190 ASSERT_EQ(static_cast<int>(contents.size()),
193 base::WriteFile(*path, contents.data(), 191 base::WriteFile(*path, contents.data(),
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 void AssertReadonlyRulesetFile(base::File* file) { 260 void AssertReadonlyRulesetFile(base::File* file) {
263 const char kTest[] = "t"; 261 const char kTest[] = "t";
264 ASSERT_TRUE(file->IsValid()); 262 ASSERT_TRUE(file->IsValid());
265 ASSERT_EQ(-1, file->Write(0, kTest, sizeof(kTest))); 263 ASSERT_EQ(-1, file->Write(0, kTest, sizeof(kTest)));
266 } 264 }
267 265
268 void AssertNoPendingTasks() { ASSERT_FALSE(task_runner_->HasPendingTask()); } 266 void AssertNoPendingTasks() { ASSERT_FALSE(task_runner_->HasPendingTask()); }
269 267
270 PrefService* prefs() { return &pref_service_; } 268 PrefService* prefs() { return &pref_service_; }
271 RulesetService* service() { return service_.get(); } 269 RulesetService* service() { return service_.get(); }
272 MockRulesetServiceDelegate* mock_delegate() { return mock_delegate_; } 270 MockRulesetServiceDelegate* mock_delegate() { return mock_delegate_.get(); }
273 271
274 virtual base::FilePath effective_temp_dir() const { 272 virtual base::FilePath effective_temp_dir() const {
275 return scoped_temp_dir_.GetPath(); 273 return scoped_temp_dir_.GetPath();
276 } 274 }
277 275
278 TestRulesetCreator* test_ruleset_creator() { return &ruleset_creator_; } 276 TestRulesetCreator* test_ruleset_creator() { return &ruleset_creator_; }
279 const TestRulesetPair& test_ruleset_1() const { return test_ruleset_1_; } 277 const TestRulesetPair& test_ruleset_1() const { return test_ruleset_1_; }
280 const TestRulesetPair& test_ruleset_2() const { return test_ruleset_2_; } 278 const TestRulesetPair& test_ruleset_2() const { return test_ruleset_2_; }
281 const TestRulesetPair& test_ruleset_3() const { return test_ruleset_3_; } 279 const TestRulesetPair& test_ruleset_3() const { return test_ruleset_3_; }
282 base::FilePath base_dir() const { 280 base::FilePath base_dir() const {
283 return effective_temp_dir().AppendASCII("Rules").AppendASCII("Indexed"); 281 return effective_temp_dir().AppendASCII("Rules").AppendASCII("Indexed");
284 } 282 }
285 283
286 private: 284 private:
287 base::ScopedTempDir scoped_temp_dir_; 285 base::ScopedTempDir scoped_temp_dir_;
288 286
289 scoped_refptr<base::TestSimpleTaskRunner> task_runner_; 287 scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
290 base::ThreadTaskRunnerHandle task_runner_handle_; 288 base::ThreadTaskRunnerHandle task_runner_handle_;
291 TestingPrefServiceSimple pref_service_; 289 TestingPrefServiceSimple pref_service_;
292 290
293 TestRulesetCreator ruleset_creator_; 291 TestRulesetCreator ruleset_creator_;
294 TestRulesetPair test_ruleset_1_; 292 TestRulesetPair test_ruleset_1_;
295 TestRulesetPair test_ruleset_2_; 293 TestRulesetPair test_ruleset_2_;
296 TestRulesetPair test_ruleset_3_; 294 TestRulesetPair test_ruleset_3_;
297 295
298 std::unique_ptr<RulesetService> service_; 296 std::unique_ptr<RulesetService> service_;
299 MockRulesetServiceDelegate* mock_delegate_; // Weak, owned by |service_|. 297 std::unique_ptr<MockRulesetServiceDelegate> mock_delegate_;
pkalinnikov 2017/03/09 16:09:01 Please swap the lines to ensure that |mock_delegat
Charlie Harrison 2017/03/09 16:12:44 Done.
300 298
301 DISALLOW_COPY_AND_ASSIGN(SubresourceFilteringRulesetServiceTest); 299 DISALLOW_COPY_AND_ASSIGN(SubresourceFilteringRulesetServiceTest);
302 }; 300 };
303 301
304 // Specialized test fixture for death tests. It exposes the temporary directory 302 // Specialized test fixture for death tests. It exposes the temporary directory
305 // used by the parent process as an environment variable that is consumed by the 303 // used by the parent process as an environment variable that is consumed by the
306 // child process, so that both processes use the same temporary directory. This 304 // child process, so that both processes use the same temporary directory. This
307 // would not otherwise be the case on Windows, where children are not `forked` 305 // would not otherwise be the case on Windows, where children are not `forked`
308 // and therefore would create their own unique temp directory. 306 // and therefore would create their own unique temp directory.
309 class SubresourceFilteringRulesetServiceDeathTest 307 class SubresourceFilteringRulesetServiceDeathTest
(...skipping 681 matching lines...) Expand 10 before | Expand all | Expand 10 after
991 mock_delegate()->SimulateStartupCompleted(); 989 mock_delegate()->SimulateStartupCompleted();
992 IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(), kTestContentVersion1); 990 IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(), kTestContentVersion1);
993 RunUntilIdle(); 991 RunUntilIdle();
994 992
995 ASSERT_EQ(1u, mock_delegate()->published_rulesets().size()); 993 ASSERT_EQ(1u, mock_delegate()->published_rulesets().size());
996 ASSERT_NO_FATAL_FAILURE( 994 ASSERT_NO_FATAL_FAILURE(
997 AssertReadonlyRulesetFile(&mock_delegate()->published_rulesets()[0])); 995 AssertReadonlyRulesetFile(&mock_delegate()->published_rulesets()[0]));
998 } 996 }
999 997
1000 } // namespace subresource_filter 998 } // namespace subresource_filter
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698