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

Side by Side Diff: chrome/browser/extensions/api/media_galleries/media_galleries_apitest.cc

Issue 23456035: Media Galleries API Picasa: Windows Custom Database Locations (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 (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/file_util.h" 5 #include "base/file_util.h"
6 #include "base/files/scoped_temp_dir.h" 6 #include "base/files/scoped_temp_dir.h"
7 #include "base/json/json_writer.h" 7 #include "base/json/json_writer.h"
8 #include "base/path_service.h" 8 #include "base/path_service.h"
9 #include "base/safe_numerics.h" 9 #include "base/safe_numerics.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 65
66 } // namespace 66 } // namespace
67 67
68 class MediaGalleriesPlatformAppBrowserTest : public PlatformAppBrowserTest { 68 class MediaGalleriesPlatformAppBrowserTest : public PlatformAppBrowserTest {
69 protected: 69 protected:
70 MediaGalleriesPlatformAppBrowserTest() : test_jpg_size_(0) {} 70 MediaGalleriesPlatformAppBrowserTest() : test_jpg_size_(0) {}
71 virtual ~MediaGalleriesPlatformAppBrowserTest() {} 71 virtual ~MediaGalleriesPlatformAppBrowserTest() {}
72 72
73 virtual void SetUpOnMainThread() OVERRIDE { 73 virtual void SetUpOnMainThread() OVERRIDE {
74 PlatformAppBrowserTest::SetUpOnMainThread(); 74 PlatformAppBrowserTest::SetUpOnMainThread();
75 ensure_media_directories_exist_.reset(new EnsureMediaDirectoriesExists); 75 ensure_media_directories_exists_.reset(new EnsureMediaDirectoriesExists);
76 PopulatePicturesDirectoryTestData(); 76 PopulatePicturesDirectoryTestData();
77 } 77 }
78 78
79 virtual void TearDownOnMainThread() OVERRIDE { 79 virtual void TearDownOnMainThread() OVERRIDE {
80 ensure_media_directories_exist_.reset(); 80 ensure_media_directories_exists_.reset();
81 PlatformAppBrowserTest::TearDownOnMainThread(); 81 PlatformAppBrowserTest::TearDownOnMainThread();
82 } 82 }
83 83
84 bool RunMediaGalleriesTest(const std::string& extension_name) { 84 bool RunMediaGalleriesTest(const std::string& extension_name) {
85 base::ListValue empty_list_value; 85 base::ListValue empty_list_value;
86 return RunMediaGalleriesTestWithArg(extension_name, empty_list_value); 86 return RunMediaGalleriesTestWithArg(extension_name, empty_list_value);
87 } 87 }
88 88
89 bool RunMediaGalleriesTestWithArg(const std::string& extension_name, 89 bool RunMediaGalleriesTestWithArg(const std::string& extension_name,
90 const base::ListValue& custom_arg_value) { 90 const base::ListValue& custom_arg_value) {
(...skipping 18 matching lines...) Expand all
109 base::string16(), 0)); 109 base::string16(), 0));
110 content::RunAllPendingInMessageLoop(); 110 content::RunAllPendingInMessageLoop();
111 } 111 }
112 112
113 void DetachFakeDevice() { 113 void DetachFakeDevice() {
114 StorageMonitor::GetInstance()->receiver()->ProcessDetach(device_id_); 114 StorageMonitor::GetInstance()->receiver()->ProcessDetach(device_id_);
115 content::RunAllPendingInMessageLoop(); 115 content::RunAllPendingInMessageLoop();
116 } 116 }
117 117
118 void PopulatePicturesDirectoryTestData() { 118 void PopulatePicturesDirectoryTestData() {
119 if (ensure_media_directories_exist_->num_galleries() == 0) 119 if (ensure_media_directories_exists_->num_galleries() == 0)
120 return; 120 return;
121 121
122 base::FilePath test_data_path = 122 base::FilePath test_data_path =
123 test_data_dir_.AppendASCII("api_test") 123 test_data_dir_.AppendASCII("api_test")
124 .AppendASCII("media_galleries") 124 .AppendASCII("media_galleries")
125 .AppendASCII("common"); 125 .AppendASCII("common");
126 base::FilePath write_path; 126 base::FilePath write_path;
127 ASSERT_TRUE(PathService::Get(chrome::DIR_USER_PICTURES, &write_path)); 127 ASSERT_TRUE(PathService::Get(chrome::DIR_USER_PICTURES, &write_path));
128 128
129 // Valid file, should show up in JS as a FileEntry. 129 // Valid file, should show up in JS as a FileEntry.
130 ASSERT_TRUE(base::CopyFile(test_data_path.AppendASCII("test.jpg"), 130 ASSERT_TRUE(base::CopyFile(test_data_path.AppendASCII("test.jpg"),
131 write_path.AppendASCII("test.jpg"))); 131 write_path.AppendASCII("test.jpg")));
132 132
133 // Invalid file, should not show up as a FileEntry in JS at all. 133 // Invalid file, should not show up as a FileEntry in JS at all.
134 ASSERT_TRUE(base::CopyFile(test_data_path.AppendASCII("test.txt"), 134 ASSERT_TRUE(base::CopyFile(test_data_path.AppendASCII("test.txt"),
135 write_path.AppendASCII("test.txt"))); 135 write_path.AppendASCII("test.txt")));
136 136
137 int64 file_size; 137 int64 file_size;
138 ASSERT_TRUE(file_util::GetFileSize(test_data_path.AppendASCII("test.jpg"), 138 ASSERT_TRUE(file_util::GetFileSize(test_data_path.AppendASCII("test.jpg"),
139 &file_size)); 139 &file_size));
140 test_jpg_size_ = base::checked_numeric_cast<int>(file_size); 140 test_jpg_size_ = base::checked_numeric_cast<int>(file_size);
141 } 141 }
142 142
143 #if defined(OS_WIN) || defined(OS_MACOSX) 143 #if defined(OS_WIN) || defined(OS_MACOSX)
144 void PopulatePicasaTestData() { 144 void PopulatePicasaTestData(const base::FilePath& metadata_root) {
145 // Create Picasa metadata database directories.
146 base::FilePath metadata_root;
147 #if defined(OS_WIN)
148 metadata_root = ensure_media_directories_exist_->GetFakeLocalAppDataPath();
149 #elif defined(OS_MACOSX)
150 metadata_root = ensure_media_directories_exist_->GetFakeAppDataPath();
151 #endif
152
153 metadata_root = metadata_root.AppendASCII("Google").AppendASCII("Picasa2");
154 base::FilePath picasa_database_path = 145 base::FilePath picasa_database_path =
155 metadata_root.AppendASCII(picasa::kPicasaDatabaseDirName); 146 metadata_root.AppendASCII(picasa::kPicasaDatabaseDirName);
156 base::FilePath picasa_temp_dir_path = 147 base::FilePath picasa_temp_dir_path =
157 metadata_root.AppendASCII(picasa::kPicasaTempDirName); 148 metadata_root.AppendASCII(picasa::kPicasaTempDirName);
158 ASSERT_TRUE(file_util::CreateDirectory(picasa_database_path)); 149 ASSERT_TRUE(file_util::CreateDirectory(picasa_database_path));
159 ASSERT_TRUE(file_util::CreateDirectory(picasa_temp_dir_path)); 150 ASSERT_TRUE(file_util::CreateDirectory(picasa_temp_dir_path));
160 151
161 // Create fake folder directories. 152 // Create fake folder directories.
162 base::FilePath folders_root = 153 base::FilePath folders_root =
163 ensure_media_directories_exist_->GetFakePicasaFoldersRootPath(); 154 ensure_media_directories_exists_->GetFakePicasaFoldersRootPath();
164 base::FilePath fake_folder_1 = folders_root.AppendASCII("folder1"); 155 base::FilePath fake_folder_1 = folders_root.AppendASCII("folder1");
165 base::FilePath fake_folder_2 = folders_root.AppendASCII("folder2"); 156 base::FilePath fake_folder_2 = folders_root.AppendASCII("folder2");
166 ASSERT_TRUE(file_util::CreateDirectory(fake_folder_1)); 157 ASSERT_TRUE(file_util::CreateDirectory(fake_folder_1));
167 ASSERT_TRUE(file_util::CreateDirectory(fake_folder_2)); 158 ASSERT_TRUE(file_util::CreateDirectory(fake_folder_2));
168 159
169 // Write folder and album contents. 160 // Write folder and album contents.
170 picasa::WriteTestAlbumTable( 161 picasa::WriteTestAlbumTable(
171 picasa_database_path, fake_folder_1, fake_folder_2); 162 picasa_database_path, fake_folder_1, fake_folder_2);
172 picasa::WriteTestAlbumsImagesIndex(fake_folder_1, fake_folder_2); 163 picasa::WriteTestAlbumsImagesIndex(fake_folder_1, fake_folder_2);
173 164
174 base::FilePath test_data_path = 165 base::FilePath test_data_path =
175 test_data_dir_.AppendASCII("api_test").AppendASCII("media_galleries") 166 test_data_dir_.AppendASCII("api_test").AppendASCII("media_galleries")
176 .AppendASCII("common"); 167 .AppendASCII("common");
177 ASSERT_TRUE(base::CopyFile( 168 ASSERT_TRUE(base::CopyFile(
178 test_data_path.AppendASCII("test.jpg"), 169 test_data_path.AppendASCII("test.jpg"),
179 fake_folder_1.AppendASCII("InBoth.jpg"))); 170 fake_folder_1.AppendASCII("InBoth.jpg")));
180 ASSERT_TRUE(base::CopyFile( 171 ASSERT_TRUE(base::CopyFile(
181 test_data_path.AppendASCII("test.jpg"), 172 test_data_path.AppendASCII("test.jpg"),
182 fake_folder_1.AppendASCII("InSecondAlbumOnly.jpg"))); 173 fake_folder_1.AppendASCII("InSecondAlbumOnly.jpg")));
183 ASSERT_TRUE(base::CopyFile( 174 ASSERT_TRUE(base::CopyFile(
184 test_data_path.AppendASCII("test.jpg"), 175 test_data_path.AppendASCII("test.jpg"),
185 fake_folder_2.AppendASCII("InFirstAlbumOnly.jpg"))); 176 fake_folder_2.AppendASCII("InFirstAlbumOnly.jpg")));
186 } 177 }
187 #endif 178 #endif
188 179
189 int num_galleries() const { 180 int num_galleries() const {
190 return ensure_media_directories_exist_->num_galleries(); 181 return ensure_media_directories_exists_->num_galleries();
191 } 182 }
192 183
193 int test_jpg_size() const { return test_jpg_size_; } 184 int test_jpg_size() const { return test_jpg_size_; }
194 185
186 EnsureMediaDirectoriesExists* ensure_media_directories_exists() const {
187 return ensure_media_directories_exists_.get();
188 }
189
195 private: 190 private:
196 std::string device_id_; 191 std::string device_id_;
197 int test_jpg_size_; 192 int test_jpg_size_;
198 scoped_ptr<EnsureMediaDirectoriesExists> ensure_media_directories_exist_; 193 scoped_ptr<EnsureMediaDirectoriesExists> ensure_media_directories_exists_;
199 }; 194 };
200 195
201 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, 196 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest,
202 MediaGalleriesNoAccess) { 197 MediaGalleriesNoAccess) {
203 base::ListValue custom_args; 198 base::ListValue custom_args;
204 custom_args.AppendInteger(num_galleries()); 199 custom_args.AppendInteger(num_galleries());
205 200
206 ASSERT_TRUE(RunMediaGalleriesTestWithArg("no_access", custom_args)) 201 ASSERT_TRUE(RunMediaGalleriesTestWithArg("no_access", custom_args))
207 << message_; 202 << message_;
208 } 203 }
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 << message_; 249 << message_;
255 250
256 DetachFakeDevice(); 251 DetachFakeDevice();
257 } 252 }
258 253
259 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, 254 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest,
260 GetFilesystemMetadata) { 255 GetFilesystemMetadata) {
261 ASSERT_TRUE(RunMediaGalleriesTest("metadata")) << message_; 256 ASSERT_TRUE(RunMediaGalleriesTest("metadata")) << message_;
262 } 257 }
263 258
264 #if defined(OS_WIN) || defined(OS_MACOSX) 259 #if defined(OS_WIN)
265 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, Picasa) { 260 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest,
266 PopulatePicasaTestData(); 261 PicasaDefaultLocation) {
262 base::FilePath metadata_root =
263 ensure_media_directories_exists()->GetFakeLocalAppDataPath()
264 .AppendASCII("Google").AppendASCII("Picasa2");
vandebo (ex-Chrome) 2013/10/02 15:32:46 nit: wrapping
tommycli 2013/10/02 16:44:39 Done.
265 PopulatePicasaTestData(metadata_root);
267 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/picasa")) 266 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/picasa"))
268 << message_; 267 << message_;
269 } 268 }
270 #endif // defined(OS_WIN) || defined(OS_MACOSX) 269
270 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest,
271 PicasaCustomLocation) {
272 base::ScopedTempDir fake_alternate_app_data_dir;
273 ASSERT_TRUE(fake_alternate_app_data_dir.CreateUniqueTempDir());
274 ensure_media_directories_exists()->WriteCustomPicasaAppDataPathToRegistry(
275 fake_alternate_app_data_dir.path());
276 base::FilePath metadata_root = fake_alternate_app_data_dir.path()
277 .AppendASCII("Google").AppendASCII("Picasa2");
278 PopulatePicasaTestData(metadata_root);
279 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/picasa"))
280 << message_;
281 }
282 #endif // defined(OS_WIN)
283
284 #if defined(OS_MACOSX)
285 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest,
286 PicasaDefaultLocation) {
287 base::FilePath metadata_root =
288 ensure_media_directories_exists()->GetFakeAppDataPath()
289 .AppendASCII("Google").AppendASCII("Picasa3");
vandebo (ex-Chrome) 2013/10/02 15:32:46 nit: wrapping
vandebo (ex-Chrome) 2013/10/02 15:32:46 3 vs 2? looks like the only difference between the
tommycli 2013/10/02 16:44:39 Done.
tommycli 2013/10/02 16:44:39 Also GetFakeAppDataPath vs GetFakeLocalAppDataPath
290 PopulatePicasaTestData(metadata_root);
291 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/picasa"))
292 << message_;
293 }
294 #endif // defined(OS_MACOSX)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698