blob: 253ba3d17d38e8d12b0f768019ff43f81144f7b4 [file] [log] [blame]
// Copyright 2013 The Flutter 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:test/bootstrap/browser.dart';
import 'package:test/test.dart';
import 'package:ui/ui.dart' as ui;
import '../common/test_initialization.dart';
void main() {
internalBootstrapBrowserTest(() => testMain);
}
Future<void> testMain() async {
setUpUnitTests(
emulateTesterEnvironment: false,
setUpTestViewDimensions: false,
);
test('default field values are as documented on api.flutter.dev', () {
final paint = ui.Paint();
expect(paint.blendMode, ui.BlendMode.srcOver);
expect(paint.color, const ui.Color(0xFF000000));
expect(paint.colorFilter, null);
expect(paint.filterQuality, ui.FilterQuality.none);
expect(paint.imageFilter, null);
expect(paint.invertColors, false);
expect(paint.isAntiAlias, true);
expect(paint.maskFilter, null);
expect(paint.shader, null);
expect(paint.strokeCap, ui.StrokeCap.butt);
expect(paint.strokeJoin, ui.StrokeJoin.miter);
expect(paint.strokeMiterLimit, 4.0);
expect(paint.strokeWidth, 0.0);
expect(paint.style, ui.PaintingStyle.fill);
});
test('toString()', () {
final ui.Paint paint = ui.Paint();
paint.blendMode = ui.BlendMode.darken;
paint.style = ui.PaintingStyle.fill;
paint.strokeWidth = 1.2;
paint.strokeCap = ui.StrokeCap.square;
paint.strokeJoin = ui.StrokeJoin.bevel;
paint.isAntiAlias = true;
paint.color = const ui.Color(0xaabbccdd);
paint.invertColors = true;
paint.shader = ui.Gradient.linear(
const ui.Offset(0.1, 0.2),
const ui.Offset(1.5, 1.6),
const <ui.Color>[
ui.Color(0xaabbccdd),
ui.Color(0xbbccddee),
],
<double>[0.3, 0.4],
ui.TileMode.decal,
);
paint.maskFilter = const ui.MaskFilter.blur(ui.BlurStyle.normal, 1.7);
paint.filterQuality = ui.FilterQuality.high;
paint.colorFilter = const ui.ColorFilter.linearToSrgbGamma();
paint.strokeMiterLimit = 1.8;
paint.imageFilter = ui.ImageFilter.blur(
sigmaX: 1.9,
sigmaY: 2.1,
tileMode: ui.TileMode.mirror,
);
expect(
paint.toString(),
'Paint('
'${const ui.Color(0xaabbccdd)}; '
'BlendMode.darken; '
'colorFilter: ColorFilter.linearToSrgbGamma(); '
'maskFilter: MaskFilter.blur(BlurStyle.normal, 1.7); '
'filterQuality: FilterQuality.high; '
'shader: Gradient(); '
'imageFilter: ImageFilter.blur(1.9, 2.1, mirror); '
'invert: true'
')',
);
});
test('.from copies every field', () {
final ui.Paint paint = ui.Paint();
paint.blendMode = ui.BlendMode.darken;
paint.style = ui.PaintingStyle.fill;
paint.strokeWidth = 1.2;
paint.strokeCap = ui.StrokeCap.square;
paint.strokeJoin = ui.StrokeJoin.bevel;
paint.isAntiAlias = true;
paint.color = const ui.Color(0xaabbccdd);
paint.invertColors = true;
paint.shader = ui.Gradient.linear(
const ui.Offset(0.1, 0.2),
const ui.Offset(1.5, 1.6),
const <ui.Color>[
ui.Color(0xaabbccdd),
ui.Color(0xbbccddee),
],
<double>[0.3, 0.4],
ui.TileMode.decal,
);
paint.maskFilter = const ui.MaskFilter.blur(ui.BlurStyle.normal, 1.7);
paint.filterQuality = ui.FilterQuality.high;
paint.colorFilter = const ui.ColorFilter.linearToSrgbGamma();
paint.strokeMiterLimit = 1.8;
paint.imageFilter = ui.ImageFilter.blur(
sigmaX: 1.9,
sigmaY: 2.1,
tileMode: ui.TileMode.mirror,
);
final ui.Paint copy = ui.Paint.from(paint);
expect(copy.blendMode, paint.blendMode);
expect(copy.style, paint.style);
expect(copy.strokeWidth, paint.strokeWidth);
expect(copy.strokeCap, paint.strokeCap);
expect(copy.strokeJoin, paint.strokeJoin);
expect(copy.isAntiAlias, paint.isAntiAlias);
expect(copy.color, paint.color);
expect(copy.invertColors, paint.invertColors);
expect(copy.shader, paint.shader);
expect(copy.maskFilter, paint.maskFilter);
expect(copy.filterQuality, paint.filterQuality);
expect(copy.colorFilter, paint.colorFilter);
expect(copy.strokeMiterLimit, paint.strokeMiterLimit);
expect(copy.imageFilter, paint.imageFilter);
});
}