| // 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. |
| |
| // @dart = 2.6 |
| import 'package:test/bootstrap/browser.dart'; |
| import 'package:test/test.dart'; |
| |
| import 'package:ui/src/engine.dart'; |
| import 'package:ui/ui.dart' as ui; |
| |
| import 'common.dart'; |
| |
| void main() { |
| internalBootstrapBrowserTest(() => testMain); |
| } |
| |
| void testMain() { |
| group('$LayerScene', () { |
| setUpAll(() async { |
| await ui.webOnlyInitializePlatform(); |
| }); |
| |
| test('toImage returns an image', () async { |
| final ui.PictureRecorder recorder = ui.PictureRecorder(); |
| expect(recorder, isA<CkPictureRecorder>()); |
| |
| final ui.Canvas canvas = ui.Canvas(recorder); |
| expect(canvas, isA<CanvasKitCanvas>()); |
| |
| final ui.Paint paint = ui.Paint(); |
| expect(paint, isA<CkPaint>()); |
| paint.color = ui.Color.fromARGB(255, 255, 0, 0); |
| |
| // Draw a red circle. |
| canvas.drawCircle(ui.Offset(20, 20), 10, paint); |
| |
| final ui.Picture picture = recorder.endRecording(); |
| expect(picture, isA<CkPicture>()); |
| |
| final ui.SceneBuilder builder = ui.SceneBuilder(); |
| expect(builder, isA<LayerSceneBuilder>()); |
| |
| builder.pushOffset(0, 0); |
| builder.addPicture(ui.Offset(0, 0), picture); |
| |
| final ui.Scene scene = builder.build(); |
| |
| final ui.Image sceneImage = await scene.toImage(100, 100); |
| expect(sceneImage, isA<CkImage>()); |
| }); |
| |
| test('pushColorFilter does not throw', () async { |
| final ui.SceneBuilder builder = ui.SceneBuilder(); |
| expect(builder, isA<LayerSceneBuilder>()); |
| |
| builder.pushOffset(0, 0); |
| builder.pushColorFilter(ui.ColorFilter.srgbToLinearGamma()); |
| |
| final ui.Scene scene = builder.build(); |
| expect(scene, isNotNull); |
| }); |
| // TODO: https://github.com/flutter/flutter/issues/60040 |
| }, skip: isIosSafari); |
| } |