blob: c4c7939e24158e5ff10afac0c45c3c301cddf017 [file] [log] [blame]
// 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.
import 'package:extension_google_sign_in_as_googleapis_auth/extension_google_sign_in_as_googleapis_auth.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:google_sign_in/google_sign_in.dart';
import 'package:googleapis_auth/googleapis_auth.dart' as gapis;
const String SOME_FAKE_ACCESS_TOKEN = 'this-is-something-not-null';
const List<String> DEBUG_FAKE_SCOPES = <String>['some-scope', 'another-scope'];
const List<String> SIGN_IN_FAKE_SCOPES = <String>[
'some-scope',
'another-scope'
];
class FakeGoogleSignIn extends Fake implements GoogleSignIn {
@override
final List<String> scopes = SIGN_IN_FAKE_SCOPES;
}
class FakeGoogleSignInAuthentication extends Fake
implements GoogleSignInAuthentication {
@override
final String accessToken = SOME_FAKE_ACCESS_TOKEN;
}
void main() {
final GoogleSignIn signIn = FakeGoogleSignIn();
final FakeGoogleSignInAuthentication authMock =
FakeGoogleSignInAuthentication();
test('authenticatedClient returns an authenticated client', () async {
final gapis.AuthClient client = (await signIn.authenticatedClient(
debugAuthentication: authMock,
))!;
expect(client, isA<gapis.AuthClient>());
});
test('authenticatedClient uses GoogleSignIn scopes by default', () async {
final gapis.AuthClient client = (await signIn.authenticatedClient(
debugAuthentication: authMock,
))!;
expect(client.credentials.accessToken.data, equals(SOME_FAKE_ACCESS_TOKEN));
expect(client.credentials.scopes, equals(SIGN_IN_FAKE_SCOPES));
});
test('authenticatedClient returned client contains the passed-in credentials',
() async {
final gapis.AuthClient client = (await signIn.authenticatedClient(
debugAuthentication: authMock,
debugScopes: DEBUG_FAKE_SCOPES,
))!;
expect(client.credentials.accessToken.data, equals(SOME_FAKE_ACCESS_TOKEN));
expect(client.credentials.scopes, equals(DEBUG_FAKE_SCOPES));
});
}