51 auto layer = std::make_shared<ContainerLayer>();
52 auto layer_tree = BuildLayerTree(layer);
53 layer_tree->Preroll(frame());
54 EXPECT_EQ(layer->paint_bounds(),
DlRect());
55 EXPECT_TRUE(layer->is_empty());
57 layer_tree->Paint(frame());
63 auto mock_layer = std::make_shared<MockLayer>(child_path);
64 auto layer = std::make_shared<ContainerLayer>();
65 layer->Add(mock_layer);
67 auto layer_tree = BuildLayerTree(layer);
68 EXPECT_EQ(mock_layer->paint_bounds(),
DlRect());
69 EXPECT_EQ(layer->paint_bounds(),
DlRect());
70 EXPECT_TRUE(mock_layer->is_empty());
71 EXPECT_TRUE(layer->is_empty());
73 layer_tree->Paint(frame());
76 auto expected_dl = expected_builder.
Build();
85 auto mock_layer = std::make_shared<MockLayer>(child_path, child_paint);
86 auto layer = std::make_shared<ContainerLayer>();
87 layer->Add(mock_layer);
89 auto layer_tree = BuildLayerTree(layer);
90 layer_tree->Preroll(frame());
91 EXPECT_EQ(mock_layer->paint_bounds(), child_bounds);
92 EXPECT_EQ(layer->paint_bounds(), mock_layer->paint_bounds());
93 EXPECT_FALSE(mock_layer->is_empty());
94 EXPECT_FALSE(layer->is_empty());
95 EXPECT_EQ(mock_layer->parent_matrix(), root_transform());
97 layer_tree->Paint(frame());
100 expected_builder.
DrawPath(child_path, child_paint);
101 auto expected_dl = expected_builder.
Build();
111 auto mock_layer1 = std::make_shared<MockLayer>(child_path1, child_paint1);
112 mock_layer1->set_fake_has_platform_view(
true);
113 auto mock_layer2 = std::make_shared<MockLayer>(child_path2, child_paint2);
114 auto layer = std::make_shared<ContainerLayer>();
115 layer->Add(mock_layer1);
116 layer->Add(mock_layer2);
118 const DlRect expected_total_bounds =
120 auto layer_tree = BuildLayerTree(layer);
121 layer_tree->Preroll(frame());
122 EXPECT_EQ(mock_layer1->paint_bounds(), child_path1.
GetBounds());
123 EXPECT_EQ(mock_layer2->paint_bounds(), child_path2.
GetBounds());
124 EXPECT_EQ(layer->paint_bounds(), expected_total_bounds);
125 EXPECT_FALSE(mock_layer1->is_empty());
126 EXPECT_FALSE(mock_layer2->is_empty());
127 EXPECT_FALSE(layer->is_empty());
128 EXPECT_EQ(mock_layer1->parent_matrix(), root_transform());
129 EXPECT_EQ(mock_layer2->parent_matrix(), root_transform());
130 EXPECT_EQ(mock_layer1->parent_cull_rect(),
kGiantRect);
131 EXPECT_EQ(mock_layer2->parent_cull_rect(),
134 layer_tree->Paint(frame());
137 expected_builder.
DrawPath(child_path1, child_paint1);
138 expected_builder.
DrawPath(child_path2, child_paint2);
139 auto expected_dl = expected_builder.
Build();
148 auto mock_layer1 = std::make_shared<MockLayer>(child_path1, child_paint1);
149 auto mock_layer2 = std::make_shared<MockLayer>(
DlPath(), child_paint2);
150 auto layer = std::make_shared<ContainerLayer>();
151 layer->Add(mock_layer1);
152 layer->Add(mock_layer2);
154 auto layer_tree = BuildLayerTree(layer);
155 layer_tree->Preroll(frame());
156 EXPECT_EQ(mock_layer1->paint_bounds(), child_path1.
GetBounds());
157 EXPECT_EQ(mock_layer2->paint_bounds(),
DlPath().GetBounds());
158 EXPECT_EQ(layer->paint_bounds(), child_path1.
GetBounds());
159 EXPECT_FALSE(mock_layer1->is_empty());
160 EXPECT_TRUE(mock_layer2->is_empty());
161 EXPECT_FALSE(layer->is_empty());
162 EXPECT_EQ(mock_layer1->parent_matrix(), root_transform());
163 EXPECT_EQ(mock_layer2->parent_matrix(), root_transform());
164 EXPECT_EQ(mock_layer1->parent_cull_rect(),
kGiantRect);
165 EXPECT_EQ(mock_layer2->parent_cull_rect(),
kGiantRect);
167 layer_tree->Paint(frame());
170 expected_builder.
DrawPath(child_path1, child_paint1);
171 auto expected_dl = expected_builder.
Build();
181 auto mock_layer1 = std::make_shared<MockLayer>(child_path1, child_paint1);
182 auto mock_layer2 = std::make_shared<MockLayer>(child_path2, child_paint2);
183 auto layer = std::make_shared<ContainerLayer>();
184 layer->Add(mock_layer1);
185 layer->Add(mock_layer2);
187 DlRect expected_total_bounds =
189 auto layer_tree = BuildLayerTree(layer);
190 layer_tree->Preroll(frame());
191 EXPECT_EQ(mock_layer1->paint_bounds(), child_path1.
GetBounds());
192 EXPECT_EQ(mock_layer2->paint_bounds(), child_path2.
GetBounds());
193 EXPECT_EQ(layer->paint_bounds(), expected_total_bounds);
194 EXPECT_FALSE(mock_layer1->is_empty());
195 EXPECT_FALSE(mock_layer2->is_empty());
196 EXPECT_FALSE(layer->is_empty());
197 EXPECT_EQ(mock_layer1->parent_matrix(), root_transform());
198 EXPECT_EQ(mock_layer2->parent_matrix(), root_transform());
199 EXPECT_EQ(mock_layer1->parent_cull_rect(),
kGiantRect);
200 EXPECT_EQ(mock_layer2->parent_cull_rect(),
kGiantRect);
202 layer_tree->Paint(frame());
205 expected_builder.
DrawPath(child_path1, child_paint1);
206 expected_builder.
DrawPath(child_path2, child_paint2);
207 auto expected_dl = expected_builder.
Build();
217 std::shared_ptr<TextureRegistry> mock_registry;
219 auto expect_defaults = [&state_stack, &mock_raster_time, &mock_ui_time,
221 EXPECT_EQ(context.raster_cache,
nullptr);
222 EXPECT_EQ(context.gr_context,
nullptr);
223 EXPECT_EQ(context.view_embedder,
nullptr);
224 EXPECT_EQ(&context.state_stack, &state_stack);
225 EXPECT_EQ(context.dst_color_space,
nullptr);
226 EXPECT_EQ(context.state_stack.device_cull_rect(),
kGiantRect);
227 EXPECT_EQ(context.state_stack.matrix(),
DlMatrix());
228 EXPECT_TRUE(context.state_stack.matrix().IsIdentity());
229 EXPECT_EQ(context.surface_needs_readback,
false);
231 EXPECT_EQ(&context.raster_time, &mock_raster_time);
232 EXPECT_EQ(&context.ui_time, &mock_ui_time);
233 EXPECT_EQ(context.texture_registry.get(), mock_registry.get());
235 EXPECT_EQ(context.has_platform_view,
false);
236 EXPECT_EQ(context.has_texture_layer,
false);
238 EXPECT_EQ(context.renderable_state_flags, 0);
239 EXPECT_EQ(context.raster_cached_entries,
nullptr);
245 .raster_time = mock_raster_time,
246 .ui_time = mock_ui_time,
247 .texture_registry = mock_registry,
249 expect_defaults(context);
256 std::shared_ptr<TextureRegistry> mock_registry;
258 auto expect_defaults = [&state_stack, &mock_raster_time, &mock_ui_time,
260 EXPECT_EQ(&context.state_stack, &state_stack);
261 EXPECT_EQ(context.canvas,
nullptr);
262 EXPECT_EQ(context.gr_context,
nullptr);
263 EXPECT_EQ(context.view_embedder,
nullptr);
264 EXPECT_EQ(&context.raster_time, &mock_raster_time);
265 EXPECT_EQ(&context.ui_time, &mock_ui_time);
266 EXPECT_EQ(context.texture_registry.get(), mock_registry.get());
267 EXPECT_EQ(context.raster_cache,
nullptr);
273 .raster_time = mock_raster_time,
274 .ui_time = mock_ui_time,
275 .texture_registry = mock_registry,
277 expect_defaults(context);
LayerStateStack & state_stack
LayerStateStack & state_stack