diff --git a/packages/firebase_ui_auth/example/test_driver/google_sign_in_test.dart b/packages/firebase_ui_auth/example/test_driver/google_sign_in_test.dart index 35e91e4e24fd..e2a07a5a25ff 100644 --- a/packages/firebase_ui_auth/example/test_driver/google_sign_in_test.dart +++ b/packages/firebase_ui_auth/example/test_driver/google_sign_in_test.dart @@ -88,6 +88,20 @@ void main() async { expect(user.displayName, 'Test User'); expect(user.email, 'test@test.com'); }); + + testWidgets('works standalone', (tester) async { + await render( + tester, + const GoogleSignInButton( + loadingIndicator: CircularProgressIndicator(), + clientId: 'test', + ), + ); + + final button = find.byType(GoogleSignInButton); + await tester.tap(button); + await tester.pump(); + }); }, skip: !provider.supportsPlatform(defaultTargetPlatform), ); diff --git a/packages/firebase_ui_oauth/lib/src/oauth_provider_button_base.dart b/packages/firebase_ui_oauth/lib/src/oauth_provider_button_base.dart index c38785c8ef58..107bbc52cb64 100644 --- a/packages/firebase_ui_oauth/lib/src/oauth_provider_button_base.dart +++ b/packages/firebase_ui_oauth/lib/src/oauth_provider_button_base.dart @@ -142,6 +142,14 @@ class _OAuthProviderButtonBaseState extends State double get _height => widget.size + widget._padding * 2; late bool isLoading = widget.isLoading; + @override + void initState() { + super.initState(); + + widget.provider.auth = widget.auth ?? FirebaseAuth.instance; + widget.provider.authListener = this; + } + void _signIn() { final platform = Theme.of(context).platform; diff --git a/packages/firebase_ui_oauth/test/flutterfire_ui_oauth_test.dart b/packages/firebase_ui_oauth/test/flutterfire_ui_oauth_test.dart index 7135cb153f8b..3f737029c20e 100644 --- a/packages/firebase_ui_oauth/test/flutterfire_ui_oauth_test.dart +++ b/packages/firebase_ui_oauth/test/flutterfire_ui_oauth_test.dart @@ -1,3 +1,4 @@ +import 'package:firebase_auth/firebase_auth.dart' show FirebaseAuth; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_test/flutter_test.dart'; @@ -43,6 +44,8 @@ class FakeOAuthProvider extends OAuthProvider { } } +class FakeAuth extends Fake implements FirebaseAuth {} + void main() { final provider = FakeOAuthProvider(); @@ -54,6 +57,7 @@ void main() { provider: provider, label: 'Sign in with Google', loadingIndicator: const CircularProgressIndicator(), + auth: FakeAuth(), ); return DefaultAssetBundle(