baseline_test.dart 1.9 KB
Newer Older
Ian Hickson's avatar
Ian Hickson committed
1
// Copyright 2014 The Flutter Authors. All rights reserved.
2 3 4
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

5 6
// @dart = 2.8

7 8
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
9
import '../flutter_test_alternative.dart';
10 11 12 13

import 'rendering_tester.dart';

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

    layout(root, phase: EnginePhase.layout);
    expect(childParentData.offset.dx, equals(0.0));
    expect(childParentData.offset.dy, equals(-100.0));
30
    expect(parent.size, equals(const Size(100.0, 0.0)));
31 32

    parent.baseline = 25.0;
33
    pumpFrame(phase: EnginePhase.layout);
34 35
    expect(childParentData.offset.dx, equals(0.0));
    expect(childParentData.offset.dy, equals(-75.0));
36
    expect(parent.size, equals(const Size(100.0, 25.0)));
37 38

    parent.baseline = 90.0;
39
    pumpFrame(phase: EnginePhase.layout);
40 41
    expect(childParentData.offset.dx, equals(0.0));
    expect(childParentData.offset.dy, equals(-10.0));
42
    expect(parent.size, equals(const Size(100.0, 90.0)));
43 44

    parent.baseline = 100.0;
45
    pumpFrame(phase: EnginePhase.layout);
46 47
    expect(childParentData.offset.dx, equals(0.0));
    expect(childParentData.offset.dy, equals(0.0));
48
    expect(parent.size, equals(const Size(100.0, 100.0)));
49 50

    parent.baseline = 110.0;
51
    pumpFrame(phase: EnginePhase.layout);
52 53
    expect(childParentData.offset.dx, equals(0.0));
    expect(childParentData.offset.dy, equals(10.0));
54
    expect(parent.size, equals(const Size(100.0, 110.0)));
55 56
  });
}