Commit d8fdccc5 authored by Adam Barth's avatar Adam Barth

Merge pull request #875 from abarth/merge_pump_frame

Merge pumpPaintFrame and pumpFrame in WidgetTester
parents 56508d41 c405631c
import 'dart:sky' as sky;
import 'package:sky/rendering.dart';
import 'package:test/test.dart';
......
......@@ -2,17 +2,6 @@ import 'dart:sky' as sky;
import 'package:sky/rendering.dart';
import 'package:sky/widgets.dart';
const Size _kTestViewSize = const Size(800.0, 600.0);
class TestRenderView extends RenderView {
TestRenderView({ RenderBox child }) : super(child: child) {
attach();
rootConstraints = new ViewConstraints(size: _kTestViewSize);
scheduleInitialLayout();
scheduleInitialPaint(new TransformLayer(transform: new Matrix4.identity()));
}
}
typedef Widget WidgetBuilder();
class TestApp extends App {
......@@ -57,12 +46,10 @@ class TestGestureEvent extends sky.GestureEvent {
class WidgetTester {
WidgetTester() {
_app = new TestApp();
_renderView = new TestRenderView();
runApp(_app, renderViewOverride: _renderView);
runApp(_app);
}
TestApp _app;
RenderView _renderView;
List<Layer> _layers(Layer layer) {
List<Layer> result = [layer];
......@@ -76,7 +63,7 @@ class WidgetTester {
}
return result;
}
List<Layer> get layers => _layers(_renderView.layer);
List<Layer> get layers => _layers(SkyBinding.instance.renderView.layer);
void walkWidgets(WidgetTreeWalker walker) {
void walk(Widget widget) {
......@@ -125,17 +112,7 @@ class WidgetTester {
void pumpFrame(WidgetBuilder builder) {
_app.builder = builder;
Component.flushBuild();
RenderObject.flushLayout();
}
// TODO(hansmuller): just having one pumpFrame() fn would be preferable.
void pumpPaintFrame(WidgetBuilder builder) {
_app.builder = builder;
Component.flushBuild();
RenderObject.flushLayout();
_renderView.updateCompositingBits();
RenderObject.flushPaint();
SkyBinding.instance.beginFrame(0.0);
}
}
......@@ -9,12 +9,12 @@ void main() {
test('LinearProgressIndicator changes when its value changes', () {
WidgetTester tester = new WidgetTester();
tester.pumpPaintFrame(() {
tester.pumpFrame(() {
return new Block([new LinearProgressIndicator(value: 0.0)]);
});
List<Layer> layers1 = tester.layers;
tester.pumpPaintFrame(() {
tester.pumpFrame(() {
return new Block([new LinearProgressIndicator(value: 0.5)]);
});
List<Layer> layers2 = tester.layers;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment