| OLD | NEW | 
|---|
|  | (Empty) | 
| 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 |  | 
| 3 // found in the LICENSE file. |  | 
| 4 |  | 
| 5 #include "chrome/browser/ui/cocoa/cocoa_profile_test.h" |  | 
| 6 |  | 
| 7 #include "base/run_loop.h" |  | 
| 8 #include "base/strings/utf_string_conversions.h" |  | 
| 9 #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h" |  | 
| 10 #include "chrome/browser/bookmarks/bookmark_model_factory.h" |  | 
| 11 #include "chrome/browser/browser_process.h" |  | 
| 12 #include "chrome/browser/search_engines/template_url_service_factory.h" |  | 
| 13 #include "chrome/browser/ui/browser.h" |  | 
| 14 #include "chrome/browser/ui/browser_commands.h" |  | 
| 15 #include "chrome/browser/ui/browser_tabstrip.h" |  | 
| 16 #include "chrome/browser/ui/tabs/tab_strip_model.h" |  | 
| 17 #include "chrome/test/base/testing_browser_process.h" |  | 
| 18 #include "chrome/test/base/testing_profile.h" |  | 
| 19 #include "components/bookmarks/test/bookmark_test_helpers.h" |  | 
| 20 #include "components/sync_preferences/pref_service_syncable.h" |  | 
| 21 #include "content/public/test/test_browser_thread_bundle.h" |  | 
| 22 |  | 
| 23 CocoaProfileTest::CocoaProfileTest() |  | 
| 24     : profile_manager_(TestingBrowserProcess::GetGlobal()), |  | 
| 25       profile_(NULL), |  | 
| 26       thread_bundle_(new content::TestBrowserThreadBundle) { |  | 
| 27 } |  | 
| 28 |  | 
| 29 CocoaProfileTest::~CocoaProfileTest() { |  | 
| 30   // Delete the testing profile on the UI thread. But first release the |  | 
| 31   // browser, since it may trigger accesses to the profile upon destruction. |  | 
| 32   browser_.reset(); |  | 
| 33 |  | 
| 34   base::RunLoop().RunUntilIdle(); |  | 
| 35 |  | 
| 36   // Some services created on the TestingProfile require deletion on the UI |  | 
| 37   // thread. If the scoper in TestingBrowserProcess, owned by ChromeTestSuite, |  | 
| 38   // were to delete the ProfileManager, the UI thread would at that point no |  | 
| 39   // longer exist. |  | 
| 40   TestingBrowserProcess::GetGlobal()->SetProfileManager(NULL); |  | 
| 41 |  | 
| 42   // Make sure any pending tasks run before we destroy other threads. |  | 
| 43   base::RunLoop().RunUntilIdle(); |  | 
| 44 } |  | 
| 45 |  | 
| 46 void CocoaProfileTest::AddTestingFactories( |  | 
| 47     const TestingProfile::TestingFactories& testing_factories) { |  | 
| 48   for (auto testing_factory : testing_factories) { |  | 
| 49     testing_factories_.push_back(testing_factory); |  | 
| 50   } |  | 
| 51 } |  | 
| 52 |  | 
| 53 void CocoaProfileTest::SetUp() { |  | 
| 54   CocoaTest::SetUp(); |  | 
| 55 |  | 
| 56   ASSERT_TRUE(profile_manager_.SetUp()); |  | 
| 57 |  | 
| 58   profile_ = profile_manager_.CreateTestingProfile( |  | 
| 59       "Person 1", std::unique_ptr<sync_preferences::PrefServiceSyncable>(), |  | 
| 60       base::UTF8ToUTF16("Person 1"), 0, std::string(), testing_factories_); |  | 
| 61   ASSERT_TRUE(profile_); |  | 
| 62 |  | 
| 63   // TODO(shess): These are needed in case someone creates a browser |  | 
| 64   // window off of browser_.  pkasting indicates that other |  | 
| 65   // platforms use a stub |BrowserWindow| and thus don't need to do |  | 
| 66   // this. |  | 
| 67   // http://crbug.com/39725 |  | 
| 68   TemplateURLServiceFactory::GetInstance()->SetTestingFactoryAndUse( |  | 
| 69       profile_, &TemplateURLServiceFactory::BuildInstanceFor); |  | 
| 70   AutocompleteClassifierFactory::GetInstance()->SetTestingFactoryAndUse( |  | 
| 71       profile_, &AutocompleteClassifierFactory::BuildInstanceFor); |  | 
| 72 |  | 
| 73   profile_->CreateBookmarkModel(true); |  | 
| 74   bookmarks::test::WaitForBookmarkModelToLoad( |  | 
| 75       BookmarkModelFactory::GetForBrowserContext(profile_)); |  | 
| 76 |  | 
| 77   browser_.reset(CreateBrowser()); |  | 
| 78   ASSERT_TRUE(browser_.get()); |  | 
| 79 } |  | 
| 80 |  | 
| 81 void CocoaProfileTest::TearDown() { |  | 
| 82   if (browser_.get() && browser_->window()) |  | 
| 83     CloseBrowserWindow(); |  | 
| 84 |  | 
| 85   CocoaTest::TearDown(); |  | 
| 86 } |  | 
| 87 |  | 
| 88 void CocoaProfileTest::CloseBrowserWindow() { |  | 
| 89   // Check to make sure a window was actually created. |  | 
| 90   DCHECK(browser_->window()); |  | 
| 91   browser_->tab_strip_model()->CloseAllTabs(); |  | 
| 92   chrome::CloseWindow(browser_.get()); |  | 
| 93   // |browser_| will be deleted by its BrowserWindowController. |  | 
| 94   ignore_result(browser_.release()); |  | 
| 95 } |  | 
| 96 |  | 
| 97 Browser* CocoaProfileTest::CreateBrowser() { |  | 
| 98   return new Browser(Browser::CreateParams(profile())); |  | 
| 99 } |  | 
| OLD | NEW | 
|---|