import 'package:flutter/rendering.dart'; import 'package:flutter/widgets.dart'; import 'package:test/test.dart'; import 'widget_tester.dart'; void main() { test('Comparing coordinates', () { testWidgets((WidgetTester tester) { Key keyA = new GlobalKey(); Key keyB = new GlobalKey(); tester.pumpWidget( new Stack(<Widget>[ new Positioned( top: 100.0, left: 100.0, child: new SizedBox( key: keyA, width: 10.0, height: 10.0 ) ), new Positioned( left: 100.0, top: 200.0, child: new SizedBox( key: keyB, width: 20.0, height: 10.0 ) ), ]) ); expect((tester.findElementByKey(keyA).renderObject as RenderBox).localToGlobal(const Point(0.0, 0.0)), equals(const Point(100.0, 100.0))); expect((tester.findElementByKey(keyB).renderObject as RenderBox).localToGlobal(const Point(0.0, 0.0)), equals(const Point(100.0, 200.0))); expect((tester.findElementByKey(keyB).renderObject as RenderBox).globalToLocal(const Point(110.0, 205.0)), equals(const Point(10.0, 5.0))); }); }); }