mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

- force the time dilation to 1.0 for the Widget tests, so that a local change doesn't break all the tests during development. - add missing license block to all the files. - set ui.window.onBeginFrame to null when you use WidgetTester, so that the engine doesn't trigger any confusing frames after our fake frames.
87 lines
3.1 KiB
Dart
87 lines
3.1 KiB
Dart
// Copyright 2015 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
import 'package:flutter/rendering.dart';
|
|
import 'package:flutter/widgets.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
import 'widget_tester.dart';
|
|
|
|
class TestMultiChildLayoutDelegate extends MultiChildLayoutDelegate {
|
|
BoxConstraints getSizeConstraints;
|
|
|
|
Size getSize(BoxConstraints constraints) {
|
|
getSizeConstraints = constraints;
|
|
return new Size(200.0, 300.0);
|
|
}
|
|
|
|
Size performLayoutSize;
|
|
BoxConstraints performLayoutConstraints;
|
|
Size performLayoutSize0;
|
|
Size performLayoutSize1;
|
|
bool performLayoutIsChild;
|
|
|
|
void performLayout(Size size, BoxConstraints constraints) {
|
|
expect(() {
|
|
performLayoutSize = size;
|
|
performLayoutConstraints = constraints;
|
|
performLayoutSize0 = layoutChild(0, constraints);
|
|
performLayoutSize1 = layoutChild(1, constraints);
|
|
performLayoutIsChild = isChild('fred');
|
|
}, returnsNormally);
|
|
}
|
|
}
|
|
|
|
void main() {
|
|
test('Control test for CustomMultiChildLayout', () {
|
|
testWidgets((WidgetTester tester) {
|
|
TestMultiChildLayoutDelegate delegate = new TestMultiChildLayoutDelegate();
|
|
tester.pumpWidget(new Center(
|
|
child: new CustomMultiChildLayout([
|
|
new LayoutId(id: 0, child: new Container(width: 150.0, height: 100.0)),
|
|
new LayoutId(id: 1, child: new Container(width: 100.0, height: 200.0)),
|
|
],
|
|
delegate: delegate
|
|
)
|
|
));
|
|
|
|
expect(delegate.getSizeConstraints.minWidth, 0.0);
|
|
expect(delegate.getSizeConstraints.maxWidth, 800.0);
|
|
expect(delegate.getSizeConstraints.minHeight, 0.0);
|
|
expect(delegate.getSizeConstraints.maxHeight, 600.0);
|
|
|
|
expect(delegate.performLayoutSize.width, 200.0);
|
|
expect(delegate.performLayoutSize.height, 300.0);
|
|
expect(delegate.performLayoutConstraints.minWidth, 0.0);
|
|
expect(delegate.performLayoutConstraints.maxWidth, 800.0);
|
|
expect(delegate.performLayoutConstraints.minHeight, 0.0);
|
|
expect(delegate.performLayoutConstraints.maxHeight, 600.0);
|
|
expect(delegate.performLayoutSize0.width, 150.0);
|
|
expect(delegate.performLayoutSize0.height, 100.0);
|
|
expect(delegate.performLayoutSize1.width, 100.0);
|
|
expect(delegate.performLayoutSize1.height, 200.0);
|
|
expect(delegate.performLayoutIsChild, false);
|
|
});
|
|
});
|
|
|
|
test('Nested CustomMultiChildLayouts', () {
|
|
testWidgets((WidgetTester tester) {
|
|
TestMultiChildLayoutDelegate delegate = new TestMultiChildLayoutDelegate();
|
|
tester.pumpWidget(new Center(
|
|
child: new CustomMultiChildLayout([
|
|
new LayoutId(
|
|
id: 0,
|
|
child: new CustomMultiChildLayout([
|
|
new LayoutId(id: 0, child: new Container(width: 150.0, height: 100.0)),
|
|
new LayoutId(id: 1, child: new Container(width: 100.0, height: 200.0)),
|
|
], delegate: delegate)
|
|
),
|
|
new LayoutId(id: 1, child: new Container(width: 100.0, height: 200.0)),
|
|
], delegate: delegate)
|
|
));
|
|
|
|
});
|
|
});
|
|
}
|