summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc
diff options
context:
space:
mode:
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.cc39
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();