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

Side by Side Diff: components/exo/surface_unittest.cc

Issue 2493223002: Change exo::SurfaceFactoryOwner to exo::ExoCompositorFrameSink (Closed)
Patch Set: Undid a change on an if condition in exo::Surface::CommitSurfaceHierarchy() Created 4 years 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "cc/output/compositor_frame.h" 6 #include "cc/output/compositor_frame.h"
7 #include "cc/quads/texture_draw_quad.h" 7 #include "cc/quads/texture_draw_quad.h"
8 #include "cc/surfaces/surface.h" 8 #include "cc/surfaces/surface.h"
9 #include "cc/surfaces/surface_manager.h" 9 #include "cc/surfaces/surface_manager.h"
10 #include "components/exo/buffer.h" 10 #include "components/exo/buffer.h"
11 #include "components/exo/surface.h" 11 #include "components/exo/surface.h"
12 #include "components/exo/test/exo_test_base.h" 12 #include "components/exo/test/exo_test_base.h"
13 #include "components/exo/test/exo_test_helper.h" 13 #include "components/exo/test/exo_test_helper.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 #include "ui/aura/env.h" 15 #include "ui/aura/env.h"
16 #include "ui/compositor/layer_tree_owner.h" 16 #include "ui/compositor/layer_tree_owner.h"
17 #include "ui/gfx/gpu_memory_buffer.h" 17 #include "ui/gfx/gpu_memory_buffer.h"
18 #include "ui/wm/core/window_util.h" 18 #include "ui/wm/core/window_util.h"
19 19
20 namespace exo { 20 namespace exo {
21 namespace { 21 namespace {
22 22
23 using SurfaceTest = test::ExoTestBase; 23 using SurfaceTest = test::ExoTestBase;
24 24
25 void ReleaseBuffer(int* release_buffer_call_count) { 25 void ReleaseBuffer(int* release_buffer_call_count) {
26 (*release_buffer_call_count)++; 26 (*release_buffer_call_count)++;
27 } 27 }
28 28
29 // SurafaceTest.Attach is failing
29 TEST_F(SurfaceTest, Attach) { 30 TEST_F(SurfaceTest, Attach) {
30 gfx::Size buffer_size(256, 256); 31 gfx::Size buffer_size(256, 256);
31 std::unique_ptr<Buffer> buffer( 32 std::unique_ptr<Buffer> buffer(
32 new Buffer(exo_test_helper()->CreateGpuMemoryBuffer(buffer_size))); 33 new Buffer(exo_test_helper()->CreateGpuMemoryBuffer(buffer_size)));
33 34
34 // Set the release callback that will be run when buffer is no longer in use. 35 // Set the release callback that will be run when buffer is no longer in use.
35 int release_buffer_call_count = 0; 36 int release_buffer_call_count = 0;
36 buffer->set_release_callback( 37 buffer->set_release_callback(
37 base::Bind(&ReleaseBuffer, base::Unretained(&release_buffer_call_count))); 38 base::Bind(&ReleaseBuffer, base::Unretained(&release_buffer_call_count)));
38 39
39 std::unique_ptr<Surface> surface(new Surface); 40 std::unique_ptr<Surface> surface(new Surface);
40 41
41 // Attach the buffer to surface1. 42 // Attach the buffer to surface1.
42 surface->Attach(buffer.get()); 43 surface->Attach(buffer.get());
43 surface->Commit(); 44 surface->Commit();
44 45
45 // Commit without calling Attach() should have no effect. 46 // Commit without calling Attach() should have no effect.
46 surface->Commit(); 47 surface->Commit();
47 EXPECT_EQ(0, release_buffer_call_count); 48 EXPECT_EQ(0, release_buffer_call_count);
48 49
49 // Attach a null buffer to surface, this should release the previously 50 // Attach a null buffer to surface, this should release the previously
50 // attached buffer. 51 // attached buffer.
51 surface->Attach(nullptr); 52 surface->Attach(nullptr);
52 surface->Commit(); 53 surface->Commit();
54 RunAllPendingInMessageLoop();
Fady Samuel 2016/11/30 16:41:57 Add a comment about why this is necessary.
Alex Z. 2016/11/30 20:00:30 Done.
53 ASSERT_EQ(1, release_buffer_call_count); 55 ASSERT_EQ(1, release_buffer_call_count);
54 } 56 }
55 57
56 TEST_F(SurfaceTest, Damage) { 58 TEST_F(SurfaceTest, Damage) {
57 gfx::Size buffer_size(256, 256); 59 gfx::Size buffer_size(256, 256);
58 std::unique_ptr<Buffer> buffer( 60 std::unique_ptr<Buffer> buffer(
59 new Buffer(exo_test_helper()->CreateGpuMemoryBuffer(buffer_size))); 61 new Buffer(exo_test_helper()->CreateGpuMemoryBuffer(buffer_size)));
60 std::unique_ptr<Surface> surface(new Surface); 62 std::unique_ptr<Surface> surface(new Surface);
61 63
62 // Attach the buffer to the surface. This will update the pending bounds of 64 // Attach the buffer to the surface. This will update the pending bounds of
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 new Buffer(exo_test_helper()->CreateGpuMemoryBuffer(buffer_size))); 242 new Buffer(exo_test_helper()->CreateGpuMemoryBuffer(buffer_size)));
241 std::unique_ptr<Surface> surface(new Surface); 243 std::unique_ptr<Surface> surface(new Surface);
242 244
243 surface->Attach(buffer.get()); 245 surface->Attach(buffer.get());
244 surface->SetAlpha(0.5f); 246 surface->SetAlpha(0.5f);
245 surface->Commit(); 247 surface->Commit();
246 } 248 }
247 249
248 TEST_F(SurfaceTest, Commit) { 250 TEST_F(SurfaceTest, Commit) {
249 std::unique_ptr<Surface> surface(new Surface); 251 std::unique_ptr<Surface> surface(new Surface);
250
251 // Calling commit without a buffer should succeed. 252 // Calling commit without a buffer should succeed.
252 surface->Commit(); 253 surface->Commit();
253 } 254 }
254 255
255 } // namespace 256 } // namespace
256 } // namespace exo 257 } // namespace exo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698