blob: d223aef11918ac51a52f1d15c9447c847f575ed4 [file] [log] [blame]
// Copyright 2017 The Chromium 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:mockito/mockito.dart';
import 'package:test/test.dart';
import 'package:flutter/services.dart';
import 'package:firebase_auth/firebase_auth.dart';
void main() {
group('$FirebaseAuth', () {
FirebaseAuth auth;
const String kMockProviderId = 'firebase';
const String kMockUid = '12345';
const String kMockDisplayName = 'Flutter Test User';
const String kMockPhotoUrl = 'http://www.example.com/';
const String kMockEmail = 'test@example.com';
setUp(() {
final MockPlatformChannel mockChannel = new MockPlatformChannel();
when(mockChannel.invokeMethod('signInAnonymously'))
.thenAnswer((Invocation invocation) {
return <String, dynamic>{
'isAnonymous': true,
'isEmailVerified': false,
'providerData': <Map<String, String>>[
<String, String>{
'providerId': kMockProviderId,
'uid': kMockUid,
'displayName': kMockDisplayName,
'photoUrl': kMockPhotoUrl,
'email': kMockEmail,
},
],
};
});
auth = new FirebaseAuth.private(mockChannel);
});
test('signInAnonymously', () async {
final FirebaseUser user = await auth.signInAnonymously();
expect(user, isNotNull);
expect(user, auth.currentUser);
expect(user.isAnonymous, isTrue);
expect(user.isEmailVerified, isFalse);
expect(user.providerData.length, 1);
final UserInfo userInfo = user.providerData[0];
expect(userInfo.providerId, kMockProviderId);
expect(userInfo.uid, kMockUid);
expect(userInfo.displayName, kMockDisplayName);
expect(userInfo.photoUrl, kMockPhotoUrl);
expect(userInfo.email, kMockEmail);
});
});
}
class MockPlatformChannel extends Mock implements MethodChannel {}