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:sky/rendering.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
......
...@@ -2,17 +2,6 @@ import 'dart:sky' as sky; ...@@ -2,17 +2,6 @@ import 'dart:sky' as sky;
import 'package:sky/rendering.dart'; import 'package:sky/rendering.dart';
import 'package:sky/widgets.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(); typedef Widget WidgetBuilder();
class TestApp extends App { class TestApp extends App {
...@@ -57,12 +46,10 @@ class TestGestureEvent extends sky.GestureEvent { ...@@ -57,12 +46,10 @@ class TestGestureEvent extends sky.GestureEvent {
class WidgetTester { class WidgetTester {
WidgetTester() { WidgetTester() {
_app = new TestApp(); _app = new TestApp();
_renderView = new TestRenderView(); runApp(_app);
runApp(_app, renderViewOverride: _renderView);
} }
TestApp _app; TestApp _app;
RenderView _renderView;
List<Layer> _layers(Layer layer) { List<Layer> _layers(Layer layer) {
List<Layer> result = [layer]; List<Layer> result = [layer];
...@@ -76,7 +63,7 @@ class WidgetTester { ...@@ -76,7 +63,7 @@ class WidgetTester {
} }
return result; return result;
} }
List<Layer> get layers => _layers(_renderView.layer); List<Layer> get layers => _layers(SkyBinding.instance.renderView.layer);
void walkWidgets(WidgetTreeWalker walker) { void walkWidgets(WidgetTreeWalker walker) {
void walk(Widget widget) { void walk(Widget widget) {
...@@ -125,17 +112,7 @@ class WidgetTester { ...@@ -125,17 +112,7 @@ class WidgetTester {
void pumpFrame(WidgetBuilder builder) { void pumpFrame(WidgetBuilder builder) {
_app.builder = builder; _app.builder = builder;
Component.flushBuild(); SkyBinding.instance.beginFrame(0.0);
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();
} }
} }
...@@ -9,12 +9,12 @@ void main() { ...@@ -9,12 +9,12 @@ void main() {
test('LinearProgressIndicator changes when its value changes', () { test('LinearProgressIndicator changes when its value changes', () {
WidgetTester tester = new WidgetTester(); WidgetTester tester = new WidgetTester();
tester.pumpPaintFrame(() { tester.pumpFrame(() {
return new Block([new LinearProgressIndicator(value: 0.0)]); return new Block([new LinearProgressIndicator(value: 0.0)]);
}); });
List<Layer> layers1 = tester.layers; List<Layer> layers1 = tester.layers;
tester.pumpPaintFrame(() { tester.pumpFrame(() {
return new Block([new LinearProgressIndicator(value: 0.5)]); return new Block([new LinearProgressIndicator(value: 0.5)]);
}); });
List<Layer> layers2 = tester.layers; 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