From 308acc09bfaf6dabf4b6d5f5e39f33854df8ce34 Mon Sep 17 00:00:00 2001 From: rsgowman Date: Wed, 21 Mar 2018 11:04:40 -0400 Subject: Change CredentialsProvider::TokenListener to use StatusOr (#945) * Change CredentialsProvider::TokenListener to use StatusOr Rather than a token plus error code/msg. * Eliminate the concept of an invalid Token Instead, we'll just use StatusOr. Note that unauthenticated tokens are handled as a special case; they're created via: Token::Unauthenticated() and are otherwise "valid", though attempting to retrieve the raw token on one of these tokens will cause an assertion failure. --- .../auth/firebase_credentials_provider_test.mm | 32 ++++++++++++++-------- 1 file changed, 20 insertions(+), 12 deletions(-) (limited to 'Firestore/core/test/firebase/firestore/auth/firebase_credentials_provider_test.mm') diff --git a/Firestore/core/test/firebase/firestore/auth/firebase_credentials_provider_test.mm b/Firestore/core/test/firebase/firestore/auth/firebase_credentials_provider_test.mm index 3660d53..9d358b5 100644 --- a/Firestore/core/test/firebase/firestore/auth/firebase_credentials_provider_test.mm +++ b/Firestore/core/test/firebase/firestore/auth/firebase_credentials_provider_test.mm @@ -17,9 +17,11 @@ #include "Firestore/core/src/firebase/firestore/auth/firebase_credentials_provider_apple.h" #import + #import #import +#include "Firestore/core/src/firebase/firestore/util/statusor.h" #include "Firestore/core/src/firebase/firestore/util/string_apple.h" #include "Firestore/core/test/firebase/firestore/testutil/app_testing.h" @@ -29,43 +31,49 @@ namespace firebase { namespace firestore { namespace auth { -FIRApp* AppWithFakeUid(NSString* _Nullable uid) { +FIRApp* AppWithFakeUidAndToken(NSString* _Nullable uid, + NSString* _Nullable token) { FIRApp* app = testutil::AppForUnitTesting(); app.getUIDImplementation = ^NSString* { return uid; }; + app.getTokenImplementation = ^(BOOL, FIRTokenCallback callback) { + callback(token, nil); + }; return app; } +FIRApp* AppWithFakeUid(NSString* _Nullable uid) { + return AppWithFakeUidAndToken(uid, uid == nil ? nil : @"default token"); +} + TEST(FirebaseCredentialsProviderTest, GetTokenUnauthenticated) { FIRApp* app = AppWithFakeUid(nil); FirebaseCredentialsProvider credentials_provider(app); credentials_provider.GetToken( - /*force_refresh=*/true, [](Token token, const int64_t error_code, - const absl::string_view error_msg) { - EXPECT_EQ("", token.token()); + /*force_refresh=*/true, [](util::StatusOr result) { + EXPECT_TRUE(result.ok()); + const Token& token = result.ValueOrDie(); + EXPECT_ANY_THROW(token.token()); const User& user = token.user(); EXPECT_EQ("", user.uid()); EXPECT_FALSE(user.is_authenticated()); - EXPECT_EQ(FirestoreErrorCode::Ok, error_code) << error_code; - EXPECT_EQ("", error_msg) << error_msg; }); } TEST(FirebaseCredentialsProviderTest, GetToken) { - FIRApp* app = AppWithFakeUid(@"fake uid"); + FIRApp* app = AppWithFakeUidAndToken(@"fake uid", @"token for fake uid"); FirebaseCredentialsProvider credentials_provider(app); credentials_provider.GetToken( - /*force_refresh=*/true, [](Token token, const int64_t error_code, - const absl::string_view error_msg) { - EXPECT_EQ("", token.token()); + /*force_refresh=*/true, [](util::StatusOr result) { + EXPECT_TRUE(result.ok()); + const Token& token = result.ValueOrDie(); + EXPECT_EQ("token for fake uid", token.token()); const User& user = token.user(); EXPECT_EQ("fake uid", user.uid()); EXPECT_TRUE(user.is_authenticated()); - EXPECT_EQ(FirestoreErrorCode::Ok, error_code) << error_code; - EXPECT_EQ("", error_msg) << error_msg; }); } -- cgit v1.2.3