blob: d87bc6e0d8e4631b0e0ee5bb5c93b032fbc8bd27 [file] [log] [blame]
import 'dart:sky' as sky;
import 'package:sky/rendering.dart';
import 'package:test/test.dart';
import 'layout_utils.dart';
class SquareImage implements sky.Image {
int get width => 10;
int get height => 10;
}
class WideImage implements sky.Image {
int get width => 20;
int get height => 10;
}
class TallImage implements sky.Image {
int get width => 10;
int get height => 20;
}
void main() {
test('Image sizing', () {
RenderImage image;
image = new RenderImage(image: new SquareImage());
layout(image,
constraints: new BoxConstraints(
minWidth: 25.0,
minHeight: 25.0,
maxWidth: 100.0,
maxHeight: 100.0));
expect(image.size.width, equals(25.0));
expect(image.size.height, equals(25.0));
image = new RenderImage(image: new WideImage());
layout(image,
constraints: new BoxConstraints(
minWidth: 5.0,
minHeight: 30.0,
maxWidth: 100.0,
maxHeight: 100.0));
expect(image.size.width, equals(60.0));
expect(image.size.height, equals(30.0));
image = new RenderImage(image: new TallImage());
layout(image,
constraints: new BoxConstraints(
minWidth: 50.0,
minHeight: 5.0,
maxWidth: 75.0,
maxHeight: 75.0));
expect(image.size.width, equals(50.0));
expect(image.size.height, equals(75.0));
image = new RenderImage(image: new WideImage());
layout(image,
constraints: new BoxConstraints(
minWidth: 5.0,
minHeight: 5.0,
maxWidth: 100.0,
maxHeight: 100.0));
expect(image.size.width, equals(20.0));
expect(image.size.height, equals(10.0));
image = new RenderImage(image: new WideImage());
layout(image,
constraints: new BoxConstraints(
minWidth: 5.0,
minHeight: 5.0,
maxWidth: 16.0,
maxHeight: 16.0));
expect(image.size.width, equals(16.0));
expect(image.size.height, equals(8.0));
image = new RenderImage(image: new TallImage());
layout(image,
constraints: new BoxConstraints(
minWidth: 5.0,
minHeight: 5.0,
maxWidth: 16.0,
maxHeight: 16.0));
expect(image.size.width, equals(8.0));
expect(image.size.height, equals(16.0));
image = new RenderImage(image: new SquareImage());
layout(image,
constraints: new BoxConstraints(
minWidth: 4.0,
minHeight: 4.0,
maxWidth: 8.0,
maxHeight: 8.0));
expect(image.size.width, equals(8.0));
expect(image.size.height, equals(8.0));
image = new RenderImage(image: new WideImage());
layout(image,
constraints: new BoxConstraints(
minWidth: 20.0,
minHeight: 20.0,
maxWidth: 30.0,
maxHeight: 30.0));
expect(image.size.width, equals(30.0));
expect(image.size.height, equals(20.0));
image = new RenderImage(image: new TallImage());
layout(image,
constraints: new BoxConstraints(
minWidth: 20.0,
minHeight: 20.0,
maxWidth: 30.0,
maxHeight: 30.0));
expect(image.size.width, equals(20.0));
expect(image.size.height, equals(30.0));
});
test('Null image sizing', () {
RenderImage image;
image = new RenderImage();
layout(image,
constraints: new BoxConstraints(
minWidth: 25.0,
minHeight: 25.0,
maxWidth: 100.0,
maxHeight: 100.0));
expect(image.size.width, equals(25.0));
expect(image.size.height, equals(25.0));
image = new RenderImage(width: 50.0);
layout(image,
constraints: new BoxConstraints(
minWidth: 25.0,
minHeight: 25.0,
maxWidth: 100.0,
maxHeight: 100.0));
expect(image.size.width, equals(50.0));
expect(image.size.height, equals(25.0));
image = new RenderImage(height: 50.0);
layout(image,
constraints: new BoxConstraints(
minWidth: 25.0,
minHeight: 25.0,
maxWidth: 100.0,
maxHeight: 100.0));
expect(image.size.width, equals(25.0));
expect(image.size.height, equals(50.0));
image = new RenderImage(width: 100.0, height: 100.0);
layout(image,
constraints: new BoxConstraints(
minWidth: 25.0,
minHeight: 25.0,
maxWidth: 75.0,
maxHeight: 75.0));
expect(image.size.width, equals(75.0));
expect(image.size.height, equals(75.0));
});
}