| OLD | NEW |
| 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_util.h" | 6 #include "base/file_util.h" |
| 7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
| 8 #include "base/files/scoped_temp_dir.h" | 8 #include "base/files/scoped_temp_dir.h" |
| 9 #include "chrome/browser/chrome_notification_types.h" | 9 #include "chrome/browser/chrome_notification_types.h" |
| 10 #include "chrome/browser/chromeos/drive/drive_integration_service.h" | 10 #include "chrome/browser/chromeos/drive/drive_integration_service.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 // extension with fileBrowserPrivate permission (i.e. a file browser | 36 // extension with fileBrowserPrivate permission (i.e. a file browser |
| 37 // extension). | 37 // extension). |
| 38 // - Performing read/write operations from file handler extensions. These | 38 // - Performing read/write operations from file handler extensions. These |
| 39 // extensions need a file browser extension to give them permissions to access | 39 // extensions need a file browser extension to give them permissions to access |
| 40 // files. This also includes file handler extensions in filesystem API. | 40 // files. This also includes file handler extensions in filesystem API. |
| 41 // - Observing directory changes from a file browser extension (using | 41 // - Observing directory changes from a file browser extension (using |
| 42 // fileBrowserPrivate API). | 42 // fileBrowserPrivate API). |
| 43 // - Doing searches on drive file system from file browser extension (using | 43 // - Doing searches on drive file system from file browser extension (using |
| 44 // fileBrowserPrivate API). | 44 // fileBrowserPrivate API). |
| 45 | 45 |
| 46 using drive::DriveIntegrationServiceFactory; |
| 46 using extensions::Extension; | 47 using extensions::Extension; |
| 47 | 48 |
| 48 namespace file_manager { | 49 namespace file_manager { |
| 49 namespace { | 50 namespace { |
| 50 | 51 |
| 51 // Root dirs for file systems expected by the test extensions. | 52 // Root dirs for file systems expected by the test extensions. |
| 52 // NOTE: Root dir for drive file system is set by Chrome's drive implementation, | 53 // NOTE: Root dir for drive file system is set by Chrome's drive implementation, |
| 53 // but the test will have to make sure the mount point is added before | 54 // but the test will have to make sure the mount point is added before |
| 54 // starting a test extension using WaitUntilDriveMountPointIsAdded(). | 55 // starting a test extension using WaitUntilDriveMountPointIsAdded(). |
| 55 const char kLocalMountPointName[] = "local"; | 56 const char kLocalMountPointName[] = "local"; |
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 291 DriveFileSystemExtensionApiTest() : fake_drive_service_(NULL) {} | 292 DriveFileSystemExtensionApiTest() : fake_drive_service_(NULL) {} |
| 292 virtual ~DriveFileSystemExtensionApiTest() {} | 293 virtual ~DriveFileSystemExtensionApiTest() {} |
| 293 | 294 |
| 294 // FileSystemExtensionApiTestBase OVERRIDE. | 295 // FileSystemExtensionApiTestBase OVERRIDE. |
| 295 virtual void InitTestFileSystem() OVERRIDE { | 296 virtual void InitTestFileSystem() OVERRIDE { |
| 296 // Set up cache root to be used by DriveIntegrationService. This has to be | 297 // Set up cache root to be used by DriveIntegrationService. This has to be |
| 297 // done before the browser is created because the service instance is | 298 // done before the browser is created because the service instance is |
| 298 // initialized by EventRouter. | 299 // initialized by EventRouter. |
| 299 ASSERT_TRUE(test_cache_root_.CreateUniqueTempDir()); | 300 ASSERT_TRUE(test_cache_root_.CreateUniqueTempDir()); |
| 300 | 301 |
| 301 drive::DriveIntegrationServiceFactory::SetFactoryForTest( | 302 // This callback will get called during Profile creation. |
| 302 base::Bind( | 303 create_drive_integration_service_ = base::Bind( |
| 303 &DriveFileSystemExtensionApiTest::CreateDriveIntegrationService, | 304 &DriveFileSystemExtensionApiTest::CreateDriveIntegrationService, |
| 304 base::Unretained(this))); | 305 base::Unretained(this)); |
| 306 service_factory_for_test_.reset( |
| 307 new DriveIntegrationServiceFactory::ScopedFactoryForTest( |
| 308 &create_drive_integration_service_)); |
| 305 } | 309 } |
| 306 | 310 |
| 307 // FileSystemExtensionApiTestBase OVERRIDE. | 311 // FileSystemExtensionApiTestBase OVERRIDE. |
| 308 virtual void AddTestMountPoint() OVERRIDE { | 312 virtual void AddTestMountPoint() OVERRIDE { |
| 309 test_util::WaitUntilDriveMountPointIsAdded(browser()->profile()); | 313 test_util::WaitUntilDriveMountPointIsAdded(browser()->profile()); |
| 310 } | 314 } |
| 311 | 315 |
| 312 protected: | 316 protected: |
| 313 // DriveIntegrationService factory function for this test. | 317 // DriveIntegrationService factory function for this test. |
| 314 drive::DriveIntegrationService* CreateDriveIntegrationService( | 318 drive::DriveIntegrationService* CreateDriveIntegrationService( |
| 315 Profile* profile) { | 319 Profile* profile) { |
| 316 fake_drive_service_ = new drive::FakeDriveService; | 320 fake_drive_service_ = new drive::FakeDriveService; |
| 317 fake_drive_service_->LoadResourceListForWapi(kTestRootFeed); | 321 fake_drive_service_->LoadResourceListForWapi(kTestRootFeed); |
| 318 fake_drive_service_->LoadAccountMetadataForWapi( | 322 fake_drive_service_->LoadAccountMetadataForWapi( |
| 319 "gdata/account_metadata.json"); | 323 "gdata/account_metadata.json"); |
| 320 fake_drive_service_->LoadAppListForDriveApi("drive/applist.json"); | 324 fake_drive_service_->LoadAppListForDriveApi("drive/applist.json"); |
| 321 | 325 |
| 322 return new drive::DriveIntegrationService( | 326 return new drive::DriveIntegrationService( |
| 323 profile, NULL, | 327 profile, NULL, |
| 324 fake_drive_service_, test_cache_root_.path(), NULL); | 328 fake_drive_service_, test_cache_root_.path(), NULL); |
| 325 } | 329 } |
| 326 | 330 |
| 327 base::ScopedTempDir test_cache_root_; | 331 base::ScopedTempDir test_cache_root_; |
| 328 drive::FakeDriveService* fake_drive_service_; | 332 drive::FakeDriveService* fake_drive_service_; |
| 333 DriveIntegrationServiceFactory::FactoryCallback |
| 334 create_drive_integration_service_; |
| 335 scoped_ptr<DriveIntegrationServiceFactory::ScopedFactoryForTest> |
| 336 service_factory_for_test_; |
| 329 }; | 337 }; |
| 330 | 338 |
| 331 // | 339 // |
| 332 // LocalFileSystemExtensionApiTests. | 340 // LocalFileSystemExtensionApiTests. |
| 333 // | 341 // |
| 334 | 342 |
| 335 IN_PROC_BROWSER_TEST_F(LocalFileSystemExtensionApiTest, FileSystemOperations) { | 343 IN_PROC_BROWSER_TEST_F(LocalFileSystemExtensionApiTest, FileSystemOperations) { |
| 336 EXPECT_TRUE(RunFileSystemExtensionApiTest( | 344 EXPECT_TRUE(RunFileSystemExtensionApiTest( |
| 337 "file_browser/filesystem_operations_test", | 345 "file_browser/filesystem_operations_test", |
| 338 FILE_PATH_LITERAL("manifest.json"), | 346 FILE_PATH_LITERAL("manifest.json"), |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 427 fake_drive_service_->set_default_max_results(1); | 435 fake_drive_service_->set_default_max_results(1); |
| 428 EXPECT_TRUE(RunFileSystemExtensionApiTest( | 436 EXPECT_TRUE(RunFileSystemExtensionApiTest( |
| 429 "file_browser/handler_test_runner", | 437 "file_browser/handler_test_runner", |
| 430 FILE_PATH_LITERAL("manifest.json"), | 438 FILE_PATH_LITERAL("manifest.json"), |
| 431 "file_browser/app_file_handler", | 439 "file_browser/app_file_handler", |
| 432 FLAGS_USE_FILE_HANDLER)) << message_; | 440 FLAGS_USE_FILE_HANDLER)) << message_; |
| 433 } | 441 } |
| 434 | 442 |
| 435 } // namespace | 443 } // namespace |
| 436 } // namespace file_manager | 444 } // namespace file_manager |
| OLD | NEW |