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

Unified Diff: components/exo/shell_surface_unittest.cc

Issue 1580033004: exo: Improve Maximize and Fullscreen support for ShellSurfaces. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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: components/exo/shell_surface_unittest.cc
diff --git a/components/exo/shell_surface_unittest.cc b/components/exo/shell_surface_unittest.cc
index bc1a9d5bcd2e94958b1e1b821e14bb09ac897a0a..4f78f82c626873a2788cfc248a49b1009b50d7b4 100644
--- a/components/exo/shell_surface_unittest.cc
+++ b/components/exo/shell_surface_unittest.cc
@@ -19,7 +19,7 @@ namespace {
using ShellSurfaceTest = test::ExoTestBase;
-TEST_F(ShellSurfaceTest, SetTopLevel) {
+TEST_F(ShellSurfaceTest, Init) {
gfx::Size small_buffer_size(64, 64);
scoped_ptr<Buffer> small_buffer(
new Buffer(exo_test_helper()->CreateGpuMemoryBuffer(small_buffer_size),
@@ -31,10 +31,11 @@ TEST_F(ShellSurfaceTest, SetTopLevel) {
scoped_ptr<Surface> surface(new Surface);
scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get()));
- shell_surface->SetToplevel();
+ shell_surface->Init();
+ ASSERT_TRUE(shell_surface->GetWidget());
+
surface->Attach(small_buffer.get());
surface->Commit();
- ASSERT_TRUE(shell_surface->GetWidget());
EXPECT_EQ(
small_buffer_size.ToString(),
shell_surface->GetWidget()->GetWindowBoundsInScreen().size().ToString());
@@ -46,19 +47,19 @@ TEST_F(ShellSurfaceTest, SetTopLevel) {
shell_surface->GetWidget()->GetWindowBoundsInScreen().size().ToString());
}
-TEST_F(ShellSurfaceTest, SetMaximized) {
+TEST_F(ShellSurfaceTest, Maximize) {
gfx::Size buffer_size(256, 256);
scoped_ptr<Buffer> buffer(new Buffer(
exo_test_helper()->CreateGpuMemoryBuffer(buffer_size), GL_TEXTURE_2D));
scoped_ptr<Surface> surface(new Surface);
scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get()));
- shell_surface->SetMaximized();
+ shell_surface->Init();
surface->Attach(buffer.get());
+ shell_surface->Maximize();
surface->Commit();
EXPECT_EQ(CurrentContext()->bounds().width(),
shell_surface->GetWidget()->GetWindowBoundsInScreen().width());
- surface->Commit();
}
TEST_F(ShellSurfaceTest, SetFullscreen) {
@@ -68,7 +69,8 @@ TEST_F(ShellSurfaceTest, SetFullscreen) {
scoped_ptr<Surface> surface(new Surface);
scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get()));
- shell_surface->SetFullscreen();
+ shell_surface->Init();
+ shell_surface->SetFullscreen(true);
surface->Attach(buffer.get());
surface->Commit();
EXPECT_EQ(CurrentContext()->bounds().ToString(),
@@ -87,7 +89,7 @@ TEST_F(ShellSurfaceTest, SetApplicationId) {
scoped_ptr<Surface> surface(new Surface);
scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get()));
- shell_surface->SetToplevel();
+ shell_surface->Init();
surface->Commit();
EXPECT_EQ("", ShellSurface::GetApplicationId(
shell_surface->GetWidget()->GetNativeWindow()));
@@ -105,7 +107,7 @@ TEST_F(ShellSurfaceTest, Move) {
scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get()));
// Map shell surface.
- shell_surface->SetToplevel();
+ shell_surface->Init();
surface->Commit();
// Post a task that will destroy the shell surface and then start an
@@ -124,7 +126,7 @@ TEST_F(ShellSurfaceTest, SetGeometry) {
scoped_ptr<Surface> surface(new Surface);
scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get()));
- shell_surface->SetToplevel();
+ shell_surface->Init();
gfx::Rect geometry(16, 16, 32, 32);
shell_surface->SetGeometry(geometry);
surface->Attach(buffer.get());
@@ -149,7 +151,7 @@ TEST_F(ShellSurfaceTest, CloseCallback) {
shell_surface->set_close_callback(
base::Bind(&Close, base::Unretained(&close_call_count)));
- shell_surface->SetToplevel();
+ shell_surface->Init();
surface->Commit();
EXPECT_EQ(0, close_call_count);
@@ -164,7 +166,7 @@ TEST_F(ShellSurfaceTest, SurfaceDestroyedCallback) {
shell_surface->set_surface_destroyed_callback(
base::Bind(&DestroyShellSurface, base::Unretained(&shell_surface)));
- shell_surface->SetToplevel();
+ shell_surface->Init();
surface->Commit();
EXPECT_TRUE(shell_surface.get());
@@ -172,5 +174,26 @@ TEST_F(ShellSurfaceTest, SurfaceDestroyedCallback) {
EXPECT_FALSE(shell_surface.get());
}
+void Configure(gfx::Size* suggested_size, const gfx::Size& size) {
+ *suggested_size = size;
+}
+
+TEST_F(ShellSurfaceTest, ConfigureCallback) {
+ scoped_ptr<Surface> surface(new Surface);
+ scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get()));
+
+ shell_surface->Init();
+
+ gfx::Size suggested_size;
+ shell_surface->set_configure_callback(
+ base::Bind(&Configure, base::Unretained(&suggested_size)));
+ shell_surface->Maximize();
+ EXPECT_EQ(CurrentContext()->bounds().width(), suggested_size.width());
+
+ shell_surface->SetFullscreen(true);
+ EXPECT_EQ(CurrentContext()->bounds().size().ToString(),
+ suggested_size.ToString());
+}
+
} // namespace
} // namespace exo

Powered by Google App Engine
This is Rietveld 408576698