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. --- .../firestore/auth/credentials_provider_test.cc | 6 ++-- .../auth/empty_credentials_provider_test.cc | 10 +++---- .../auth/firebase_credentials_provider_test.mm | 32 ++++++++++++++-------- .../test/firebase/firestore/auth/token_test.cc | 6 ++-- 4 files changed, 29 insertions(+), 25 deletions(-) (limited to 'Firestore/core/test') diff --git a/Firestore/core/test/firebase/firestore/auth/credentials_provider_test.cc b/Firestore/core/test/firebase/firestore/auth/credentials_provider_test.cc index 6895061..69c3def 100644 --- a/Firestore/core/test/firebase/firestore/auth/credentials_provider_test.cc +++ b/Firestore/core/test/firebase/firestore/auth/credentials_provider_test.cc @@ -16,6 +16,7 @@ #include "Firestore/core/src/firebase/firestore/auth/credentials_provider.h" +#include "Firestore/core/src/firebase/firestore/util/statusor.h" #include "gtest/gtest.h" namespace firebase { @@ -25,11 +26,8 @@ namespace auth { #define UNUSED(x) (void)(x) TEST(CredentialsProvider, Typedef) { - TokenListener token_listener = [](Token token, const int64_t error_code, - const absl::string_view error_msg) { + TokenListener token_listener = [](util::StatusOr token) { UNUSED(token); - UNUSED(error_code); - UNUSED(error_msg); }; EXPECT_NE(nullptr, token_listener); EXPECT_TRUE(token_listener); diff --git a/Firestore/core/test/firebase/firestore/auth/empty_credentials_provider_test.cc b/Firestore/core/test/firebase/firestore/auth/empty_credentials_provider_test.cc index 3b487f3..60845e5 100644 --- a/Firestore/core/test/firebase/firestore/auth/empty_credentials_provider_test.cc +++ b/Firestore/core/test/firebase/firestore/auth/empty_credentials_provider_test.cc @@ -16,6 +16,7 @@ #include "Firestore/core/src/firebase/firestore/auth/empty_credentials_provider.h" +#include "Firestore/core/src/firebase/firestore/util/statusor.h" #include "gtest/gtest.h" namespace firebase { @@ -25,14 +26,13 @@ namespace auth { TEST(EmptyCredentialsProvider, GetToken) { EmptyCredentialsProvider credentials_provider; credentials_provider.GetToken( - /*force_refresh=*/true, [](Token token, const int64_t error_code, - const absl::string_view error_msg) { - EXPECT_FALSE(token.is_valid()); + /*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); - EXPECT_EQ("", error_msg); }); } 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; }); } diff --git a/Firestore/core/test/firebase/firestore/auth/token_test.cc b/Firestore/core/test/firebase/firestore/auth/token_test.cc index 8f784d6..e34053e 100644 --- a/Firestore/core/test/firebase/firestore/auth/token_test.cc +++ b/Firestore/core/test/firebase/firestore/auth/token_test.cc @@ -26,14 +26,12 @@ TEST(Token, Getter) { Token token("token", User("abc")); EXPECT_EQ("token", token.token()); EXPECT_EQ(User("abc"), token.user()); - EXPECT_TRUE(token.is_valid()); } -TEST(Token, InvalidToken) { - const Token& token = Token::Invalid(); +TEST(Token, UnauthenticatedToken) { + const Token& token = Token::Unauthenticated(); EXPECT_ANY_THROW(token.token()); EXPECT_EQ(User::Unauthenticated(), token.user()); - EXPECT_FALSE(token.is_valid()); } } // namespace auth -- cgit v1.2.3