baseline_test.dart 1.73 KB
Newer Older
Ian Hickson's avatar
Ian Hickson committed
1
// Copyright 2014 The Flutter Authors. All rights reserved.
2 3 4 5
// 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';
6
import 'package:flutter_test/flutter_test.dart';
7 8 9 10

import 'rendering_tester.dart';

void main() {
Ian Hickson's avatar
Ian Hickson committed
11
  test('RenderBaseline', () {
12 13
    RenderBaseline parent;
    RenderSizedBox child;
14
    final RenderBox root = RenderPositionedBox(
15
      alignment: Alignment.topLeft,
16
      child: parent = RenderBaseline(
17 18
        baseline: 0.0,
        baselineType: TextBaseline.alphabetic,
19 20
        child: child = RenderSizedBox(const Size(100.0, 100.0)),
      ),
21
    );
22
    final BoxParentData childParentData = child.parentData! as BoxParentData;
23

24
    layout(root);
25 26
    expect(childParentData.offset.dx, equals(0.0));
    expect(childParentData.offset.dy, equals(-100.0));
27
    expect(parent.size, equals(const Size(100.0, 0.0)));
28 29

    parent.baseline = 25.0;
30
    pumpFrame();
31 32
    expect(childParentData.offset.dx, equals(0.0));
    expect(childParentData.offset.dy, equals(-75.0));
33
    expect(parent.size, equals(const Size(100.0, 25.0)));
34 35

    parent.baseline = 90.0;
36
    pumpFrame();
37 38
    expect(childParentData.offset.dx, equals(0.0));
    expect(childParentData.offset.dy, equals(-10.0));
39
    expect(parent.size, equals(const Size(100.0, 90.0)));
40 41

    parent.baseline = 100.0;
42
    pumpFrame();
43 44
    expect(childParentData.offset.dx, equals(0.0));
    expect(childParentData.offset.dy, equals(0.0));
45
    expect(parent.size, equals(const Size(100.0, 100.0)));
46 47

    parent.baseline = 110.0;
48
    pumpFrame();
49 50
    expect(childParentData.offset.dx, equals(0.0));
    expect(childParentData.offset.dy, equals(10.0));
51
    expect(parent.size, equals(const Size(100.0, 110.0)));
52 53
  });
}