| Index: ios/shared/chrome/browser/ui/browser_list/browser_list_unittest.mm
|
| diff --git a/ios/shared/chrome/browser/ui/browser_list/browser_list_unittest.mm b/ios/shared/chrome/browser/ui/browser_list/browser_list_unittest.mm
|
| index 5b53de6ccdf24d1f2dcc186357975226eff991f0..ece8ca1eac249f46248774fbdc76aa48291dbd08 100644
|
| --- a/ios/shared/chrome/browser/ui/browser_list/browser_list_unittest.mm
|
| +++ b/ios/shared/chrome/browser/ui/browser_list/browser_list_unittest.mm
|
| @@ -7,7 +7,9 @@
|
| #include <memory>
|
|
|
| #include "base/macros.h"
|
| +#include "base/scoped_observer.h"
|
| #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h"
|
| +#import "ios/shared/chrome/browser/ui/browser_list/browser_list_observer.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "testing/platform_test.h"
|
|
|
| @@ -15,6 +17,40 @@
|
| #error "This file requires ARC support."
|
| #endif
|
|
|
| +namespace {
|
| +
|
| +class BrowserListTestObserver : public BrowserListObserver {
|
| + public:
|
| + BrowserListTestObserver() = default;
|
| +
|
| + // Reset statistics whether events has been called.
|
| + void ResetStatistics() {
|
| + browser_created_called_ = false;
|
| + browser_removed_called_ = false;
|
| + }
|
| +
|
| + // Returns whether OnBrowserCreated() was invoked.
|
| + bool browser_created_called() const { return browser_created_called_; }
|
| +
|
| + // Returns whether OnBrowserRemoved() was invoked.
|
| + bool browser_removed_called() const { return browser_removed_called_; }
|
| +
|
| + // BrowserListObserver implementation.
|
| + void OnBrowserCreated(BrowserList* browser_list, Browser* browser) override {
|
| + browser_created_called_ = true;
|
| + }
|
| +
|
| + void OnBrowserRemoved(BrowserList* browser_list, Browser* browser) override {
|
| + browser_removed_called_ = true;
|
| + }
|
| +
|
| + private:
|
| + bool browser_created_called_ = false;
|
| + bool browser_removed_called_ = false;
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| class BrowserListTest : public PlatformTest {
|
| public:
|
| BrowserListTest() {
|
| @@ -91,3 +127,27 @@ TEST_F(BrowserListTest, GetIndexOfBrowser) {
|
| EXPECT_EQ(0, browser_list->GetIndexOfBrowser(browser_1));
|
| EXPECT_EQ(browser_1, browser_list->GetBrowserAtIndex(0));
|
| }
|
| +
|
| +TEST_F(BrowserListTest, Observer) {
|
| + BrowserList* browser_list = BrowserList::FromBrowserState(browser_state());
|
| +
|
| + BrowserListTestObserver observer;
|
| + ScopedObserver<BrowserList, BrowserListObserver> scoped_observer(&observer);
|
| + scoped_observer.Add(browser_list);
|
| +
|
| + observer.ResetStatistics();
|
| + ASSERT_FALSE(observer.browser_created_called());
|
| + ASSERT_FALSE(observer.browser_removed_called());
|
| +
|
| + browser_list->CreateNewBrowser();
|
| + EXPECT_TRUE(observer.browser_created_called());
|
| + EXPECT_FALSE(observer.browser_removed_called());
|
| +
|
| + observer.ResetStatistics();
|
| + ASSERT_FALSE(observer.browser_created_called());
|
| + ASSERT_FALSE(observer.browser_removed_called());
|
| +
|
| + browser_list->CloseBrowserAtIndex(0);
|
| + EXPECT_FALSE(observer.browser_created_called());
|
| + EXPECT_TRUE(observer.browser_removed_called());
|
| +}
|
|
|