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

Side by Side Diff: chrome/browser/chromeos/file_manager/file_manager_browsertest.cc

Issue 118043003: Fix app_shell shutdown crash due to BrowserContextKeyedServices (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleanup (shutdown_crash) Created 6 years, 11 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 // Browser test for basic Chrome OS file manager functionality: 5 // Browser test for basic Chrome OS file manager functionality:
6 // - The file list is updated when a file is added externally to the Downloads 6 // - The file list is updated when a file is added externally to the Downloads
7 // folder. 7 // folder.
8 // - Selecting a file and copy-pasting it with the keyboard copies the file. 8 // - Selecting a file and copy-pasting it with the keyboard copies the file.
9 // - Selecting a file and pressing delete deletes it. 9 // - Selecting a file and pressing delete deletes it.
10 10
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 DriveTestVolume() : fake_drive_service_(NULL), 268 DriveTestVolume() : fake_drive_service_(NULL),
269 integration_service_(NULL) { 269 integration_service_(NULL) {
270 } 270 }
271 271
272 // Sends request to add this volume to the file system as Google drive. 272 // Sends request to add this volume to the file system as Google drive.
273 // This method must be calld at SetUp method of FileManagerBrowserTestBase. 273 // This method must be calld at SetUp method of FileManagerBrowserTestBase.
274 // Returns true on success. 274 // Returns true on success.
275 bool SetUp() { 275 bool SetUp() {
276 if (!test_cache_root_.CreateUniqueTempDir()) 276 if (!test_cache_root_.CreateUniqueTempDir())
277 return false; 277 return false;
278 create_drive_integration_service_ =
279 base::Bind(&DriveTestVolume::CreateDriveIntegrationService,
280 base::Unretained(this));
278 drive::DriveIntegrationServiceFactory::SetFactoryForTest( 281 drive::DriveIntegrationServiceFactory::SetFactoryForTest(
279 base::Bind(&DriveTestVolume::CreateDriveIntegrationService, 282 &create_drive_integration_service_);
280 base::Unretained(this)));
281 return true; 283 return true;
282 } 284 }
283 285
286 void TearDown() {
287 drive::DriveIntegrationServiceFactory::SetFactoryForTest(NULL);
288 }
289
284 void CreateEntry(const TestEntryInfo& entry) { 290 void CreateEntry(const TestEntryInfo& entry) {
285 const base::FilePath path = 291 const base::FilePath path =
286 base::FilePath::FromUTF8Unsafe(entry.target_path); 292 base::FilePath::FromUTF8Unsafe(entry.target_path);
287 const std::string target_name = path.BaseName().AsUTF8Unsafe(); 293 const std::string target_name = path.BaseName().AsUTF8Unsafe();
288 294
289 // Obtain the parent entry. 295 // Obtain the parent entry.
290 drive::FileError error = drive::FILE_ERROR_OK; 296 drive::FileError error = drive::FILE_ERROR_OK;
291 scoped_ptr<drive::ResourceEntry> parent_entry(new drive::ResourceEntry); 297 scoped_ptr<drive::ResourceEntry> parent_entry(new drive::ResourceEntry);
292 integration_service_->file_system()->GetResourceEntry( 298 integration_service_->file_system()->GetResourceEntry(
293 drive::util::GetDriveMyDriveRootPath().Append(path).DirName(), 299 drive::util::GetDriveMyDriveRootPath().Append(path).DirName(),
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 fake_drive_service_->LoadAppListForDriveApi("drive/applist.json"); 413 fake_drive_service_->LoadAppListForDriveApi("drive/applist.json");
408 integration_service_ = new drive::DriveIntegrationService( 414 integration_service_ = new drive::DriveIntegrationService(
409 profile, NULL, fake_drive_service_, test_cache_root_.path(), NULL); 415 profile, NULL, fake_drive_service_, test_cache_root_.path(), NULL);
410 return integration_service_; 416 return integration_service_;
411 } 417 }
412 418
413 private: 419 private:
414 base::ScopedTempDir test_cache_root_; 420 base::ScopedTempDir test_cache_root_;
415 drive::FakeDriveService* fake_drive_service_; 421 drive::FakeDriveService* fake_drive_service_;
416 drive::DriveIntegrationService* integration_service_; 422 drive::DriveIntegrationService* integration_service_;
423 drive::DriveIntegrationServiceFactory::FactoryCallback
424 create_drive_integration_service_;
417 }; 425 };
418 426
419 // Listener to obtain the test relative messages synchronously. 427 // Listener to obtain the test relative messages synchronously.
420 class FileManagerTestListener : public content::NotificationObserver { 428 class FileManagerTestListener : public content::NotificationObserver {
421 public: 429 public:
422 struct Message { 430 struct Message {
423 int type; 431 int type;
424 std::string message; 432 std::string message;
425 scoped_refptr<extensions::TestSendMessageFunction> function; 433 scoped_refptr<extensions::TestSendMessageFunction> function;
426 }; 434 };
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 489
482 virtual void SetUp() OVERRIDE { 490 virtual void SetUp() OVERRIDE {
483 // TODO(danakj): The GPU Video Decoder needs real GL bindings. 491 // TODO(danakj): The GPU Video Decoder needs real GL bindings.
484 // crbug.com/269087 492 // crbug.com/269087
485 UseRealGLBindings(); 493 UseRealGLBindings();
486 494
487 ExtensionApiTest::SetUp(); 495 ExtensionApiTest::SetUp();
488 } 496 }
489 497
490 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE; 498 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE;
499 virtual void TearDownInProcessBrowserTestFixture() OVERRIDE;
491 500
492 virtual void SetUpOnMainThread() OVERRIDE; 501 virtual void SetUpOnMainThread() OVERRIDE;
493 502
494 // Adds an incognito and guest-mode flags for tests in the guest mode. 503 // Adds an incognito and guest-mode flags for tests in the guest mode.
495 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE; 504 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE;
496 505
497 // Loads our testing extension and sends it a string identifying the current 506 // Loads our testing extension and sends it a string identifying the current
498 // test. 507 // test.
499 void StartTest(); 508 void StartTest();
500 509
501 const scoped_ptr<LocalTestVolume> local_volume_; 510 const scoped_ptr<LocalTestVolume> local_volume_;
502 const scoped_ptr<DriveTestVolume> drive_volume_; 511 const scoped_ptr<DriveTestVolume> drive_volume_;
503 }; 512 };
504 513
505 void FileManagerBrowserTest::SetUpInProcessBrowserTestFixture() { 514 void FileManagerBrowserTest::SetUpInProcessBrowserTestFixture() {
506 ExtensionApiTest::SetUpInProcessBrowserTestFixture(); 515 ExtensionApiTest::SetUpInProcessBrowserTestFixture();
507 extensions::ComponentLoader::EnableBackgroundExtensionsForTesting(); 516 extensions::ComponentLoader::EnableBackgroundExtensionsForTesting();
508 if (drive_volume_) 517 if (drive_volume_)
509 ASSERT_TRUE(drive_volume_->SetUp()); 518 ASSERT_TRUE(drive_volume_->SetUp());
510 } 519 }
511 520
521 void FileManagerBrowserTest::TearDownInProcessBrowserTestFixture() {
522 if (drive_volume_)
523 drive_volume_->TearDown();
524 ExtensionApiTest::TearDownInProcessBrowserTestFixture();
525 }
526
512 void FileManagerBrowserTest::SetUpOnMainThread() { 527 void FileManagerBrowserTest::SetUpOnMainThread() {
513 ExtensionApiTest::SetUpOnMainThread(); 528 ExtensionApiTest::SetUpOnMainThread();
514 ASSERT_TRUE(local_volume_->Mount(browser()->profile())); 529 ASSERT_TRUE(local_volume_->Mount(browser()->profile()));
515 530
516 if (drive_volume_) { 531 if (drive_volume_) {
517 // Install the web server to serve the mocked share dialog. 532 // Install the web server to serve the mocked share dialog.
518 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); 533 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
519 const GURL share_url_base(embedded_test_server()->GetURL( 534 const GURL share_url_base(embedded_test_server()->GetURL(
520 "/chromeos/file_manager/share_dialog_mock/index.html")); 535 "/chromeos/file_manager/share_dialog_mock/index.html"));
521 drive_volume_->ConfigureShareUrlBase(share_url_base); 536 drive_volume_->ConfigureShareUrlBase(share_url_base);
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
741 ::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "searchBoxFocus"))); 756 ::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "searchBoxFocus")));
742 757
743 INSTANTIATE_TEST_CASE_P( 758 INSTANTIATE_TEST_CASE_P(
744 Thumbnails, 759 Thumbnails,
745 FileManagerBrowserTest, 760 FileManagerBrowserTest,
746 ::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "thumbnailsDownloads"), 761 ::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "thumbnailsDownloads"),
747 TestParameter(IN_GUEST_MODE, "thumbnailsDownloads"))); 762 TestParameter(IN_GUEST_MODE, "thumbnailsDownloads")));
748 763
749 } // namespace 764 } // namespace
750 } // namespace file_manager 765 } // namespace file_manager
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698