From ba635a643a7598a0d56d58fb3fda77c7990c5c04 Mon Sep 17 00:00:00 2001 From: liyuqian Date: Wed, 14 Nov 2018 15:00:39 -0800 Subject: [PATCH] Add golden tests for Opacity with offset (#24253) See https://github.com/flutter/flutter/issues/23890 --- bin/internal/goldens.version | 2 +- packages/flutter/lib/src/rendering/layer.dart | 1 + .../flutter/test/widgets/opacity_test.dart | 36 +++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/bin/internal/goldens.version b/bin/internal/goldens.version index d489cc13a9..c33523a358 100644 --- a/bin/internal/goldens.version +++ b/bin/internal/goldens.version @@ -1 +1 @@ -8c478bbaf27447f3d612959705b305e7d1293526 +e07cc0cb4fdf912062e71a6fd97cc91478d6e3b9 diff --git a/packages/flutter/lib/src/rendering/layer.dart b/packages/flutter/lib/src/rendering/layer.dart index e4f1f2f54e..7d045e7347 100644 --- a/packages/flutter/lib/src/rendering/layer.dart +++ b/packages/flutter/lib/src/rendering/layer.dart @@ -1142,6 +1142,7 @@ class OpacityLayer extends ContainerLayer { void debugFillProperties(DiagnosticPropertiesBuilder properties) { super.debugFillProperties(properties); properties.add(IntProperty('alpha', alpha)); + properties.add(DiagnosticsProperty('offset', offset)); } } diff --git a/packages/flutter/test/widgets/opacity_test.dart b/packages/flutter/test/widgets/opacity_test.dart index b4fe15b28a..c32aae49be 100644 --- a/packages/flutter/test/widgets/opacity_test.dart +++ b/packages/flutter/test/widgets/opacity_test.dart @@ -2,8 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'dart:io'; + import 'package:flutter/widgets.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:flutter/material.dart'; import '../rendering/mock_canvas.dart'; import 'semantics_tester.dart'; @@ -147,4 +150,37 @@ void main() { semantics.dispose(); }); + + testWidgets('offset is correctly handled in Opacity', (WidgetTester tester) async { + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + body: SingleChildScrollView( + child: RepaintBoundary( + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: List.generate(10, (int index) { + return Opacity( + opacity: 0.5, + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Container( + color: Colors.blue, + height: 50 + ), + ) + ); + }), + ), + ) + ) + ) + ) + ); + await expectLater( + find.byType(RepaintBoundary).first, + matchesGoldenFile('opacity_test.offset.1.png'), + skip: !Platform.isLinux, + ); + }); }