| 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/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
| 7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
| 8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "base/test/test_timeouts.h" | 10 #include "base/test/test_timeouts.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 class WaitForLoadObserver : public TabRestoreServiceObserver { | 41 class WaitForLoadObserver : public TabRestoreServiceObserver { |
| 42 public: | 42 public: |
| 43 explicit WaitForLoadObserver(Browser* browser) | 43 explicit WaitForLoadObserver(Browser* browser) |
| 44 : tab_restore_service_( | 44 : tab_restore_service_( |
| 45 TabRestoreServiceFactory::GetForProfile(browser->profile())), | 45 TabRestoreServiceFactory::GetForProfile(browser->profile())), |
| 46 do_wait_(!tab_restore_service_->IsLoaded()) { | 46 do_wait_(!tab_restore_service_->IsLoaded()) { |
| 47 if (do_wait_) | 47 if (do_wait_) |
| 48 tab_restore_service_->AddObserver(this); | 48 tab_restore_service_->AddObserver(this); |
| 49 } | 49 } |
| 50 | 50 |
| 51 virtual ~WaitForLoadObserver() { | 51 ~WaitForLoadObserver() override { |
| 52 if (do_wait_) | 52 if (do_wait_) |
| 53 tab_restore_service_->RemoveObserver(this); | 53 tab_restore_service_->RemoveObserver(this); |
| 54 } | 54 } |
| 55 | 55 |
| 56 void Wait() { | 56 void Wait() { |
| 57 if (do_wait_) | 57 if (do_wait_) |
| 58 run_loop_.Run(); | 58 run_loop_.Run(); |
| 59 } | 59 } |
| 60 | 60 |
| 61 private: | 61 private: |
| 62 // Overridden from TabRestoreServiceObserver: | 62 // Overridden from TabRestoreServiceObserver: |
| 63 virtual void TabRestoreServiceChanged(TabRestoreService* service) override {} | 63 void TabRestoreServiceChanged(TabRestoreService* service) override {} |
| 64 virtual void TabRestoreServiceDestroyed(TabRestoreService* service) override { | 64 void TabRestoreServiceDestroyed(TabRestoreService* service) override {} |
| 65 } | 65 void TabRestoreServiceLoaded(TabRestoreService* service) override { |
| 66 virtual void TabRestoreServiceLoaded(TabRestoreService* service) override { | |
| 67 DCHECK(do_wait_); | 66 DCHECK(do_wait_); |
| 68 run_loop_.Quit(); | 67 run_loop_.Quit(); |
| 69 } | 68 } |
| 70 | 69 |
| 71 TabRestoreService* tab_restore_service_; | 70 TabRestoreService* tab_restore_service_; |
| 72 const bool do_wait_; | 71 const bool do_wait_; |
| 73 base::RunLoop run_loop_; | 72 base::RunLoop run_loop_; |
| 74 | 73 |
| 75 DISALLOW_COPY_AND_ASSIGN(WaitForLoadObserver); | 74 DISALLOW_COPY_AND_ASSIGN(WaitForLoadObserver); |
| 76 }; | 75 }; |
| 77 | 76 |
| 78 class TabRestoreTest : public InProcessBrowserTest { | 77 class TabRestoreTest : public InProcessBrowserTest { |
| 79 public: | 78 public: |
| 80 TabRestoreTest() : active_browser_list_(NULL) { | 79 TabRestoreTest() : active_browser_list_(NULL) { |
| 81 url1_ = ui_test_utils::GetTestUrl( | 80 url1_ = ui_test_utils::GetTestUrl( |
| 82 base::FilePath().AppendASCII("session_history"), | 81 base::FilePath().AppendASCII("session_history"), |
| 83 base::FilePath().AppendASCII("bot1.html")); | 82 base::FilePath().AppendASCII("bot1.html")); |
| 84 url2_ = ui_test_utils::GetTestUrl( | 83 url2_ = ui_test_utils::GetTestUrl( |
| 85 base::FilePath().AppendASCII("session_history"), | 84 base::FilePath().AppendASCII("session_history"), |
| 86 base::FilePath().AppendASCII("bot2.html")); | 85 base::FilePath().AppendASCII("bot2.html")); |
| 87 } | 86 } |
| 88 | 87 |
| 89 protected: | 88 protected: |
| 90 virtual void SetUpOnMainThread() override { | 89 void SetUpOnMainThread() override { |
| 91 active_browser_list_ = BrowserList::GetInstance(chrome::GetActiveDesktop()); | 90 active_browser_list_ = BrowserList::GetInstance(chrome::GetActiveDesktop()); |
| 92 InProcessBrowserTest::SetUpOnMainThread(); | 91 InProcessBrowserTest::SetUpOnMainThread(); |
| 93 } | 92 } |
| 94 | 93 |
| 95 Browser* GetBrowser(int index) { | 94 Browser* GetBrowser(int index) { |
| 96 CHECK(static_cast<int>(active_browser_list_->size()) > index); | 95 CHECK(static_cast<int>(active_browser_list_->size()) > index); |
| 97 return active_browser_list_->get(index); | 96 return active_browser_list_->get(index); |
| 98 } | 97 } |
| 99 | 98 |
| 100 // Adds tabs to the given browser, all navigated to url1_. Returns | 99 // Adds tabs to the given browser, all navigated to url1_. Returns |
| (...skipping 534 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 635 while (browser()->tab_strip_model()->count()) | 634 while (browser()->tab_strip_model()->count()) |
| 636 CloseTab(0); | 635 CloseTab(0); |
| 637 } | 636 } |
| 638 | 637 |
| 639 // Verifies restoring a tab works on startup. | 638 // Verifies restoring a tab works on startup. |
| 640 IN_PROC_BROWSER_TEST_F(TabRestoreTest, RestoreOnStartup) { | 639 IN_PROC_BROWSER_TEST_F(TabRestoreTest, RestoreOnStartup) { |
| 641 ASSERT_NO_FATAL_FAILURE(RestoreTab(0, 1)); | 640 ASSERT_NO_FATAL_FAILURE(RestoreTab(0, 1)); |
| 642 EXPECT_EQ(url1_, | 641 EXPECT_EQ(url1_, |
| 643 browser()->tab_strip_model()->GetWebContentsAt(1)->GetURL()); | 642 browser()->tab_strip_model()->GetWebContentsAt(1)->GetURL()); |
| 644 } | 643 } |
| OLD | NEW |