Chromium Code Reviews| Index: chrome/browser/ui/ash/chrome_new_window_delegate_browsertest.cc |
| diff --git a/chrome/browser/ui/ash/chrome_new_window_delegate_browsertest.cc b/chrome/browser/ui/ash/chrome_new_window_delegate_browsertest.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..1dc3c60bd81382685575556a917c532326a5c2aa |
| --- /dev/null |
| +++ b/chrome/browser/ui/ash/chrome_new_window_delegate_browsertest.cc |
| @@ -0,0 +1,54 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "ash/new_window_delegate.h" |
| +#include "ash/shell.h" |
| +#include "ash/wm/window_util.h" |
| +#include "chrome/browser/profiles/profile_manager.h" |
| +#include "chrome/browser/ui/browser_finder.h" |
| +#include "chrome/test/base/in_process_browser_test.h" |
| +#include "components/signin/core/account_id/account_id.h" |
| +#include "components/user_manager/user_manager.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| +#include "ui/aura/window.h" |
| + |
| +namespace { |
| + |
| +const char kTestUserName[] = "test@test.com"; |
| + |
| +} // namespace |
| + |
| +typedef InProcessBrowserTest ChromeNewWindowDelegateBrowserTest; |
| + |
| +// Tests that when we open a new window by pressing 'Ctrl-N', we should use the |
| +// current active window's profile to determine on which profile's desktop we |
| +// should open a new window. |
| +IN_PROC_BROWSER_TEST_F(ChromeNewWindowDelegateBrowserTest, |
| + NewWindowForActiveWindowProfileTest) { |
| + // The newly created window should be created for the current active profile. |
| + ash::Shell::GetInstance()->new_window_delegate()->NewWindow(false); |
| + aura::Window* window1 = ash::wm::GetActiveWindow(); |
| + Profile* profile1 = ProfileManager::GetActiveUserProfile(); |
| + EXPECT_EQ(chrome::FindBrowserWithWindow(window1)->profile(), profile1); |
| + |
| + // Login another user and make sure the current active user changes. |
| + user_manager::UserManager::Get()->UserLoggedIn( |
| + AccountId::FromUserEmail(kTestUserName), kTestUserName, true); |
| + Profile* profile2 = ProfileManager::GetActiveUserProfile(); |
| + EXPECT_NE(profile1, profile2); |
| + |
| + CreateBrowser(profile2); |
| + // The newly created window should be created for the current active window's |
| + // profile, which is |profile2|. |
| + ash::Shell::GetInstance()->new_window_delegate()->NewWindow(false); |
| + aura::Window* window2 = ash::wm::GetActiveWindow(); |
| + EXPECT_EQ(chrome::FindBrowserWithWindow(window2)->profile(), profile2); |
| + |
| + // After activating |window1|, |window1| is the current active window. And we |
| + // should open a new window against |window1|'s profile. |
| + ash::wm::ActivateWindow(window1); |
| + ash::Shell::GetInstance()->new_window_delegate()->NewWindow(false); |
| + aura::Window* window3 = ash::wm::GetActiveWindow(); |
| + EXPECT_EQ(chrome::FindBrowserWithWindow(window3)->profile(), profile1); |
|
oshima
2016/05/06 18:44:14
can you also add the case when the incognito is ac
xdai1
2016/05/06 20:25:32
Done.
|
| +} |