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

Side by Side Diff: chrome/browser/extensions/api/media_galleries/media_galleries_apitest.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, 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 (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/bind.h" 5 #include "base/bind.h"
6 #include "base/bind_helpers.h" 6 #include "base/bind_helpers.h"
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/files/scoped_temp_dir.h" 8 #include "base/files/scoped_temp_dir.h"
9 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 26 matching lines...) Expand all
37 #endif 37 #endif
38 38
39 const char kTestGalleries[] = "testGalleries(%d)"; 39 const char kTestGalleries[] = "testGalleries(%d)";
40 40
41 } // namespace 41 } // namespace
42 42
43 // This function is to ensure at least one (fake) media gallery exists for 43 // This function is to ensure at least one (fake) media gallery exists for
44 // testing platforms with no default media galleries, such as CHROMEOS. 44 // testing platforms with no default media galleries, such as CHROMEOS.
45 void MakeFakeMediaGalleryForTest(Profile* profile, const base::FilePath& path) { 45 void MakeFakeMediaGalleryForTest(Profile* profile, const base::FilePath& path) {
46 base::RunLoop runloop; 46 base::RunLoop runloop;
47 StorageMonitor::GetInstance()->EnsureInitialized(runloop.QuitClosure());
48 runloop.Run();
49
50 MediaGalleriesPreferences* preferences = 47 MediaGalleriesPreferences* preferences =
51 g_browser_process->media_file_system_registry()->GetPreferences(profile); 48 g_browser_process->media_file_system_registry()->GetPreferences(profile);
49 preferences->EnsureInitialized(runloop.QuitClosure());
50 runloop.Run();
52 51
53 MediaGalleryPrefInfo gallery_info; 52 MediaGalleryPrefInfo gallery_info;
54 ASSERT_FALSE(preferences->LookUpGalleryByPath(path, &gallery_info)); 53 ASSERT_FALSE(preferences->LookUpGalleryByPath(path, &gallery_info));
55 preferences->AddGallery(gallery_info.device_id, 54 preferences->AddGallery(gallery_info.device_id,
56 gallery_info.path, 55 gallery_info.path,
57 false /* user_added */, 56 false /* user_added */,
58 gallery_info.volume_label, 57 gallery_info.volume_label,
59 gallery_info.vendor_name, 58 gallery_info.vendor_name,
60 gallery_info.model_name, 59 gallery_info.model_name,
61 gallery_info.total_size_in_bytes, 60 gallery_info.total_size_in_bytes,
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 StorageMonitor::GetInstance()->receiver()->ProcessDetach(device_id_); 93 StorageMonitor::GetInstance()->receiver()->ProcessDetach(device_id_);
95 content::RunAllPendingInMessageLoop(); 94 content::RunAllPendingInMessageLoop();
96 } 95 }
97 96
98 private: 97 private:
99 std::string device_id_; 98 std::string device_id_;
100 }; 99 };
101 100
102 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, 101 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest,
103 MediaGalleriesNoAccess) { 102 MediaGalleriesNoAccess) {
104 EnsureMediaDirectoriesExists media_directories; 103 TestMediaDirectoriesOverrides media_directories;
105 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/no_access")) 104 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/no_access"))
106 << message_; 105 << message_;
107 RunSecondTestPhase(base::UTF8ToUTF16(base::StringPrintf( 106 RunSecondTestPhase(base::UTF8ToUTF16(base::StringPrintf(
108 kTestGalleries, media_directories.num_galleries()))); 107 kTestGalleries, media_directories.num_galleries())));
109 } 108 }
110 109
111 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, NoGalleriesRead) { 110 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, NoGalleriesRead) {
112 EnsureMediaDirectoriesExists media_directories; 111 TestMediaDirectoriesOverrides media_directories;
113 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/no_galleries")) 112 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/no_galleries"))
114 << message_; 113 << message_;
115 } 114 }
116 115
117 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, 116 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest,
118 NoGalleriesCopyTo) { 117 NoGalleriesCopyTo) {
119 EnsureMediaDirectoriesExists media_directories; 118 TestMediaDirectoriesOverrides media_directories;
120 ASSERT_TRUE(RunPlatformAppTest( 119 ASSERT_TRUE(RunPlatformAppTest(
121 "api_test/media_galleries/no_galleries_copy_to")) << message_; 120 "api_test/media_galleries/no_galleries_copy_to")) << message_;
122 } 121 }
123 122
124 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, 123 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest,
125 MediaGalleriesRead) { 124 MediaGalleriesRead) {
126 EnsureMediaDirectoriesExists media_directories; 125 TestMediaDirectoriesOverrides media_directories;
127 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/read_access")) 126 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/read_access"))
128 << message_; 127 << message_;
129 RunSecondTestPhase(base::UTF8ToUTF16(base::StringPrintf( 128 RunSecondTestPhase(base::UTF8ToUTF16(base::StringPrintf(
130 kTestGalleries, media_directories.num_galleries()))); 129 kTestGalleries, media_directories.num_galleries())));
131 } 130 }
132 131
133 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, 132 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest,
134 MediaGalleriesCopyTo) { 133 MediaGalleriesCopyTo) {
135 EnsureMediaDirectoriesExists media_directories; 134 TestMediaDirectoriesOverrides media_directories;
136 base::ScopedTempDir temp_dir; 135 base::ScopedTempDir temp_dir;
137 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 136 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
138 MakeFakeMediaGalleryForTest(browser()->profile(), temp_dir.path()); 137 MakeFakeMediaGalleryForTest(browser()->profile(), temp_dir.path());
139 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/copy_to_access")) 138 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/copy_to_access"))
140 << message_; 139 << message_;
141 } 140 }
142 141
143 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, 142 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest,
144 MediaGalleriesCopyToNoAccess) { 143 MediaGalleriesCopyToNoAccess) {
145 EnsureMediaDirectoriesExists media_directories; 144 TestMediaDirectoriesOverrides media_directories;
146 base::ScopedTempDir temp_dir; 145 base::ScopedTempDir temp_dir;
147 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 146 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
148 MakeFakeMediaGalleryForTest(browser()->profile(), temp_dir.path()); 147 MakeFakeMediaGalleryForTest(browser()->profile(), temp_dir.path());
149 ASSERT_TRUE(RunPlatformAppTest( 148 ASSERT_TRUE(RunPlatformAppTest(
150 "api_test/media_galleries/copy_to_access/no_access")) 149 "api_test/media_galleries/copy_to_access/no_access"))
151 << message_; 150 << message_;
152 } 151 }
153 152
154 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, 153 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest,
155 MediaGalleriesAccessAttached) { 154 MediaGalleriesAccessAttached) {
156 EnsureMediaDirectoriesExists media_directories; 155 TestMediaDirectoriesOverrides media_directories;
157 156
158 AttachFakeDevice(); 157 AttachFakeDevice();
159 158
160 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/access_attached")) 159 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/access_attached"))
161 << message_; 160 << message_;
162 161
163 RunSecondTestPhase(ASCIIToUTF16(base::StringPrintf( 162 RunSecondTestPhase(ASCIIToUTF16(base::StringPrintf(
164 "testGalleries(%d, \"%s\")", 163 "testGalleries(%d, \"%s\")",
165 media_directories.num_galleries() + 1, kDeviceName))); 164 media_directories.num_galleries() + 1, kDeviceName)));
166 165
167 DetachFakeDevice(); 166 DetachFakeDevice();
168 } 167 }
169 168
170 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, 169 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest,
171 GetFilesystemMetadata) { 170 GetFilesystemMetadata) {
172 EnsureMediaDirectoriesExists media_directories; 171 TestMediaDirectoriesOverrides media_directories;
173 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/metadata")) 172 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/metadata"))
174 << message_; 173 << message_;
175 } 174 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698