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

Side by Side Diff: chrome/browser/extensions/extension_special_storage_policy_unittest.cc

Issue 1086733002: Ensure tests have an active task runner (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased. Created 5 years, 7 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 (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 "base/message_loop/message_loop.h"
6 #include "base/values.h" 5 #include "base/values.h"
7 #include "chrome/browser/content_settings/cookie_settings.h" 6 #include "chrome/browser/content_settings/cookie_settings.h"
8 #include "chrome/browser/extensions/extension_special_storage_policy.h" 7 #include "chrome/browser/extensions/extension_special_storage_policy.h"
9 #include "chrome/test/base/testing_profile.h" 8 #include "chrome/test/base/testing_profile.h"
10 #include "components/content_settings/core/common/content_settings.h" 9 #include "components/content_settings/core/common/content_settings.h"
11 #include "components/content_settings/core/common/content_settings_types.h" 10 #include "components/content_settings/core/common/content_settings_types.h"
12 #include "content/public/test/test_browser_thread.h" 11 #include "content/public/test/test_browser_thread.h"
12 #include "content/public/test/test_browser_thread_bundle.h"
13 #include "extensions/common/extension.h" 13 #include "extensions/common/extension.h"
14 #include "extensions/common/extension_set.h" 14 #include "extensions/common/extension_set.h"
15 #include "extensions/common/manifest.h" 15 #include "extensions/common/manifest.h"
16 #include "extensions/common/manifest_constants.h" 16 #include "extensions/common/manifest_constants.h"
17 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
18 18
19 using content::BrowserThread; 19 using content::BrowserThread;
20 using extensions::Extension; 20 using extensions::Extension;
21 using extensions::ExtensionSet; 21 using extensions::ExtensionSet;
22 using extensions::Manifest; 22 using extensions::Manifest;
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 const ExtensionSet* extensions = policy_->ExtensionsProtectingOrigin(url); 165 const ExtensionSet* extensions = policy_->ExtensionsProtectingOrigin(url);
166 EXPECT_EQ(expected_extensions.size(), extensions->size()); 166 EXPECT_EQ(expected_extensions.size(), extensions->size());
167 for (ExtensionSet::const_iterator it = expected_extensions.begin(); 167 for (ExtensionSet::const_iterator it = expected_extensions.begin();
168 it != expected_extensions.end(); ++it) { 168 it != expected_extensions.end(); ++it) {
169 EXPECT_TRUE(extensions->Contains((*it)->id())) 169 EXPECT_TRUE(extensions->Contains((*it)->id()))
170 << "Origin " << url << "not protected by extension ID " 170 << "Origin " << url << "not protected by extension ID "
171 << (*it)->id(); 171 << (*it)->id();
172 } 172 }
173 } 173 }
174 174
175 content::TestBrowserThreadBundle thread_bundle_;
175 scoped_refptr<ExtensionSpecialStoragePolicy> policy_; 176 scoped_refptr<ExtensionSpecialStoragePolicy> policy_;
176 }; 177 };
177 178
178 TEST_F(ExtensionSpecialStoragePolicyTest, EmptyPolicy) { 179 TEST_F(ExtensionSpecialStoragePolicyTest, EmptyPolicy) {
179 const GURL kHttpUrl("http://foo"); 180 const GURL kHttpUrl("http://foo");
180 const GURL kExtensionUrl("chrome-extension://bar"); 181 const GURL kExtensionUrl("chrome-extension://bar");
181 scoped_refptr<Extension> app(CreateRegularApp()); 182 scoped_refptr<Extension> app(CreateRegularApp());
182 183
183 EXPECT_FALSE(policy_->IsStorageUnlimited(kHttpUrl)); 184 EXPECT_FALSE(policy_->IsStorageUnlimited(kHttpUrl));
184 EXPECT_FALSE(policy_->IsStorageUnlimited(kHttpUrl)); // test cached result 185 EXPECT_FALSE(policy_->IsStorageUnlimited(kHttpUrl)); // test cached result
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 ExpectProtectedBy(protecting_extensions, GURL("http://foo.wildcards/")); 303 ExpectProtectedBy(protecting_extensions, GURL("http://foo.wildcards/"));
303 ExpectProtectedBy(protecting_extensions, GURL("https://bar.wildcards/")); 304 ExpectProtectedBy(protecting_extensions, GURL("https://bar.wildcards/"));
304 305
305 policy_->RevokeRightsForExtension(protected_app.get()); 306 policy_->RevokeRightsForExtension(protected_app.get());
306 ExpectProtectedBy(empty_set, GURL("http://explicit/")); 307 ExpectProtectedBy(empty_set, GURL("http://explicit/"));
307 ExpectProtectedBy(empty_set, GURL("http://foo.wildcards/")); 308 ExpectProtectedBy(empty_set, GURL("http://foo.wildcards/"));
308 ExpectProtectedBy(empty_set, GURL("https://bar.wildcards/")); 309 ExpectProtectedBy(empty_set, GURL("https://bar.wildcards/"));
309 } 310 }
310 311
311 TEST_F(ExtensionSpecialStoragePolicyTest, HasSessionOnlyOrigins) { 312 TEST_F(ExtensionSpecialStoragePolicyTest, HasSessionOnlyOrigins) {
312 base::MessageLoop message_loop;
313 content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop);
314
315 TestingProfile profile; 313 TestingProfile profile;
316 CookieSettings* cookie_settings = 314 CookieSettings* cookie_settings =
317 CookieSettings::Factory::GetForProfile(&profile).get(); 315 CookieSettings::Factory::GetForProfile(&profile).get();
318 policy_ = new ExtensionSpecialStoragePolicy(cookie_settings); 316 policy_ = new ExtensionSpecialStoragePolicy(cookie_settings);
319 317
320 EXPECT_FALSE(policy_->HasSessionOnlyOrigins()); 318 EXPECT_FALSE(policy_->HasSessionOnlyOrigins());
321 319
322 // The default setting can be session-only. 320 // The default setting can be session-only.
323 cookie_settings->SetDefaultCookieSetting(CONTENT_SETTING_SESSION_ONLY); 321 cookie_settings->SetDefaultCookieSetting(CONTENT_SETTING_SESSION_ONLY);
324 EXPECT_TRUE(policy_->HasSessionOnlyOrigins()); 322 EXPECT_TRUE(policy_->HasSessionOnlyOrigins());
(...skipping 12 matching lines...) Expand all
337 EXPECT_TRUE(policy_->HasSessionOnlyOrigins()); 335 EXPECT_TRUE(policy_->HasSessionOnlyOrigins());
338 336
339 // Clearing an origin-specific rule. 337 // Clearing an origin-specific rule.
340 cookie_settings->ResetCookieSetting(pattern, 338 cookie_settings->ResetCookieSetting(pattern,
341 ContentSettingsPattern::Wildcard()); 339 ContentSettingsPattern::Wildcard());
342 340
343 EXPECT_FALSE(policy_->HasSessionOnlyOrigins()); 341 EXPECT_FALSE(policy_->HasSessionOnlyOrigins());
344 } 342 }
345 343
346 TEST_F(ExtensionSpecialStoragePolicyTest, NotificationTest) { 344 TEST_F(ExtensionSpecialStoragePolicyTest, NotificationTest) {
347 base::MessageLoop message_loop;
348 content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop);
349 content::TestBrowserThread io_thread(BrowserThread::IO, &message_loop);
350
351 PolicyChangeObserver observer; 345 PolicyChangeObserver observer;
352 policy_->AddObserver(&observer); 346 policy_->AddObserver(&observer);
353 347
354 scoped_refptr<Extension> apps[] = { 348 scoped_refptr<Extension> apps[] = {
355 CreateProtectedApp(), 349 CreateProtectedApp(),
356 CreateUnlimitedApp(), 350 CreateUnlimitedApp(),
357 }; 351 };
358 352
359 int change_flags[] = { 353 int change_flags[] = {
360 SpecialStoragePolicy::STORAGE_PROTECTED, 354 SpecialStoragePolicy::STORAGE_PROTECTED,
361 355
362 SpecialStoragePolicy::STORAGE_PROTECTED | 356 SpecialStoragePolicy::STORAGE_PROTECTED |
363 SpecialStoragePolicy::STORAGE_UNLIMITED, 357 SpecialStoragePolicy::STORAGE_UNLIMITED,
364 }; 358 };
365 359
366 ASSERT_EQ(arraysize(apps), arraysize(change_flags)); 360 ASSERT_EQ(arraysize(apps), arraysize(change_flags));
367 for (size_t i = 0; i < arraysize(apps); ++i) { 361 for (size_t i = 0; i < arraysize(apps); ++i) {
368 SCOPED_TRACE(testing::Message() << "i: " << i); 362 SCOPED_TRACE(testing::Message() << "i: " << i);
369 observer.ExpectGrant(apps[i]->id(), change_flags[i]); 363 observer.ExpectGrant(apps[i]->id(), change_flags[i]);
370 policy_->GrantRightsForExtension(apps[i].get(), NULL); 364 policy_->GrantRightsForExtension(apps[i].get(), NULL);
371 message_loop.RunUntilIdle(); 365 base::MessageLoop::current()->RunUntilIdle();
372 EXPECT_TRUE(observer.IsCompleted()); 366 EXPECT_TRUE(observer.IsCompleted());
373 } 367 }
374 368
375 for (size_t i = 0; i < arraysize(apps); ++i) { 369 for (size_t i = 0; i < arraysize(apps); ++i) {
376 SCOPED_TRACE(testing::Message() << "i: " << i); 370 SCOPED_TRACE(testing::Message() << "i: " << i);
377 policy_->GrantRightsForExtension(apps[i].get(), NULL); 371 policy_->GrantRightsForExtension(apps[i].get(), NULL);
378 message_loop.RunUntilIdle(); 372 base::MessageLoop::current()->RunUntilIdle();
379 EXPECT_TRUE(observer.IsCompleted()); 373 EXPECT_TRUE(observer.IsCompleted());
380 } 374 }
381 375
382 for (size_t i = 0; i < arraysize(apps); ++i) { 376 for (size_t i = 0; i < arraysize(apps); ++i) {
383 SCOPED_TRACE(testing::Message() << "i: " << i); 377 SCOPED_TRACE(testing::Message() << "i: " << i);
384 observer.ExpectRevoke(apps[i]->id(), change_flags[i]); 378 observer.ExpectRevoke(apps[i]->id(), change_flags[i]);
385 policy_->RevokeRightsForExtension(apps[i].get()); 379 policy_->RevokeRightsForExtension(apps[i].get());
386 message_loop.RunUntilIdle(); 380 base::MessageLoop::current()->RunUntilIdle();
387 EXPECT_TRUE(observer.IsCompleted()); 381 EXPECT_TRUE(observer.IsCompleted());
388 } 382 }
389 383
390 for (size_t i = 0; i < arraysize(apps); ++i) { 384 for (size_t i = 0; i < arraysize(apps); ++i) {
391 SCOPED_TRACE(testing::Message() << "i: " << i); 385 SCOPED_TRACE(testing::Message() << "i: " << i);
392 policy_->RevokeRightsForExtension(apps[i].get()); 386 policy_->RevokeRightsForExtension(apps[i].get());
393 message_loop.RunUntilIdle(); 387 base::MessageLoop::current()->RunUntilIdle();
394 EXPECT_TRUE(observer.IsCompleted()); 388 EXPECT_TRUE(observer.IsCompleted());
395 } 389 }
396 390
397 observer.ExpectClear(); 391 observer.ExpectClear();
398 policy_->RevokeRightsForAllExtensions(); 392 policy_->RevokeRightsForAllExtensions();
399 message_loop.RunUntilIdle(); 393 base::MessageLoop::current()->RunUntilIdle();
400 EXPECT_TRUE(observer.IsCompleted()); 394 EXPECT_TRUE(observer.IsCompleted());
401 395
402 policy_->RemoveObserver(&observer); 396 policy_->RemoveObserver(&observer);
403 } 397 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_service_unittest.cc ('k') | chrome/browser/extensions/install_tracker_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698