blob: 7ee1071ebced564e2a252ee70d45b8abef4bf3a6 [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/test/base/browser_with_test_window_test.h"
using BrowserFinderTest = BrowserWithTestWindowTest;
TEST_F(BrowserFinderTest, ScheduledForDeletion) {
EXPECT_EQ(1u, chrome::GetTotalBrowserCount());
EXPECT_EQ(browser(), chrome::FindBrowserWithProfile(profile()));
// Add a tab as the tabstrip starts empty and CloseAllTabs() effectively
// does nothing if there are no tabs (meaning Browser deletion isn't
// scheduled).
AddTab(browser(), GURL("http://foo.chromium.org"));
std::unique_ptr<Browser> browser = release_browser();
browser->tab_strip_model()->CloseAllTabs();
// This is normally invoked when the tab strip is empty (specifically from
// BrowserView::OnWindowCloseRequested). Pending delete browsers are not
// included in browser counts.
browser->OnWindowClosing();
EXPECT_TRUE(browser->is_delete_scheduled());
EXPECT_EQ(0u, chrome::GetTotalBrowserCount());
EXPECT_EQ(nullptr, chrome::FindBrowserWithProfile(profile()));
}