Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4281)

Unified Diff: chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc

Issue 1198313003: Fix the browser match rules. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address msw@'s comments. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc
diff --git a/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc b/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc
index bcfdd4fd0db929d3f96e1165b6141a43fb8c77a0..f41b302d965a4c874308a12d3a1480328d75a9ed 100644
--- a/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc
+++ b/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc
@@ -29,51 +29,6 @@ typedef ash::test::AshTestBase WindowSizerAshTest;
namespace {
-// A browser window proxy which is able to associate an aura native window with
-// it.
-class TestBrowserWindowAura : public TestBrowserWindow {
- public:
- // |native_window| will still be owned by the caller after the constructor
- // was called.
- explicit TestBrowserWindowAura(aura::Window* native_window)
- : native_window_(native_window) {
- }
- ~TestBrowserWindowAura() override {}
-
- // TestBrowserWindow overrides:
- void Show() override {
- native_window_->Show();
- Activate();
- }
- void Hide() override { native_window_->Hide(); }
- void Activate() override {
- aura::client::GetActivationClient(
- native_window_->GetRootWindow())->ActivateWindow(native_window_.get());
- }
- gfx::NativeWindow GetNativeWindow() const override {
- return native_window_.get();
- }
- gfx::Rect GetBounds() const override { return native_window_->bounds(); }
-
- Browser* browser() { return browser_.get(); }
-
- void CreateBrowser(const Browser::CreateParams& params) {
- Browser::CreateParams create_params = params;
- create_params.window = this;
- browser_.reset(new Browser(create_params));
- if (browser_->is_type_tabbed() || browser_->is_app()) {
- ash::wm::GetWindowState(native_window_.get())->
- set_window_position_managed(true);
- }
- }
-
- private:
- scoped_ptr<Browser> browser_;
- scoped_ptr<aura::Window> native_window_;
-
- DISALLOW_COPY_AND_ASSIGN(TestBrowserWindowAura);
-};
-
scoped_ptr<TestBrowserWindowAura> CreateTestBrowserWindow(
aura::Window* window,
const gfx::Rect& bounds,
@@ -83,6 +38,11 @@ scoped_ptr<TestBrowserWindowAura> CreateTestBrowserWindow(
scoped_ptr<TestBrowserWindowAura> browser_window(
new TestBrowserWindowAura(window));
browser_window->CreateBrowser(params);
+ if (browser_window->browser()->is_type_tabbed() ||
+ browser_window->browser()->is_app()) {
+ ash::wm::GetWindowState(browser_window->GetNativeWindow())
+ ->set_window_position_managed(true);
+ }
return browser_window.Pass();
}
@@ -476,22 +436,19 @@ TEST_F(WindowSizerAshTest, MAYBE_PlaceNewWindows) {
// Creating a popup handler here to make sure it does not interfere with the
// existing windows.
- scoped_ptr<BrowserWindow> browser_window(CreateTestBrowserWindow(
- CreateTestWindowInShellWithId(0),
- gfx::Rect(16, 32, 640, 320),
+ scoped_ptr<TestBrowserWindowAura> browser_window(CreateTestBrowserWindow(
+ CreateTestWindowInShellWithId(0), gfx::Rect(16, 32, 640, 320),
Browser::CreateParams(profile.get(), chrome::HOST_DESKTOP_TYPE_ASH)));
// Creating a popup to make sure it does not interfere with the positioning.
scoped_ptr<TestBrowserWindowAura> browser_popup(CreateTestBrowserWindow(
- CreateTestWindowInShellWithId(1),
- gfx::Rect(16, 32, 128, 256),
+ CreateTestWindowInShellWithId(1), gfx::Rect(16, 32, 128, 256),
Browser::CreateParams(Browser::TYPE_POPUP, profile.get(),
chrome::HOST_DESKTOP_TYPE_ASH)));
// Creating a panel to make sure it does not interfere with the positioning.
- scoped_ptr<BrowserWindow> browser_panel(CreateTestBrowserWindow(
- CreateTestWindowInShellWithId(2),
- gfx::Rect(32, 48, 256, 512),
+ scoped_ptr<TestBrowserWindowAura> browser_panel(CreateTestBrowserWindow(
+ CreateTestWindowInShellWithId(2), gfx::Rect(32, 48, 256, 512),
Browser::CreateParams(Browser::TYPE_POPUP, profile.get(),
chrome::HOST_DESKTOP_TYPE_ASH)));
browser_window->Show();
@@ -530,6 +487,12 @@ TEST_F(WindowSizerAshTest, MAYBE_PlaceNewWindows) {
1200 - ash::WindowPositioner::kDesktopBorderSize).ToString(),
window_bounds.ToString());
}
+
+ // Explicitly delete browsers since they're not owned by
msw 2015/07/08 01:14:00 Hmm, should TestBrowserWindowAura own its browsers
xdai1 2015/07/08 21:34:21 This is a little tricky here. Since we modified Cr
+ // TestBrowserWindowAura.
+ delete browser_window->browser();
+ delete browser_popup->browser();
+ delete browser_panel->browser();
}
// On desktop linux aura, we currently don't use the ash frame, breaking some
@@ -634,26 +597,25 @@ TEST_F(WindowSizerAshTest, MAYBE_PlaceNewWindowsOnMultipleDisplays) {
scoped_ptr<TestingProfile> profile(new TestingProfile());
// Create browser windows that are used as reference.
- scoped_ptr<BrowserWindow> browser_window(CreateTestBrowserWindow(
- CreateTestWindowInShellWithId(0),
- gfx::Rect(10, 10, 200, 200),
+ scoped_ptr<TestBrowserWindowAura> browser_window(CreateTestBrowserWindow(
+ CreateTestWindowInShellWithId(0), gfx::Rect(10, 10, 200, 200),
Browser::CreateParams(profile.get(), chrome::HOST_DESKTOP_TYPE_ASH)));
+ gfx::NativeWindow native_window = browser_window->GetNativeWindow();
browser_window->Show();
- EXPECT_EQ(browser_window->GetNativeWindow()->GetRootWindow(),
- ash::Shell::GetTargetRootWindow());
-
- scoped_ptr<BrowserWindow> another_browser_window(CreateTestBrowserWindow(
- CreateTestWindowInShellWithId(1),
- gfx::Rect(400, 10, 300, 300),
- Browser::CreateParams(profile.get(), chrome::HOST_DESKTOP_TYPE_ASH)));
+ EXPECT_EQ(native_window->GetRootWindow(), ash::Shell::GetTargetRootWindow());
+
+ scoped_ptr<TestBrowserWindowAura> another_browser_window(
+ CreateTestBrowserWindow(
+ CreateTestWindowInShellWithId(1), gfx::Rect(400, 10, 300, 300),
+ Browser::CreateParams(profile.get(), chrome::HOST_DESKTOP_TYPE_ASH)));
+ gfx::NativeWindow another_native_window =
+ another_browser_window->GetNativeWindow();
another_browser_window->Show();
// Creating a new window to verify the new placement.
scoped_ptr<TestBrowserWindowAura> new_browser_window(CreateTestBrowserWindow(
- CreateTestWindowInShellWithId(0),
- gfx::Rect(),
- Browser::CreateParams(profile.get(),
- chrome::HOST_DESKTOP_TYPE_ASH)));
+ CreateTestWindowInShellWithId(0), gfx::Rect(),
+ Browser::CreateParams(profile.get(), chrome::HOST_DESKTOP_TYPE_ASH)));
// Make sure the primary root is active.
ASSERT_EQ(ash::Shell::GetPrimaryRootWindow(),
@@ -680,7 +642,8 @@ TEST_F(WindowSizerAshTest, MAYBE_PlaceNewWindowsOnMultipleDisplays) {
browser_window->GetNativeWindow()->SetBoundsInScreen(
gfx::Rect(secondary_bounds.CenterPoint().x() - 100, 10, 200, 200),
second_display);
- browser_window->Activate();
+ aura::client::GetActivationClient(native_window->GetRootWindow())
+ ->ActivateWindow(native_window);
EXPECT_NE(ash::Shell::GetPrimaryRootWindow(),
ash::Shell::GetTargetRootWindow());
gfx::Rect window_bounds;
@@ -697,7 +660,8 @@ TEST_F(WindowSizerAshTest, MAYBE_PlaceNewWindowsOnMultipleDisplays) {
// Activate another window in the primary display and create a new window.
// It should be created in the primary display.
{
- another_browser_window->Activate();
+ aura::client::GetActivationClient(another_native_window->GetRootWindow())
+ ->ActivateWindow(another_native_window);
EXPECT_EQ(ash::Shell::GetPrimaryRootWindow(),
ash::Shell::GetTargetRootWindow());
@@ -711,6 +675,11 @@ TEST_F(WindowSizerAshTest, MAYBE_PlaceNewWindowsOnMultipleDisplays) {
// RearrangeVisibleWindowOnShow.
EXPECT_TRUE(primary_bounds.Contains(window_bounds));
}
+
+ // Explicitly delete browsers.
+ delete browser_window->browser();
+ delete another_browser_window->browser();
+ delete new_browser_window->browser();
}
// On desktop linux aura, we currently don't use the ash frame, breaking some
@@ -727,15 +696,13 @@ TEST_F(WindowSizerAshTest, MAYBE_TestShowState) {
// Creating a browser & window to play with.
scoped_ptr<TestBrowserWindowAura> browser_window(CreateTestBrowserWindow(
- CreateTestWindowInShellWithId(0),
- gfx::Rect(16, 32, 640, 320),
+ CreateTestWindowInShellWithId(0), gfx::Rect(16, 32, 640, 320),
Browser::CreateParams(Browser::TYPE_TABBED, profile.get(),
chrome::HOST_DESKTOP_TYPE_ASH)));
// Create also a popup browser since that behaves different.
scoped_ptr<TestBrowserWindowAura> browser_popup(CreateTestBrowserWindow(
- CreateTestWindowInShellWithId(1),
- gfx::Rect(16, 32, 640, 320),
+ CreateTestWindowInShellWithId(1), gfx::Rect(16, 32, 640, 320),
Browser::CreateParams(Browser::TYPE_POPUP, profile.get(),
chrome::HOST_DESKTOP_TYPE_ASH)));
@@ -785,8 +752,7 @@ TEST_F(WindowSizerAshTest, MAYBE_TestShowState) {
// window should follow the top level window's state.
// Creating a browser & window to play with.
scoped_ptr<TestBrowserWindowAura> browser_window2(CreateTestBrowserWindow(
- CreateTestWindowInShellWithId(3),
- gfx::Rect(16, 32, 640, 320),
+ CreateTestWindowInShellWithId(3), gfx::Rect(16, 32, 640, 320),
Browser::CreateParams(Browser::TYPE_TABBED, profile.get(),
chrome::HOST_DESKTOP_TYPE_ASH)));
@@ -829,6 +795,11 @@ TEST_F(WindowSizerAshTest, MAYBE_TestShowState) {
tiny_screen));
}
+
+ // Explictly delete browsers.
+ delete browser_window->browser();
+ delete browser_popup->browser();
+ delete browser_window2->browser();
}
// Test that the default show state override behavior is properly handled.
@@ -837,16 +808,14 @@ TEST_F(WindowSizerAshTest, TestShowStateDefaults) {
scoped_ptr<TestingProfile> profile(new TestingProfile());
scoped_ptr<TestBrowserWindowAura> browser_window(CreateTestBrowserWindow(
- CreateTestWindowInShellWithId(0),
- gfx::Rect(16, 32, 640, 320),
+ CreateTestWindowInShellWithId(0), gfx::Rect(16, 32, 640, 320),
Browser::CreateParams(Browser::TYPE_TABBED, profile.get(),
chrome::HOST_DESKTOP_TYPE_ASH)));
// Create also a popup browser since that behaves slightly different for
// defaults.
scoped_ptr<TestBrowserWindowAura> browser_popup(CreateTestBrowserWindow(
- CreateTestWindowInShellWithId(1),
- gfx::Rect(16, 32, 128, 256),
+ CreateTestWindowInShellWithId(1), gfx::Rect(16, 32, 128, 256),
Browser::CreateParams(Browser::TYPE_POPUP, profile.get(),
chrome::HOST_DESKTOP_TYPE_ASH)));
@@ -907,6 +876,10 @@ TEST_F(WindowSizerAshTest, TestShowStateDefaults) {
browser_popup->browser(),
p1600x1200,
p1600x1200), ui::SHOW_STATE_NORMAL);
+
+ // Explicitly delete browsers.
+ delete browser_window->browser();
+ delete browser_popup->browser();
}
TEST_F(WindowSizerAshTest, DefaultStateBecomesMaximized) {
@@ -987,8 +960,7 @@ TEST_F(WindowSizerAshTest, TrustedPopupBehavior) {
trusted_popup_create_params.trusted_source = true;
scoped_ptr<TestBrowserWindowAura> trusted_popup(CreateTestBrowserWindow(
- CreateTestWindowInShellWithId(1),
- gfx::Rect(16, 32, 640, 320),
+ CreateTestWindowInShellWithId(1), gfx::Rect(16, 32, 640, 320),
trusted_popup_create_params));
// Trusted popup windows should follow the saved show state and ignore the
// last show state.
@@ -1007,4 +979,7 @@ TEST_F(WindowSizerAshTest, TrustedPopupBehavior) {
trusted_popup->browser(),
p1600x1200,
p1600x1200));
+
+ // Explicitly delete browser.
+ delete trusted_popup->browser();
}

Powered by Google App Engine
This is Rietveld 408576698