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.
159 lines
4.5 KiB
Dart
159 lines
4.5 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/widgets.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
import 'widget_tester.dart';
|
|
|
|
void main() {
|
|
test('Transform origin', () {
|
|
testWidgets((WidgetTester tester) {
|
|
bool didReceiveTap = false;
|
|
tester.pumpWidget(
|
|
new Stack(<Widget>[
|
|
new Positioned(
|
|
top: 100.0,
|
|
left: 100.0,
|
|
child: new Container(
|
|
width: 100.0,
|
|
height: 100.0,
|
|
decoration: new BoxDecoration(
|
|
backgroundColor: new Color(0xFF0000FF)
|
|
)
|
|
)
|
|
),
|
|
new Positioned(
|
|
top: 100.0,
|
|
left: 100.0,
|
|
child: new Container(
|
|
width: 100.0,
|
|
height: 100.0,
|
|
child: new Transform(
|
|
transform: new Matrix4.identity().scale(0.5, 0.5),
|
|
origin: new Offset(100.0, 50.0),
|
|
child: new GestureDetector(
|
|
onTap: () {
|
|
didReceiveTap = true;
|
|
},
|
|
child: new Container(
|
|
decoration: new BoxDecoration(
|
|
backgroundColor: new Color(0xFF00FFFF)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
])
|
|
);
|
|
|
|
expect(didReceiveTap, isFalse);
|
|
tester.tapAt(new Point(110.0, 110.0));
|
|
expect(didReceiveTap, isFalse);
|
|
tester.tapAt(new Point(190.0, 150.0));
|
|
expect(didReceiveTap, isTrue);
|
|
});
|
|
});
|
|
|
|
test('Transform alignment', () {
|
|
testWidgets((WidgetTester tester) {
|
|
bool didReceiveTap = false;
|
|
tester.pumpWidget(
|
|
new Stack(<Widget>[
|
|
new Positioned(
|
|
top: 100.0,
|
|
left: 100.0,
|
|
child: new Container(
|
|
width: 100.0,
|
|
height: 100.0,
|
|
decoration: new BoxDecoration(
|
|
backgroundColor: new Color(0xFF0000FF)
|
|
)
|
|
)
|
|
),
|
|
new Positioned(
|
|
top: 100.0,
|
|
left: 100.0,
|
|
child: new Container(
|
|
width: 100.0,
|
|
height: 100.0,
|
|
child: new Transform(
|
|
transform: new Matrix4.identity().scale(0.5, 0.5),
|
|
alignment: new FractionalOffset(1.0, 0.5),
|
|
child: new GestureDetector(
|
|
onTap: () {
|
|
didReceiveTap = true;
|
|
},
|
|
child: new Container(
|
|
decoration: new BoxDecoration(
|
|
backgroundColor: new Color(0xFF00FFFF)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
])
|
|
);
|
|
|
|
expect(didReceiveTap, isFalse);
|
|
tester.tapAt(new Point(110.0, 110.0));
|
|
expect(didReceiveTap, isFalse);
|
|
tester.tapAt(new Point(190.0, 150.0));
|
|
expect(didReceiveTap, isTrue);
|
|
});
|
|
});
|
|
|
|
test('Transform offset + alignment', () {
|
|
testWidgets((WidgetTester tester) {
|
|
bool didReceiveTap = false;
|
|
tester.pumpWidget(
|
|
new Stack(<Widget>[
|
|
new Positioned(
|
|
top: 100.0,
|
|
left: 100.0,
|
|
child: new Container(
|
|
width: 100.0,
|
|
height: 100.0,
|
|
decoration: new BoxDecoration(
|
|
backgroundColor: new Color(0xFF0000FF)
|
|
)
|
|
)
|
|
),
|
|
new Positioned(
|
|
top: 100.0,
|
|
left: 100.0,
|
|
child: new Container(
|
|
width: 100.0,
|
|
height: 100.0,
|
|
child: new Transform(
|
|
transform: new Matrix4.identity().scale(0.5, 0.5),
|
|
origin: new Offset(100.0, 0.0),
|
|
alignment: new FractionalOffset(0.0, 0.5),
|
|
child: new GestureDetector(
|
|
onTap: () {
|
|
didReceiveTap = true;
|
|
},
|
|
child: new Container(
|
|
decoration: new BoxDecoration(
|
|
backgroundColor: new Color(0xFF00FFFF)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
])
|
|
);
|
|
|
|
expect(didReceiveTap, isFalse);
|
|
tester.tapAt(new Point(110.0, 110.0));
|
|
expect(didReceiveTap, isFalse);
|
|
tester.tapAt(new Point(190.0, 150.0));
|
|
expect(didReceiveTap, isTrue);
|
|
});
|
|
});
|
|
}
|