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

Side by Side Diff: chrome/browser/chromeos/extensions/external_filesystem_apitest.cc

Issue 10805034: Fix flakiness in RemoteFileSystemExtensionApiTests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 5 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
« no previous file with comments | « no previous file | chrome/browser/chromeos/gdata/gdata_system_service.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/file_path.h" 6 #include "base/file_path.h"
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/json/json_file_value_serializer.h" 8 #include "base/json/json_file_value_serializer.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/message_loop_proxy.h" 10 #include "base/message_loop_proxy.h"
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 private: 186 private:
187 FilePath test_mount_point_; 187 FilePath test_mount_point_;
188 }; 188 };
189 189
190 class RemoteFileSystemExtensionApiTest : public ExtensionApiTest { 190 class RemoteFileSystemExtensionApiTest : public ExtensionApiTest {
191 public: 191 public:
192 RemoteFileSystemExtensionApiTest() {} 192 RemoteFileSystemExtensionApiTest() {}
193 193
194 virtual ~RemoteFileSystemExtensionApiTest() {} 194 virtual ~RemoteFileSystemExtensionApiTest() {}
195 195
196 // Sets up GDataFileSystem that will be used in the test. 196 virtual void SetUp() OVERRIDE {
197 // NOTE: Remote mount point should get added to mount point provider when 197 // Set up cache root and documents service to be used when creating gdata
198 // getLocalFileSystem is called from filebrowser_component extension. 198 // system service. This has to be done early on (before the browser is
199 virtual void SetupGDataFileSystemForTest() { 199 // created) because the system service instance is initialized very early
200 // |mock_documents_service_| is owned by |system_service|. 200 // by FileBrowserEventRouter.
201 FilePath tmp_dir_path;
202 PathService::Get(base::DIR_TEMP, &tmp_dir_path);
203 ASSERT_TRUE(test_cache_root_.CreateUniqueTempDirUnderPath(tmp_dir_path));
204 gdata::GDataSystemServiceFactory::set_cache_root_for_test(
205 test_cache_root_.path().value());
206
201 mock_documents_service_ = new gdata::MockDocumentsService(); 207 mock_documents_service_ = new gdata::MockDocumentsService();
208
202 operation_registry_.reset(new gdata::GDataOperationRegistry()); 209 operation_registry_.reset(new gdata::GDataOperationRegistry());
203 gdata::GDataSystemService* system_service = 210 // FileBrowserEventRouter will add and remove itself from operation registry
204 gdata::GDataSystemServiceFactory::GetInstance()-> 211 // observer list.
205 GetWithCustomDocumentsServiceForTesting( 212 EXPECT_CALL(*mock_documents_service_, operation_registry()).
206 browser()->profile(), mock_documents_service_); 213 WillRepeatedly(Return(operation_registry_.get()));
207 EXPECT_TRUE(system_service); 214
215 // |mock_documents_service_| will eventually get owned by a system service.
216 gdata::GDataSystemServiceFactory::set_documents_service_for_test(
217 mock_documents_service_);
218
219 ExtensionApiTest::SetUp();
220 }
221
222 virtual void TearDown() OVERRIDE {
223 // Let's make sure we don't leak documents service.
224 gdata::GDataSystemServiceFactory::set_documents_service_for_test(NULL);
225 gdata::GDataSystemServiceFactory::set_cache_root_for_test(std::string());
226 ExtensionApiTest::TearDown();
208 } 227 }
209 228
210 protected: 229 protected:
230 ScopedTempDir test_cache_root_;
211 gdata::MockDocumentsService* mock_documents_service_; 231 gdata::MockDocumentsService* mock_documents_service_;
212 scoped_ptr<gdata::GDataOperationRegistry> operation_registry_; 232 scoped_ptr<gdata::GDataOperationRegistry> operation_registry_;
213 }; 233 };
214 234
215 IN_PROC_BROWSER_TEST_F(FileSystemExtensionApiTest, LocalFileSystem) { 235 IN_PROC_BROWSER_TEST_F(FileSystemExtensionApiTest, LocalFileSystem) {
216 AddTmpMountPoint(); 236 AddTmpMountPoint();
217 ASSERT_TRUE(RunComponentExtensionTest("local_filesystem")) << message_; 237 ASSERT_TRUE(RunComponentExtensionTest("local_filesystem")) << message_;
218 } 238 }
219 239
220 IN_PROC_BROWSER_TEST_F(FileSystemExtensionApiTest, FileBrowserTest) { 240 IN_PROC_BROWSER_TEST_F(FileSystemExtensionApiTest, FileBrowserTest) {
(...skipping 30 matching lines...) Expand all
251 FileBrowserTestWriteComponent) { 271 FileBrowserTestWriteComponent) {
252 AddTmpMountPoint(); 272 AddTmpMountPoint();
253 ASSERT_TRUE(RunComponentExtensionTest("filesystem_handler_write")) 273 ASSERT_TRUE(RunComponentExtensionTest("filesystem_handler_write"))
254 << message_; 274 << message_;
255 ASSERT_TRUE(RunExtensionSubtest( 275 ASSERT_TRUE(RunExtensionSubtest(
256 "filebrowser_component", "write.html", kComponentFlags)) << message_; 276 "filebrowser_component", "write.html", kComponentFlags)) << message_;
257 } 277 }
258 278
259 IN_PROC_BROWSER_TEST_F(RemoteFileSystemExtensionApiTest, 279 IN_PROC_BROWSER_TEST_F(RemoteFileSystemExtensionApiTest,
260 RemoteMountPoint) { 280 RemoteMountPoint) {
261 SetupGDataFileSystemForTest();
262
263 EXPECT_CALL(*mock_documents_service_, GetAccountMetadata(_)).Times(1); 281 EXPECT_CALL(*mock_documents_service_, GetAccountMetadata(_)).Times(1);
264 282
265 // First, file browser will try to create new directory. 283 // First, file browser will try to create new directory.
266 scoped_ptr<base::Value> dir_value(LoadJSONFile(kTestDirectory)); 284 scoped_ptr<base::Value> dir_value(LoadJSONFile(kTestDirectory));
267 EXPECT_CALL(*mock_documents_service_, 285 EXPECT_CALL(*mock_documents_service_,
268 CreateDirectory(_, _, _)) 286 CreateDirectory(_, _, _))
269 .WillOnce(MockCreateDirectoryCallback(gdata::HTTP_SUCCESS, &dir_value)); 287 .WillOnce(MockCreateDirectoryCallback(gdata::HTTP_SUCCESS, &dir_value));
270 288
271 // Then the test will try to read an existing file file. 289 // Then the test will try to read an existing file file.
272 // Remote filesystem should first request root feed from gdata server. 290 // Remote filesystem should first request root feed from gdata server.
(...skipping 19 matching lines...) Expand all
292 310
293 // We expect to download url defined in document entry returned by 311 // We expect to download url defined in document entry returned by
294 // GetDocumentEntry mock implementation. 312 // GetDocumentEntry mock implementation.
295 EXPECT_CALL(*mock_documents_service_, 313 EXPECT_CALL(*mock_documents_service_,
296 DownloadFile(_, _, GURL("https://file_content_url_changed"), 314 DownloadFile(_, _, GURL("https://file_content_url_changed"),
297 _, _)) 315 _, _))
298 .WillOnce(MockDownloadFileCallback(gdata::HTTP_SUCCESS)); 316 .WillOnce(MockDownloadFileCallback(gdata::HTTP_SUCCESS));
299 317
300 // On exit, all operations in progress should be cancelled. 318 // On exit, all operations in progress should be cancelled.
301 EXPECT_CALL(*mock_documents_service_, CancelAll()); 319 EXPECT_CALL(*mock_documents_service_, CancelAll());
302 // This one is called on exit, but we don't care much about it, as long as it
303 // retunrs something valid (i.e. not NULL).
304 EXPECT_CALL(*mock_documents_service_, operation_registry()).
305 WillRepeatedly(Return(operation_registry_.get()));
306 320
307 // All is set... RUN THE TEST. 321 // All is set... RUN THE TEST.
308 EXPECT_TRUE(RunExtensionTest("filesystem_handler")) << message_; 322 EXPECT_TRUE(RunExtensionTest("filesystem_handler")) << message_;
309 EXPECT_TRUE(RunExtensionSubtest("filebrowser_component", "remote.html", 323 EXPECT_TRUE(RunExtensionSubtest("filebrowser_component", "remote.html",
310 kComponentFlags)) << message_; 324 kComponentFlags)) << message_;
311 } 325 }
312 326
313 // This test fails under AddressSanitizer, see http://crbug.com/136169. 327 // This test fails under AddressSanitizer, see http://crbug.com/136169.
314 #if defined(ADDRESS_SANITIZER) 328 #if defined(ADDRESS_SANITIZER)
315 #define MAYBE_ContentSearch DISABLED_ContentSearch 329 #define MAYBE_ContentSearch DISABLED_ContentSearch
316 #else 330 #else
317 #define MAYBE_ContentSearch ContentSearch 331 #define MAYBE_ContentSearch ContentSearch
318 #endif 332 #endif
319 IN_PROC_BROWSER_TEST_F(RemoteFileSystemExtensionApiTest, 333 IN_PROC_BROWSER_TEST_F(RemoteFileSystemExtensionApiTest,
320 MAYBE_ContentSearch) { 334 MAYBE_ContentSearch) {
321 SetupGDataFileSystemForTest();
322
323 EXPECT_CALL(*mock_documents_service_, GetAccountMetadata(_)).Times(1); 335 EXPECT_CALL(*mock_documents_service_, GetAccountMetadata(_)).Times(1);
324 336
325 // First, test will get drive root directory, to init file system. 337 // First, test will get drive root directory, to init file system.
326 scoped_ptr<base::Value> documents_value(LoadJSONFile(kTestRootFeed)); 338 scoped_ptr<base::Value> documents_value(LoadJSONFile(kTestRootFeed));
327 EXPECT_CALL(*mock_documents_service_, 339 EXPECT_CALL(*mock_documents_service_,
328 GetDocuments(_, _, "", _, _)) 340 GetDocuments(_, _, "", _, _))
329 .WillOnce(MockGetDocumentsCallback(gdata::HTTP_SUCCESS, 341 .WillOnce(MockGetDocumentsCallback(gdata::HTTP_SUCCESS,
330 &documents_value)); 342 &documents_value));
331 343
332 // We return the whole test file system in serch results. 344 // We return the whole test file system in serch results.
(...skipping 13 matching lines...) Expand all
346 358
347 // We expect to download url defined in document entry returned by 359 // We expect to download url defined in document entry returned by
348 // GetDocumentEntry mock implementation. 360 // GetDocumentEntry mock implementation.
349 EXPECT_CALL(*mock_documents_service_, 361 EXPECT_CALL(*mock_documents_service_,
350 DownloadFile(_, _, GURL("https://file_content_url_changed"), 362 DownloadFile(_, _, GURL("https://file_content_url_changed"),
351 _, _)) 363 _, _))
352 .WillOnce(MockDownloadFileCallback(gdata::HTTP_SUCCESS)); 364 .WillOnce(MockDownloadFileCallback(gdata::HTTP_SUCCESS));
353 365
354 // On exit, all operations in progress should be cancelled. 366 // On exit, all operations in progress should be cancelled.
355 EXPECT_CALL(*mock_documents_service_, CancelAll()); 367 EXPECT_CALL(*mock_documents_service_, CancelAll());
356 // This one is called on exit, but we don't care much about it, as long as it
357 // retunrs something valid (i.e. not NULL).
358 EXPECT_CALL(*mock_documents_service_, operation_registry()).
359 WillRepeatedly(Return(operation_registry_.get()));
360 368
361 // All is set... RUN THE TEST. 369 // All is set... RUN THE TEST.
362 EXPECT_TRUE(RunExtensionSubtest("filebrowser_component", "remote_search.html", 370 EXPECT_TRUE(RunExtensionSubtest("filebrowser_component", "remote_search.html",
363 kComponentFlags)) << message_; 371 kComponentFlags)) << message_;
364 } 372 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/chromeos/gdata/gdata_system_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698