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

Unified Diff: ui/views/mus/native_widget_mus_unittest.cc

Issue 2225833003: Fixes a couple of bugs in NativeWidgetMus (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: moar 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
« ui/views/mus/native_widget_mus.cc ('K') | « ui/views/mus/native_widget_mus.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/mus/native_widget_mus_unittest.cc
diff --git a/ui/views/mus/native_widget_mus_unittest.cc b/ui/views/mus/native_widget_mus_unittest.cc
index cd70357d6e14b45aa4c122333f4819de51bed305..856eaf44723a1eba255872737bbfd516319f9d2b 100644
--- a/ui/views/mus/native_widget_mus_unittest.cc
+++ b/ui/views/mus/native_widget_mus_unittest.cc
@@ -9,6 +9,7 @@
#include "services/ui/public/cpp/property_type_converters.h"
#include "services/ui/public/cpp/tests/window_tree_client_private.h"
#include "services/ui/public/cpp/window.h"
+#include "services/ui/public/cpp/window_observer.h"
#include "services/ui/public/cpp/window_property.h"
#include "services/ui/public/cpp/window_tree_client.h"
#include "services/ui/public/interfaces/window_manager.mojom.h"
@@ -24,6 +25,7 @@
#include "ui/gfx/path.h"
#include "ui/gfx/skia_util.h"
#include "ui/views/controls/native/native_view_host.h"
+#include "ui/views/mus/window_manager_connection.h"
#include "ui/views/test/focus_manager_test.h"
#include "ui/views/test/views_test_base.h"
#include "ui/views/widget/widget.h"
@@ -547,4 +549,64 @@ TEST_F(NativeWidgetMusTest, DontShowTwice) {
widget->Show();
}
+namespace {
+
+// See description of test for details.
+class IsMaximizedObserver : public ui::WindowObserver {
+ public:
+ IsMaximizedObserver() {}
+ ~IsMaximizedObserver() override {}
+
+ void set_widget(Widget* widget) { widget_ = widget; }
+
+ bool got_change() const { return got_change_; }
+
+ // ui::WindowObserver:
+ void OnWindowSharedPropertyChanged(
+ ui::Window* window,
+ const std::string& name,
+ const std::vector<uint8_t>* old_data,
+ const std::vector<uint8_t>* new_data) override {
+ // Expect only one change for the show state.
+ ASSERT_FALSE(got_change_);
+ got_change_ = true;
+ EXPECT_EQ(ui::mojom::WindowManager::kShowState_Property, name);
+ EXPECT_TRUE(widget_->IsMaximized());
+ }
+
+ private:
+ bool got_change_ = false;
+ Widget* widget_ = nullptr;
+
+ DISALLOW_COPY_AND_ASSIGN(IsMaximizedObserver);
+};
+
+} // namespace
+
+// Verifies that asking for Widget::IsMaximized() from within
+// OnWindowSharedPropertyChanged() returns the right thing.
+TEST_F(NativeWidgetMusTest, IsMaximized) {
+ ASSERT_TRUE(WindowManagerConnection::Exists());
+ ui::Window* window = WindowManagerConnection::Get()->NewWindow(
+ std::map<std::string, std::vector<uint8_t>>());
+ IsMaximizedObserver observer;
+ // NOTE: the order here is important, we purposefully add the
+ // ui::WindowObserver before creating NativeWidgetMus, which also adds its
+ // own observer.
+ window->AddObserver(&observer);
+
+ std::unique_ptr<Widget> widget(new Widget());
+ observer.set_widget(widget.get());
+ Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW);
+ params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
+ params.bounds = initial_bounds();
+ params.native_widget = new NativeWidgetMus(widget.get(), window,
+ ui::mojom::SurfaceType::DEFAULT);
+ widget->Init(params);
+ window->SetSharedProperty<int32_t>(
+ ui::mojom::WindowManager::kShowState_Property,
+ static_cast<uint32_t>(ui::mojom::ShowState::MAXIMIZED));
+ EXPECT_TRUE(widget->IsMaximized());
+}
+
} // namespace views
« ui/views/mus/native_widget_mus.cc ('K') | « ui/views/mus/native_widget_mus.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698