| Index: ash/common/system/tray/system_tray_unittest.cc
|
| diff --git a/ash/system/tray/system_tray_unittest.cc b/ash/common/system/tray/system_tray_unittest.cc
|
| similarity index 92%
|
| rename from ash/system/tray/system_tray_unittest.cc
|
| rename to ash/common/system/tray/system_tray_unittest.cc
|
| index d775923aca08e95696665de0b243f7cc6fd978ed..4f20c194dd23fd009ff0edac474927000bc50d1c 100644
|
| --- a/ash/system/tray/system_tray_unittest.cc
|
| +++ b/ash/common/system/tray/system_tray_unittest.cc
|
| @@ -2,26 +2,26 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "ash/system/tray/system_tray.h"
|
| +#include "ash/common/system/tray/system_tray.h"
|
|
|
| #include <vector>
|
|
|
| #include "ash/common/accessibility_delegate.h"
|
| #include "ash/common/shelf/wm_shelf.h"
|
| +#include "ash/common/shell_window_ids.h"
|
| +#include "ash/common/system/status_area_widget.h"
|
| #include "ash/common/system/tray/system_tray_bubble.h"
|
| #include "ash/common/system/tray/system_tray_item.h"
|
| #include "ash/common/system/tray/tray_constants.h"
|
| #include "ash/common/system/tray/tray_popup_item_container.h"
|
| #include "ash/common/system/web_notification/web_notification_tray.h"
|
| +#include "ash/common/wm_root_window_controller.h"
|
| #include "ash/common/wm_shell.h"
|
| -#include "ash/shell.h"
|
| -#include "ash/system/status_area_widget.h"
|
| +#include "ash/common/wm_window.h"
|
| #include "ash/test/ash_test_base.h"
|
| #include "ash/test/status_area_widget_test_helper.h"
|
| -#include "ash/wm/window_util.h"
|
| #include "base/run_loop.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| -#include "ui/aura/window.h"
|
| #include "ui/base/ui_base_types.h"
|
| #include "ui/compositor/scoped_animation_duration_scale_mode.h"
|
| #include "ui/events/test/event_generator.h"
|
| @@ -42,6 +42,23 @@ namespace test {
|
|
|
| namespace {
|
|
|
| +std::unique_ptr<views::Widget> CreateTestWidget(views::WidgetDelegate* delegate,
|
| + int container_id) {
|
| + std::unique_ptr<views::Widget> widget(new views::Widget);
|
| + views::Widget::InitParams params;
|
| + params.delegate = delegate;
|
| + params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
|
| + params.bounds = gfx::Rect(0, 0, 100, 100);
|
| + WmShell::Get()
|
| + ->GetPrimaryRootWindow()
|
| + ->GetRootWindowController()
|
| + ->ConfigureWidgetInitParamsForContainer(widget.get(), container_id,
|
| + ¶ms);
|
| + widget->Init(params);
|
| + widget->Show();
|
| + return widget;
|
| +}
|
| +
|
| // Trivial item implementation that tracks its views for testing.
|
| class TestItem : public SystemTrayItem {
|
| public:
|
| @@ -387,21 +404,21 @@ TEST_F(SystemTrayTest, PersistentBubble) {
|
| TestItem* test_item = new TestItem;
|
| tray->AddTrayItem(test_item);
|
|
|
| - std::unique_ptr<aura::Window> window(CreateTestWindowInShellWithId(0));
|
| + std::unique_ptr<views::Widget> widget(
|
| + CreateTestWidget(nullptr, kShellWindowId_DefaultContainer));
|
|
|
| - // Tests for usual default view.
|
| - // Activating window.
|
| + // Tests for usual default view while activating a window.
|
| tray->ShowDefaultView(BUBBLE_CREATE_NEW);
|
| ASSERT_TRUE(tray->HasSystemBubble());
|
| - wm::ActivateWindow(window.get());
|
| + widget->Activate();
|
| base::RunLoop().RunUntilIdle();
|
| ASSERT_FALSE(tray->HasSystemBubble());
|
|
|
| tray->ShowDefaultView(BUBBLE_CREATE_NEW);
|
| ASSERT_TRUE(tray->HasSystemBubble());
|
| {
|
| - ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(),
|
| - gfx::Point(5, 5));
|
| + ui::test::EventGenerator& generator = GetEventGenerator();
|
| + generator.set_current_location(gfx::Point(5, 5));
|
| generator.ClickLeftButton();
|
| ASSERT_FALSE(tray->HasSystemBubble());
|
| }
|
| @@ -409,13 +426,13 @@ TEST_F(SystemTrayTest, PersistentBubble) {
|
| // Same tests for persistent default view.
|
| tray->ShowPersistentDefaultView();
|
| ASSERT_TRUE(tray->HasSystemBubble());
|
| - wm::ActivateWindow(window.get());
|
| + widget->Activate();
|
| base::RunLoop().RunUntilIdle();
|
| ASSERT_TRUE(tray->HasSystemBubble());
|
|
|
| {
|
| - ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(),
|
| - gfx::Point(5, 5));
|
| + ui::test::EventGenerator& generator = GetEventGenerator();
|
| + generator.set_current_location(gfx::Point(5, 5));
|
| generator.ClickLeftButton();
|
| ASSERT_TRUE(tray->HasSystemBubble());
|
| }
|
| @@ -430,10 +447,8 @@ TEST_F(SystemTrayTest, PersistentBubble) {
|
| TEST_F(SystemTrayTest, MAYBE_WithSystemModal) {
|
| // Check if the accessibility item is created even with system modal dialog.
|
| WmShell::Get()->GetAccessibilityDelegate()->SetVirtualKeyboardEnabled(true);
|
| - views::Widget* widget = views::Widget::CreateWindowWithContextAndBounds(
|
| - new ModalWidgetDelegate(), Shell::GetPrimaryRootWindow(),
|
| - gfx::Rect(0, 0, 100, 100));
|
| - widget->Show();
|
| + std::unique_ptr<views::Widget> widget(CreateTestWidget(
|
| + new ModalWidgetDelegate, kShellWindowId_SystemModalContainer));
|
|
|
| SystemTray* tray = GetPrimarySystemTray();
|
| tray->ShowDefaultView(BUBBLE_CREATE_NEW);
|
| @@ -447,7 +462,8 @@ TEST_F(SystemTrayTest, MAYBE_WithSystemModal) {
|
| EXPECT_FALSE(tray->GetSystemBubble()->bubble_view()->GetViewByID(
|
| test::kSettingsTrayItemViewId));
|
|
|
| - widget->Close();
|
| + // Close the modal dialog.
|
| + widget.reset();
|
|
|
| tray->ShowDefaultView(BUBBLE_CREATE_NEW);
|
| // System modal is gone. The bubble should now contains settings
|
| @@ -495,7 +511,7 @@ TEST_F(SystemTrayTest, TrayPopupItemContainerTouchFeedback) {
|
| tray->GetSystemBubble()->bubble_view()->child_at(0));
|
| EXPECT_FALSE(view->active());
|
|
|
| - ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow());
|
| + ui::test::EventGenerator& generator = GetEventGenerator();
|
| generator.set_current_location(view->GetBoundsInScreen().CenterPoint());
|
| generator.PressTouch();
|
| EXPECT_TRUE(view->active());
|
| @@ -515,7 +531,7 @@ TEST_F(SystemTrayTest, TrayPopupItemContainerTouchFeedbackCancellation) {
|
| EXPECT_FALSE(view->active());
|
|
|
| gfx::Rect view_bounds = view->GetBoundsInScreen();
|
| - ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow());
|
| + ui::test::EventGenerator& generator = GetEventGenerator();
|
| generator.set_current_location(view_bounds.CenterPoint());
|
| generator.PressTouch();
|
| EXPECT_TRUE(view->active());
|
|
|