OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chromeos/login/ui/login_web_dialog.h" | 5 #include "chrome/browser/chromeos/login/ui/login_web_dialog.h" |
6 | 6 |
7 #include "ash/shell.h" | 7 #include "ash/shell.h" |
8 #include "chrome/browser/profiles/profile.h" | 8 #include "chrome/browser/profiles/profile.h" |
9 #include "chrome/browser/ui/browser.h" | 9 #include "chrome/browser/ui/browser.h" |
10 #include "chrome/test/base/in_process_browser_test.h" | 10 #include "chrome/test/base/in_process_browser_test.h" |
11 #include "services/ui/public/interfaces/window_manager_constants.mojom.h" | 11 #include "services/ui/public/interfaces/window_manager_constants.mojom.h" |
12 #include "ui/aura/client/aura_constants.h" | 12 #include "ui/aura/client/aura_constants.h" |
13 #include "ui/aura/window.h" | 13 #include "ui/aura/window.h" |
14 #include "ui/wm/public/activation_client.h" | 14 #include "ui/events/test/event_generator.h" |
15 #include "ui/views/test/widget_test.h" | |
15 | 16 |
16 namespace chromeos { | 17 namespace chromeos { |
17 | 18 |
18 typedef InProcessBrowserTest LoginWebDialogTest; | 19 using LoginWebDialogTest = InProcessBrowserTest; |
19 | 20 |
20 // Test that LoginWebDialog is not minimizable. | 21 // Tests that LoginWebDialog is not minimizable. |
21 IN_PROC_BROWSER_TEST_F(LoginWebDialogTest, CannotMinimize) { | 22 IN_PROC_BROWSER_TEST_F(LoginWebDialogTest, CannotMinimize) { |
22 LoginWebDialog* dialog = new LoginWebDialog( | 23 LoginWebDialog* dialog = new LoginWebDialog( |
23 browser()->profile(), nullptr, nullptr, base::string16(), GURL()); | 24 browser()->profile(), nullptr, nullptr, base::string16(), GURL()); |
24 dialog->Show(); | 25 dialog->Show(); |
25 | 26 aura::Window* window = dialog->get_dialog_window_for_test(); |
26 aura::client::ActivationClient* activation_client = | |
27 aura::client::GetActivationClient( | |
28 ash::Shell::Get()->GetPrimaryRootWindow()); | |
29 aura::Window* window = activation_client->GetActiveWindow(); | |
30 ASSERT_TRUE(window); | 27 ASSERT_TRUE(window); |
31 EXPECT_EQ(0, window->GetProperty(aura::client::kResizeBehaviorKey) & | 28 EXPECT_EQ(0, window->GetProperty(aura::client::kResizeBehaviorKey) & |
32 ui::mojom::kResizeBehaviorCanMinimize); | 29 ui::mojom::kResizeBehaviorCanMinimize); |
33 } | 30 } |
34 | 31 |
32 // Tests that LoginWebDialog can be closed by 'Shift + BrowserBack' accelerator. | |
33 IN_PROC_BROWSER_TEST_F(LoginWebDialogTest, CloseDialogByAccelerator) { | |
34 LoginWebDialog* dialog = new LoginWebDialog( | |
35 browser()->profile(), nullptr, nullptr, base::string16(), GURL()); | |
36 dialog->Show(); | |
37 aura::Window* window = dialog->get_dialog_window_for_test(); | |
xiyuan
2017/05/12 22:29:57
nit: aura::Window* -> gfx::NativeWindow
Qiang(Joe) Xu
2017/05/12 22:39:32
Done.
| |
38 ASSERT_TRUE(window); | |
39 views::Widget* widget = views::Widget::GetWidgetForNativeWindow(window); | |
40 views::test::WidgetClosingObserver closing_observer(widget); | |
41 ui::test::EventGenerator generator(ash::Shell::GetPrimaryRootWindow()); | |
42 generator.PressKey(ui::VKEY_BROWSER_BACK, ui::EF_SHIFT_DOWN); | |
43 closing_observer.Wait(); | |
44 EXPECT_TRUE(closing_observer.widget_closed()); | |
45 } | |
46 | |
35 } // namespace chromeos | 47 } // namespace chromeos |
OLD | NEW |