diff options
Diffstat (limited to 'chromium/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc')
-rw-r--r-- | chromium/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc | 39 |
1 files changed, 16 insertions, 23 deletions
diff --git a/chromium/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc b/chromium/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc index 414887222cd..8be2cd77dc9 100644 --- a/chromium/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc +++ b/chromium/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc @@ -30,6 +30,7 @@ #include "extensions/common/switches.h" #include "extensions/test/extension_test_message_listener.h" #include "extensions/test/result_catcher.h" +#include "testing/gmock/include/gmock/gmock.h" namespace extensions { @@ -417,33 +418,23 @@ IN_PROC_BROWSER_TEST_F(TabCaptureApiTest, MAYBE_Constraints) { #endif // Tests that the tab indicator (in the tab strip) is shown during tab capture. IN_PROC_BROWSER_TEST_F(TabCaptureApiTest, MAYBE_TabIndicator) { - ASSERT_EQ(TabAlertState::NONE, - chrome::GetTabAlertStateForContents( - browser()->tab_strip_model()->GetActiveWebContents())); + content::WebContents* const contents = + browser()->tab_strip_model()->GetActiveWebContents(); + ASSERT_THAT(chrome::GetTabAlertStatesForContents(contents), + ::testing::IsEmpty()); - // A TabStripModelObserver that quits the MessageLoop whenever the UI's model - // is sent an event that changes the indicator status. + // A TabStripModelObserver that quits the MessageLoop whenever the + // UI's model is sent an event that might change the indicator status. class IndicatorChangeObserver : public TabStripModelObserver { public: - explicit IndicatorChangeObserver(Browser* browser) - : browser_(browser), - last_alert_state_(chrome::GetTabAlertStateForContents( - browser->tab_strip_model()->GetActiveWebContents())) { + explicit IndicatorChangeObserver(Browser* browser) : browser_(browser) { browser_->tab_strip_model()->AddObserver(this); } - TabAlertState last_alert_state() const { return last_alert_state_; } - void TabChangedAt(content::WebContents* contents, int index, TabChangeType change_type) override { - const TabAlertState alert_state = - chrome::GetTabAlertStateForContents(contents); - if (alert_state != last_alert_state_) { - last_alert_state_ = alert_state; - if (on_tab_changed_) - std::move(on_tab_changed_).Run(); - } + std::move(on_tab_changed_).Run(); } void WaitForTabChange() { @@ -454,12 +445,11 @@ IN_PROC_BROWSER_TEST_F(TabCaptureApiTest, MAYBE_TabIndicator) { private: Browser* const browser_; - TabAlertState last_alert_state_; base::OnceClosure on_tab_changed_; }; - IndicatorChangeObserver observer(browser()); - ASSERT_EQ(TabAlertState::NONE, observer.last_alert_state()); + ASSERT_THAT(chrome::GetTabAlertStatesForContents(contents), + ::testing::IsEmpty()); // Run an extension test that just turns on tab capture, which should cause // the indicator to turn on. @@ -469,10 +459,13 @@ IN_PROC_BROWSER_TEST_F(TabCaptureApiTest, MAYBE_TabIndicator) { // Run the browser until the indicator turns on. const base::TimeTicks start_time = base::TimeTicks::Now(); - while (observer.last_alert_state() != TabAlertState::TAB_CAPTURING) { + IndicatorChangeObserver observer(browser()); + while (!base::Contains(chrome::GetTabAlertStatesForContents(contents), + TabAlertState::TAB_CAPTURING)) { if (base::TimeTicks::Now() - start_time > TestTimeouts::action_max_timeout()) { - EXPECT_EQ(TabAlertState::TAB_CAPTURING, observer.last_alert_state()); + EXPECT_THAT(chrome::GetTabAlertStatesForContents(contents), + ::testing::Contains(TabAlertState::TAB_CAPTURING)); return; } observer.WaitForTabChange(); |