diff options
author | rsgowman <rgowman@google.com> | 2018-03-21 11:04:40 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-21 11:04:40 -0400 |
commit | 308acc09bfaf6dabf4b6d5f5e39f33854df8ce34 (patch) | |
tree | 3706bbbe40d08569795634fd2f30a07fd348b399 /Firestore/core/test/firebase/firestore/auth/firebase_credentials_provider_test.mm | |
parent | d924771453d000e708bd5d239da3bae4feb489ac (diff) |
Change CredentialsProvider::TokenListener to use StatusOr<Token> (#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<Token>. 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.
Diffstat (limited to 'Firestore/core/test/firebase/firestore/auth/firebase_credentials_provider_test.mm')
-rw-r--r-- | Firestore/core/test/firebase/firestore/auth/firebase_credentials_provider_test.mm | 32 |
1 files changed, 20 insertions, 12 deletions
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 <FirebaseCore/FIRApp.h> + #import <FirebaseCore/FIRAppInternal.h> #import <FirebaseCore/FIROptionsInternal.h> +#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<Token> 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<Token> 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; }); } |