overflow_box_test.dart 1.66 KB
Newer Older
1 2 3 4 5 6 7 8 9
// 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_test/flutter_test.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart';

void main() {
10
  testWidgets('OverflowBox control test', (WidgetTester tester) async {
11
    final GlobalKey inner = new GlobalKey();
12
    await tester.pumpWidget(new Align(
13
      alignment: const Alignment(1.0, 1.0),
14 15 16 17 18 19 20 21 22 23
      child: new SizedBox(
        width: 10.0,
        height: 20.0,
        child: new OverflowBox(
          minWidth: 0.0,
          maxWidth: 100.0,
          minHeight: 0.0,
          maxHeight: 50.0,
          child: new Container(
            key: inner
24 25
          )
        )
26 27
      )
    ));
28
    final RenderBox box = inner.currentContext.findRenderObject();
29
    expect(box.localToGlobal(Offset.zero), equals(const Offset(745.0, 565.0)));
30
    expect(box.size, equals(const Size(100.0, 50.0)));
31
  });
32

33
  testWidgets('OverflowBox implements debugFillProperties', (WidgetTester tester) async {
34
    final DiagnosticPropertiesBuilder builder = new DiagnosticPropertiesBuilder();
35
    const OverflowBox(
36 37 38 39
      minWidth: 1.0,
      maxWidth: 2.0,
      minHeight: 3.0,
      maxHeight: 4.0
40 41
    ).debugFillProperties(builder);
    final List<String> description = builder.properties
42
        .where((DiagnosticsNode n) => !n.isFiltered(DiagnosticLevel.info))
43
        .map((DiagnosticsNode n) => n.toString()).toList();
44
    expect(description, <String>[
45
      'alignment: center',
46 47 48 49 50 51
      'minWidth: 1.0',
      'maxWidth: 2.0',
      'minHeight: 3.0',
      'maxHeight: 4.0',
    ]);
  });
52
}