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

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: merge origin Created 7 years, 3 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_bundle.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;
(...skipping 25 matching lines...) Expand all
48 52
49 TestStorageMonitor::RemoveSingleton(); 53 TestStorageMonitor::RemoveSingleton();
50 54
51 testing::Test::TearDown(); 55 testing::Test::TearDown();
52 } 56 }
53 57
54 virtual void Initialize() OVERRIDE { 58 virtual void Initialize() OVERRIDE {
55 ASSERT_TRUE(TestStorageMonitor::CreateAndInstall()); 59 ASSERT_TRUE(TestStorageMonitor::CreateAndInstall());
56 profile_.reset(new TestingProfile); 60 profile_.reset(new TestingProfile);
57 gallery_prefs_.reset(new MediaGalleriesPreferences(profile_.get())); 61 gallery_prefs_.reset(new MediaGalleriesPreferences(profile_.get()));
62 base::RunLoop loop;
63 gallery_prefs_->EnsureInitialized(loop.QuitClosure());
64 loop.Run();
65
58 gallery_prefs_->SetExtensionPrefsForTesting(prefs()); 66 gallery_prefs_->SetExtensionPrefsForTesting(prefs());
59 67
60 extension1_id_ = prefs_.AddExtensionAndReturnId("test1"); 68 extension1_id_ = prefs_.AddExtensionAndReturnId("test1");
61 extension2_id_ = prefs_.AddExtensionAndReturnId("test2"); 69 extension2_id_ = prefs_.AddExtensionAndReturnId("test2");
62 extension3_id_ = prefs_.AddExtensionAndReturnId("test3"); 70 extension3_id_ = prefs_.AddExtensionAndReturnId("test3");
63 // Id4 isn't used to ensure that an empty permission list is ok. 71 // Id4 isn't used to ensure that an empty permission list is ok.
64 extension4_id_ = prefs_.AddExtensionAndReturnId("test4"); 72 extension4_id_ = prefs_.AddExtensionAndReturnId("test4");
65 Verify(); 73 Verify();
66 74
67 gallery_prefs_->SetGalleryPermissionInPrefs(extension1_id_, 1, false); 75 gallery_prefs_->SetGalleryPermissionInPrefs(extension1_id_, 1, false);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 std::string extension1_id_; 135 std::string extension1_id_;
128 std::string extension2_id_; 136 std::string extension2_id_;
129 std::string extension3_id_; 137 std::string extension3_id_;
130 std::string extension4_id_; 138 std::string extension4_id_;
131 139
132 std::vector<MediaGalleryPermission> extension1_expectation_; 140 std::vector<MediaGalleryPermission> extension1_expectation_;
133 std::vector<MediaGalleryPermission> extension2_expectation_; 141 std::vector<MediaGalleryPermission> extension2_expectation_;
134 std::vector<MediaGalleryPermission> extension3_expectation_; 142 std::vector<MediaGalleryPermission> extension3_expectation_;
135 std::vector<MediaGalleryPermission> extension4_expectation_; 143 std::vector<MediaGalleryPermission> extension4_expectation_;
136 144
145 // Needed for |gallery_prefs_| to initialize correctly.
146 EnsureMediaDirectoriesExists ensure_media_directories_exists_;
147 content::TestBrowserThreadBundle thread_bundle_;
148
137 scoped_ptr<TestingProfile> profile_; 149 scoped_ptr<TestingProfile> profile_;
138 scoped_ptr<MediaGalleriesPreferences> gallery_prefs_; 150 scoped_ptr<MediaGalleriesPreferences> gallery_prefs_;
139 }; 151 };
140 152
141 TEST_F(MediaGalleriesPermissionsTest, MediaGalleries) {} 153 TEST_F(MediaGalleriesPermissionsTest, MediaGalleries) {}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698