diff --git a/packages/flame/lib/src/widgets/sprite_button.dart b/packages/flame/lib/src/widgets/sprite_button.dart index 1e4f44b8cae..9f6c3da3bbf 100644 --- a/packages/flame/lib/src/widgets/sprite_button.dart +++ b/packages/flame/lib/src/widgets/sprite_button.dart @@ -106,26 +106,26 @@ class SpriteButton extends StatelessWidget { ? [ Sprite( (images ?? Flame.images).fromCache(path), - srcSize: srcSize, srcPosition: srcPosition, + srcSize: srcSize, ), Sprite( (images ?? Flame.images).fromCache(pressedPath), - srcSize: srcSize, - srcPosition: srcPosition, + srcPosition: pressedSrcPosition, + srcSize: pressedSrcSize, ), ] : Future.wait([ Sprite.load( path, - srcSize: srcSize, srcPosition: srcPosition, + srcSize: srcSize, images: images, ), Sprite.load( pressedPath, - srcSize: pressedSrcSize, srcPosition: pressedSrcPosition, + srcSize: pressedSrcSize, images: images, ), ]); diff --git a/packages/flame/test/widgets/sprite_button_test.dart b/packages/flame/test/widgets/sprite_button_test.dart index dc367124fe4..25878b606d4 100644 --- a/packages/flame/test/widgets/sprite_button_test.dart +++ b/packages/flame/test/widgets/sprite_button_test.dart @@ -1,17 +1,14 @@ -import 'dart:io'; - import 'package:flame/cache.dart'; import 'package:flame/flame.dart'; import 'package:flame/widgets.dart'; import 'package:flame_test/flame_test.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:mocktail/mocktail.dart'; import 'loading_widget.dart'; -class _MockAssetBundle extends Mock implements AssetBundle {} +class _MockImages extends Mock implements Images {} Future main() async { TestWidgetsFlutterBinding.ensureInitialized(); @@ -47,14 +44,14 @@ Future main() async { const imagePath1 = 'test_path_1'; const imagePath2 = 'test_path_2'; - final bundle = _MockAssetBundle(); - when(() => bundle.load(any())).thenAnswer( - (_) async { - print('CALLED!'); - return generatePNGByteData(); - }, + final mockImageCache = _MockImages(); + + when(() => mockImageCache.load(any())).thenAnswer( + (_) => generateImage(), ); + when(() => mockImageCache.containsKey(any())).thenAnswer((_) => false); + await tester.pumpWidget( SpriteButton.asset( path: imagePath1, @@ -64,7 +61,7 @@ Future main() async { height: 100, label: const SizedBox(), loadingBuilder: (_) => const LoadingWidget(), - images: Images(bundle: bundle), + images: mockImageCache, ), ); @@ -77,7 +74,7 @@ Future main() async { expect(internalButtonFinder, findsNothing); /// loading to be removed - await tester.pumpAndSettle(); + await tester.pump(); expect(futureBuilderFinder, findsOneWidget); expect(loadingWidgetFinder, findsNothing); @@ -86,7 +83,8 @@ Future main() async { ); testWidgets( - 'has no FutureBuilder or LoadingWidget when passed already loaded asset paths', + 'has no FutureBuilder or LoadingWidget when passed already ' + 'loaded asset paths', (tester) async { const imagePath1 = 'test_path_1'; const imagePath2 = 'test_path_2';