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

Unified Diff: ash/shelf/shelf_view_unittest.cc

Issue 2247503002: mash: Create and show a shelf in mash. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix WindowManager WmShell::Shutdown; delay PointerWatcherEventRouter teardown; cleanup shutdown wor… Created 4 years, 4 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: ash/shelf/shelf_view_unittest.cc
diff --git a/ash/shelf/shelf_view_unittest.cc b/ash/shelf/shelf_view_unittest.cc
index 31247b12172b659e915a8b779691c05fe9efe731..3074a0a48312f5f6d8fddaecebd9d9b04e1162cb 100644
--- a/ash/shelf/shelf_view_unittest.cc
+++ b/ash/shelf/shelf_view_unittest.cc
@@ -14,14 +14,15 @@
#include "ash/common/shelf/overflow_bubble_view.h"
#include "ash/common/shelf/shelf_button.h"
#include "ash/common/shelf/shelf_constants.h"
-#include "ash/common/shelf/shelf_icon_observer.h"
#include "ash/common/shelf/shelf_menu_model.h"
#include "ash/common/shelf/shelf_model.h"
#include "ash/common/shelf/shelf_tooltip_manager.h"
#include "ash/common/shelf/wm_shelf.h"
+#include "ash/common/shelf/wm_shelf_observer.h"
#include "ash/common/shell_window_ids.h"
#include "ash/common/system/web_notification/web_notification_tray.h"
#include "ash/common/test/material_design_controller_test_api.h"
+#include "ash/common/wm_root_window_controller.h"
#include "ash/common/wm_shell.h"
#include "ash/common/wm_window.h"
#include "ash/shelf/shelf_widget.h"
@@ -71,46 +72,41 @@ namespace ash {
namespace test {
////////////////////////////////////////////////////////////////////////////////
-// ShelfIconObserver tests.
+// WmShelfObserver::OnShelfIconPositionsChanged tests.
-class TestShelfIconObserver : public ShelfIconObserver {
+class TestWmShelfObserver : public WmShelfObserver {
public:
- explicit TestShelfIconObserver(Shelf* shelf)
- : shelf_(shelf), change_notified_(false) {
- if (shelf_)
- shelf_->AddIconObserver(this);
+ explicit TestWmShelfObserver(WmShelf* shelf) : shelf_(shelf) {
+ shelf_->AddObserver(this);
}
- ~TestShelfIconObserver() override {
- if (shelf_)
- shelf_->RemoveIconObserver(this);
- }
+ ~TestWmShelfObserver() override { shelf_->RemoveObserver(this); }
- // ShelfIconObserver implementation.
- void OnShelfIconPositionsChanged() override { change_notified_ = true; }
+ // WmShelfObserver implementation.
+ void OnShelfIconPositionsChanged() override {
+ icon_positions_changed_ = true;
+ }
- int change_notified() const { return change_notified_; }
- void Reset() { change_notified_ = false; }
+ bool icon_positions_changed() const { return icon_positions_changed_; }
+ void Reset() { icon_positions_changed_ = false; }
private:
- Shelf* shelf_;
- bool change_notified_;
+ WmShelf* shelf_;
+ bool icon_positions_changed_ = false;
- DISALLOW_COPY_AND_ASSIGN(TestShelfIconObserver);
+ DISALLOW_COPY_AND_ASSIGN(TestWmShelfObserver);
};
-class ShelfViewIconObserverTest : public AshTestBase {
+class WmShelfObserverIconTest : public AshTestBase {
public:
- ShelfViewIconObserverTest() {}
- ~ShelfViewIconObserverTest() override {}
+ WmShelfObserverIconTest() {}
+ ~WmShelfObserverIconTest() override {}
void SetUp() override {
AshTestBase::SetUp();
- Shelf* shelf = Shelf::ForPrimaryDisplay();
- observer_.reset(new TestShelfIconObserver(shelf));
-
+ observer_.reset(new TestWmShelfObserver(GetPrimaryShelf()));
shelf_view_test_.reset(
- new ShelfViewTestAPI(ShelfTestAPI(shelf).shelf_view()));
+ new ShelfViewTestAPI(GetPrimaryShelf()->GetShelfViewForTesting()));
shelf_view_test_->SetAnimationDuration(1);
}
@@ -119,19 +115,15 @@ class ShelfViewIconObserverTest : public AshTestBase {
AshTestBase::TearDown();
}
- TestShelfIconObserver* observer() { return observer_.get(); }
+ TestWmShelfObserver* observer() { return observer_.get(); }
ShelfViewTestAPI* shelf_view_test() { return shelf_view_test_.get(); }
- Shelf* ShelfForSecondaryDisplay() {
- return Shelf::ForWindow(WmShell::Get()->GetAllRootWindows()[1]);
- }
-
private:
- std::unique_ptr<TestShelfIconObserver> observer_;
+ std::unique_ptr<TestWmShelfObserver> observer_;
std::unique_ptr<ShelfViewTestAPI> shelf_view_test_;
- DISALLOW_COPY_AND_ASSIGN(ShelfViewIconObserverTest);
+ DISALLOW_COPY_AND_ASSIGN(WmShelfObserverIconTest);
};
// TestShelfItemDelegate which tracks whether it gets selected.
@@ -171,7 +163,7 @@ class ShelfItemSelectionTracker : public TestShelfItemDelegate {
DISALLOW_COPY_AND_ASSIGN(ShelfItemSelectionTracker);
};
-TEST_F(ShelfViewIconObserverTest, AddRemove) {
+TEST_F(WmShelfObserverIconTest, AddRemove) {
TestShelfDelegate* shelf_delegate = TestShelfDelegate::instance();
ASSERT_TRUE(shelf_delegate);
@@ -184,24 +176,26 @@ TEST_F(ShelfViewIconObserverTest, AddRemove) {
widget->Init(params);
shelf_delegate->AddShelfItem(widget->GetNativeWindow());
shelf_view_test()->RunMessageLoopUntilAnimationsDone();
- EXPECT_TRUE(observer()->change_notified());
+ EXPECT_TRUE(observer()->icon_positions_changed());
observer()->Reset();
widget->Show();
widget->GetNativeWindow()->parent()->RemoveChild(widget->GetNativeWindow());
shelf_view_test()->RunMessageLoopUntilAnimationsDone();
- EXPECT_TRUE(observer()->change_notified());
+ EXPECT_TRUE(observer()->icon_positions_changed());
observer()->Reset();
}
// Make sure creating/deleting an window on one displays notifies a
// shelf on external display as well as one on primary.
-TEST_F(ShelfViewIconObserverTest, AddRemoveWithMultipleDisplays) {
+TEST_F(WmShelfObserverIconTest, AddRemoveWithMultipleDisplays) {
if (!SupportsMultipleDisplays())
return;
UpdateDisplay("400x400,400x400");
- TestShelfIconObserver second_observer(ShelfForSecondaryDisplay());
+ WmWindow* second_root = WmShell::Get()->GetAllRootWindows()[1];
+ WmShelf* second_shelf = second_root->GetRootWindowController()->GetShelf();
+ TestWmShelfObserver second_observer(second_shelf);
TestShelfDelegate* shelf_delegate = TestShelfDelegate::instance();
ASSERT_TRUE(shelf_delegate);
@@ -215,21 +209,21 @@ TEST_F(ShelfViewIconObserverTest, AddRemoveWithMultipleDisplays) {
widget->Init(params);
shelf_delegate->AddShelfItem(widget->GetNativeWindow());
shelf_view_test()->RunMessageLoopUntilAnimationsDone();
- EXPECT_TRUE(observer()->change_notified());
- EXPECT_TRUE(second_observer.change_notified());
+ EXPECT_TRUE(observer()->icon_positions_changed());
+ EXPECT_TRUE(second_observer.icon_positions_changed());
observer()->Reset();
second_observer.Reset();
widget->GetNativeWindow()->parent()->RemoveChild(widget->GetNativeWindow());
shelf_view_test()->RunMessageLoopUntilAnimationsDone();
- EXPECT_TRUE(observer()->change_notified());
- EXPECT_TRUE(second_observer.change_notified());
+ EXPECT_TRUE(observer()->icon_positions_changed());
+ EXPECT_TRUE(second_observer.icon_positions_changed());
observer()->Reset();
second_observer.Reset();
}
-TEST_F(ShelfViewIconObserverTest, BoundsChanged) {
+TEST_F(WmShelfObserverIconTest, BoundsChanged) {
views::Widget* widget =
GetPrimaryShelf()->GetShelfViewForTesting()->GetWidget();
gfx::Rect shelf_bounds = widget->GetWindowBoundsInScreen();
@@ -237,7 +231,7 @@ TEST_F(ShelfViewIconObserverTest, BoundsChanged) {
ASSERT_GT(shelf_bounds.width(), 0);
widget->SetBounds(shelf_bounds);
// No animation happens for ShelfView bounds change.
- EXPECT_TRUE(observer()->change_notified());
+ EXPECT_TRUE(observer()->icon_positions_changed());
observer()->Reset();
}

Powered by Google App Engine
This is Rietveld 408576698