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

Side by Side Diff: chrome/browser/media_galleries/media_galleries_permissions_unittest.cc

Issue 24269007: Media Galleries API: Fix MediaGalleriesPreferences finders race. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 2 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "base/run_loop.h"
6 #include "chrome/browser/extensions/extension_prefs.h" 7 #include "chrome/browser/extensions/extension_prefs.h"
7 #include "chrome/browser/extensions/extension_prefs_unittest.h" 8 #include "chrome/browser/extensions/extension_prefs_unittest.h"
8 #include "chrome/browser/extensions/extension_service.h" 9 #include "chrome/browser/extensions/extension_service.h"
9 #include "chrome/browser/extensions/extension_system.h" 10 #include "chrome/browser/extensions/extension_system.h"
10 #include "chrome/browser/media_galleries/media_galleries_preferences.h" 11 #include "chrome/browser/media_galleries/media_galleries_preferences.h"
12 #include "chrome/browser/media_galleries/media_galleries_test_util.h"
11 #include "chrome/browser/storage_monitor/test_storage_monitor.h" 13 #include "chrome/browser/storage_monitor/test_storage_monitor.h"
12 #include "chrome/test/base/testing_profile.h" 14 #include "chrome/test/base/testing_profile.h"
15 #include "content/public/browser/browser_thread.h"
16 #include "content/public/test/test_browser_thread.h"
13 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
14 18
15 namespace { 19 namespace {
16 20
17 void AddGalleryPermission(MediaGalleryPrefId gallery, 21 void AddGalleryPermission(MediaGalleryPrefId gallery,
18 bool has_access, 22 bool has_access,
19 std::vector<MediaGalleryPermission>* vector) { 23 std::vector<MediaGalleryPermission>* vector) {
20 MediaGalleryPermission permission; 24 MediaGalleryPermission permission;
21 permission.pref_id = gallery; 25 permission.pref_id = gallery;
22 permission.has_permission = has_access; 26 permission.has_permission = has_access;
23 vector->push_back(permission); 27 vector->push_back(permission);
24 } 28 }
25 29
26 } // namespace 30 } // namespace
27 31
28 // Test the MediaGalleries permissions functions. 32 // Test the MediaGalleries permissions functions.
29 class MediaGalleriesPermissionsTest : public extensions::ExtensionPrefsTest { 33 class MediaGalleriesPermissionsTest : public extensions::ExtensionPrefsTest {
30 protected: 34 protected:
31 MediaGalleriesPermissionsTest() {} 35 MediaGalleriesPermissionsTest()
36 : file_thread_(content::BrowserThread::FILE) {
37 }
32 virtual ~MediaGalleriesPermissionsTest() {} 38 virtual ~MediaGalleriesPermissionsTest() {}
33 39
34 // This is the same implementation as ExtensionPrefsTest::TearDown(), except 40 // This is the same implementation as ExtensionPrefsTest::TearDown(), except
35 // for also resetting the ExtensionPrefs used by |gallery_prefs_| after 41 // for also resetting the ExtensionPrefs used by |gallery_prefs_| after
36 // TestExtensionPrefs reconstructs them. 42 // TestExtensionPrefs reconstructs them.
37 virtual void TearDown() OVERRIDE { 43 virtual void TearDown() OVERRIDE {
38 Verify(); 44 Verify();
39 45
40 // Reset ExtensionPrefs, and re-verify. 46 // Reset ExtensionPrefs, and re-verify.
41 prefs_.ResetPrefRegistry(); 47 prefs_.ResetPrefRegistry();
42 RegisterPreferences(prefs_.pref_registry().get()); 48 RegisterPreferences(prefs_.pref_registry().get());
43 prefs_.RecreateExtensionPrefs(); 49 prefs_.RecreateExtensionPrefs();
44 gallery_prefs_->SetExtensionPrefsForTesting(prefs()); 50 gallery_prefs_->SetExtensionPrefsForTesting(prefs());
45 Verify(); 51 Verify();
46 prefs_.pref_service()->CommitPendingWrite(); 52 prefs_.pref_service()->CommitPendingWrite();
47 message_loop_.RunUntilIdle(); 53 message_loop_.RunUntilIdle();
48 54
49 TestStorageMonitor::RemoveSingleton(); 55 TestStorageMonitor::RemoveSingleton();
50 56
51 testing::Test::TearDown(); 57 testing::Test::TearDown();
52 } 58 }
53 59
54 virtual void Initialize() OVERRIDE { 60 virtual void Initialize() OVERRIDE {
61 file_thread_.Start();
62
55 ASSERT_TRUE(TestStorageMonitor::CreateAndInstall()); 63 ASSERT_TRUE(TestStorageMonitor::CreateAndInstall());
56 profile_.reset(new TestingProfile); 64 profile_.reset(new TestingProfile);
57 gallery_prefs_.reset(new MediaGalleriesPreferences(profile_.get())); 65 gallery_prefs_.reset(new MediaGalleriesPreferences(profile_.get()));
66 base::RunLoop loop;
67 gallery_prefs_->EnsureInitialized(loop.QuitClosure());
68 loop.Run();
69
58 gallery_prefs_->SetExtensionPrefsForTesting(prefs()); 70 gallery_prefs_->SetExtensionPrefsForTesting(prefs());
59 71
60 extension1_id_ = prefs_.AddExtensionAndReturnId("test1"); 72 extension1_id_ = prefs_.AddExtensionAndReturnId("test1");
61 extension2_id_ = prefs_.AddExtensionAndReturnId("test2"); 73 extension2_id_ = prefs_.AddExtensionAndReturnId("test2");
62 extension3_id_ = prefs_.AddExtensionAndReturnId("test3"); 74 extension3_id_ = prefs_.AddExtensionAndReturnId("test3");
63 // Id4 isn't used to ensure that an empty permission list is ok. 75 // Id4 isn't used to ensure that an empty permission list is ok.
64 extension4_id_ = prefs_.AddExtensionAndReturnId("test4"); 76 extension4_id_ = prefs_.AddExtensionAndReturnId("test4");
65 Verify(); 77 Verify();
66 78
67 gallery_prefs_->SetGalleryPermissionInPrefs(extension1_id_, 1, false); 79 gallery_prefs_->SetGalleryPermissionInPrefs(extension1_id_, 1, false);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 std::string extension1_id_; 139 std::string extension1_id_;
128 std::string extension2_id_; 140 std::string extension2_id_;
129 std::string extension3_id_; 141 std::string extension3_id_;
130 std::string extension4_id_; 142 std::string extension4_id_;
131 143
132 std::vector<MediaGalleryPermission> extension1_expectation_; 144 std::vector<MediaGalleryPermission> extension1_expectation_;
133 std::vector<MediaGalleryPermission> extension2_expectation_; 145 std::vector<MediaGalleryPermission> extension2_expectation_;
134 std::vector<MediaGalleryPermission> extension3_expectation_; 146 std::vector<MediaGalleryPermission> extension3_expectation_;
135 std::vector<MediaGalleryPermission> extension4_expectation_; 147 std::vector<MediaGalleryPermission> extension4_expectation_;
136 148
149 // Needed for |gallery_prefs_| to initialize correctly.
150 EnsureMediaDirectoriesExists ensure_media_directories_exists_;
151 content::TestBrowserThread file_thread_;
152
137 scoped_ptr<TestingProfile> profile_; 153 scoped_ptr<TestingProfile> profile_;
138 scoped_ptr<MediaGalleriesPreferences> gallery_prefs_; 154 scoped_ptr<MediaGalleriesPreferences> gallery_prefs_;
139 }; 155 };
140 156
141 TEST_F(MediaGalleriesPermissionsTest, MediaGalleries) {} 157 TEST_F(MediaGalleriesPermissionsTest, MediaGalleries) {}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698