flutter/packages/unit/test/rendering/box_test.dart
Adam Barth 4467a268ce Move theme into material.dart
Also, introduce Colors and Typography to hold the material colors and the
typography declarations. Previously we expected clients of these libraries to
import them into a namespace, but that doesn't play nice with re-exporting them
from material.dart.
2015-09-18 09:57:21 -07:00

77 lines
2.3 KiB
Dart

import 'package:sky/material.dart';
import 'package:sky/rendering.dart';
import 'package:test/test.dart';
import 'rendering_tester.dart';
void main() {
test("should size to render view", () {
RenderBox root = new RenderDecoratedBox(
decoration: new BoxDecoration(
backgroundColor: const Color(0xFF00FF00),
gradient: new RadialGradient(
center: Point.origin, radius: 500.0,
colors: [Colors.yellow[500], Colors.blue[500]]),
boxShadow: shadows[3])
);
layout(root);
expect(root.size.width, equals(800.0));
expect(root.size.height, equals(600.0));
});
test('Flex and padding', () {
RenderBox size = new RenderConstrainedBox(
additionalConstraints: new BoxConstraints().tightenHeight(100.0)
);
RenderBox inner = new RenderDecoratedBox(
decoration: new BoxDecoration(
backgroundColor: const Color(0xFF00FF00)
),
child: size
);
RenderBox padding = new RenderPadding(
padding: new EdgeDims.all(50.0),
child: inner
);
RenderBox flex = new RenderFlex(
children: [padding],
direction: FlexDirection.vertical,
alignItems: FlexAlignItems.stretch
);
RenderBox outer = new RenderDecoratedBox(
decoration: new BoxDecoration(
backgroundColor: const Color(0xFF0000FF)
),
child: flex
);
layout(outer);
expect(size.size.width, equals(700.0));
expect(size.size.height, equals(100.0));
expect(inner.size.width, equals(700.0));
expect(inner.size.height, equals(100.0));
expect(padding.size.width, equals(800.0));
expect(padding.size.height, equals(200.0));
expect(flex.size.width, equals(800.0));
expect(flex.size.height, equals(600.0));
expect(outer.size.width, equals(800.0));
expect(outer.size.height, equals(600.0));
});
test("should not have a 0 sized colored Box", () {
var coloredBox = new RenderDecoratedBox(
decoration: new BoxDecoration()
);
var paddingBox = new RenderPadding(padding: const EdgeDims.all(10.0),
child: coloredBox);
RenderBox root = new RenderDecoratedBox(
decoration: new BoxDecoration(),
child: paddingBox
);
layout(root);
expect(coloredBox.size.width, equals(780.0));
expect(coloredBox.size.height, equals(580.0));
});
}