test: tests for sharing links

pull/406/head
RuiAlonso 3 years ago
parent f405f578a7
commit 631916d9fd

@ -5,8 +5,10 @@ import 'package:url_launcher/url_launcher.dart';
Future<void> openLink(String url, {VoidCallback? onError}) async { Future<void> openLink(String url, {VoidCallback? onError}) async {
final uri = Uri.parse(url); final uri = Uri.parse(url);
if (await canLaunchUrl(uri)) { if (await canLaunchUrl(uri)) {
print('canLaunch');
await launchUrl(uri); await launchUrl(uri);
} else if (onError != null) { } else if (onError != null) {
print('onError');
onError(); onError();
} }
} }

@ -3,6 +3,7 @@
import 'dart:async'; import 'dart:async';
import 'package:bloc_test/bloc_test.dart'; import 'package:bloc_test/bloc_test.dart';
import 'package:flame/game.dart';
import 'package:flame/input.dart'; import 'package:flame/input.dart';
import 'package:flame_bloc/flame_bloc.dart'; import 'package:flame_bloc/flame_bloc.dart';
import 'package:flame_forge2d/flame_forge2d.dart'; import 'package:flame_forge2d/flame_forge2d.dart';
@ -23,7 +24,8 @@ import 'package:pinball_ui/pinball_ui.dart';
import 'package:plugin_platform_interface/plugin_platform_interface.dart'; import 'package:plugin_platform_interface/plugin_platform_interface.dart';
import 'package:share_repository/share_repository.dart'; import 'package:share_repository/share_repository.dart';
class _TestGame extends Forge2DGame with HasKeyboardHandlerComponents { class _TestGame extends Forge2DGame
with HasKeyboardHandlerComponents, HasTappables {
final character = theme.DashTheme(); final character = theme.DashTheme();
@override @override
@ -337,13 +339,13 @@ void main() {
); );
final shareRepository = _MockShareRepository(); final shareRepository = _MockShareRepository();
const fakeUrl = 'fakeUrl'; const fakeUrl = 'http://fakeUrl';
when( when(
() => () => shareRepository.shareText( () => shareRepository.shareText(
value: any(), value: any(named: 'value'),
platform: SharePlatform.facebook, platform: SharePlatform.facebook,
), ),
).thenReturn(() => fakeUrl); ).thenReturn(fakeUrl);
when(() => urlLauncher.canLaunch(any())) when(() => urlLauncher.canLaunch(any()))
.thenAnswer((_) async => true); .thenAnswer((_) async => true);
when( when(
@ -368,6 +370,8 @@ void main() {
game.descendants().whereType<FacebookButtonComponent>().first; game.descendants().whereType<FacebookButtonComponent>().first;
facebookButton.onTapDown(_MockTapDownInfo()); facebookButton.onTapDown(_MockTapDownInfo());
await game.ready();
verify( verify(
() => shareRepository.shareText( () => shareRepository.shareText(
value: state.score.toString(), value: state.score.toString(),
@ -403,13 +407,13 @@ void main() {
); );
final shareRepository = _MockShareRepository(); final shareRepository = _MockShareRepository();
const fakeUrl = 'fakeUrl'; const fakeUrl = 'http://fakeUrl';
when( when(
() => () => shareRepository.shareText( () => shareRepository.shareText(
value: any(), value: any(named: 'value'),
platform: SharePlatform.twitter, platform: SharePlatform.twitter,
), ),
).thenReturn(() => fakeUrl); ).thenReturn(fakeUrl);
when(() => urlLauncher.canLaunch(any())) when(() => urlLauncher.canLaunch(any()))
.thenAnswer((_) async => true); .thenAnswer((_) async => true);
when( when(
@ -434,6 +438,8 @@ void main() {
game.descendants().whereType<TwitterButtonComponent>().first; game.descendants().whereType<TwitterButtonComponent>().first;
facebookButton.onTapDown(_MockTapDownInfo()); facebookButton.onTapDown(_MockTapDownInfo());
await game.ready();
verify( verify(
() => shareRepository.shareText( () => shareRepository.shareText(
value: state.score.toString(), value: state.score.toString(),

Loading…
Cancel
Save