baseline_test.dart 1.88 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
// 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/material.dart';
import 'package:flutter/rendering.dart';
import 'package:test/test.dart';

import 'rendering_tester.dart';

void main() {
  test("RenderBaseline", () {
    RenderBaseline parent;
    RenderSizedBox child;
15
    final RenderBox root = new RenderPositionedBox(
16 17 18 19
      alignment: FractionalOffset.topLeft,
      child: parent = new RenderBaseline(
        baseline: 0.0,
        baselineType: TextBaseline.alphabetic,
20
        child: child = new RenderSizedBox(const Size(100.0, 100.0))
21 22
      )
    );
23
    final BoxParentData childParentData = child.parentData;
24 25 26 27

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

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

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

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

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