From 3e7c062f3baca83fae1937bf60865be0cd18f96d Mon Sep 17 00:00:00 2001 From: zxu Date: Tue, 27 Feb 2018 14:04:39 -0500 Subject: replacing Auth by C++ auth implementation (#802) * lazy replacing FST(Firebase)CredentialsProvider by (Firebase)CredentialsProvider * lazy replacing FSTUser by User * adding error-code parameter to TokenListener * actually use const user& instead of pointer; also add an error util * add HashUser and pass into the unordered_map * use User in test * use c++ CredentialsProvider and subclass in test * fix unit test * use explicit capture in lambda instead of capture all by reference * cache currentUser explicitly when reset sync engineer test driver * objc object should be captured by value in lambda * replacing Auth/FSTUser by C++ auth implementation * address changes * replacing FSTGetTokenResult by C++ Token implementation * address changes * fix unintentional change in merging * patch the change in objc Auth up-stream * somehow, the lambda-version of set-user-change-listener does not work... fallback to block * address changes * fix another const& v.s. dispatch bug * fix more const& v.s. dispatch bug zxu123 committed * fix a bad sync line * address changes * address change * address change * fix upstream change from merge * fix upstream changes * Suggested fixes for cpp/port_auth (#846) * Get rid of MockDatastore factory This avoids the need to statically allocate (and leak) a credentials provider * Use absl::make_unique std::make_unique technically does not exist until C++14. * #include for std::move * Use std::future for the initial user * fix style --- .../firebase/firestore/auth/credentials_provider_test.cc | 7 ++++--- .../firestore/auth/empty_credentials_provider_test.cc | 8 +++++--- .../firestore/auth/firebase_credentials_provider_test.mm | 12 ++++++++---- 3 files changed, 17 insertions(+), 10 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 9ae71ba..6895061 100644 --- a/Firestore/core/test/firebase/firestore/auth/credentials_provider_test.cc +++ b/Firestore/core/test/firebase/firestore/auth/credentials_provider_test.cc @@ -25,10 +25,11 @@ namespace auth { #define UNUSED(x) (void)(x) TEST(CredentialsProvider, Typedef) { - TokenListener token_listener = [](Token token, - const absl::string_view error) { + TokenListener token_listener = [](Token token, const int64_t error_code, + const absl::string_view error_msg) { UNUSED(token); - UNUSED(error); + 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 39012f0..3b487f3 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 @@ -25,12 +25,14 @@ namespace auth { TEST(EmptyCredentialsProvider, GetToken) { EmptyCredentialsProvider credentials_provider; credentials_provider.GetToken( - /*force_refresh=*/true, [](Token token, const absl::string_view error) { - EXPECT_EQ("", token.token()); + /*force_refresh=*/true, [](Token token, const int64_t error_code, + const absl::string_view error_msg) { + EXPECT_FALSE(token.is_valid()); const User& user = token.user(); EXPECT_EQ("", user.uid()); EXPECT_FALSE(user.is_authenticated()); - EXPECT_EQ("", error); + 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 a6ccc4a..3660d53 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 @@ -42,12 +42,14 @@ TEST(FirebaseCredentialsProviderTest, GetTokenUnauthenticated) { FirebaseCredentialsProvider credentials_provider(app); credentials_provider.GetToken( - /*force_refresh=*/true, [](Token token, const absl::string_view error) { + /*force_refresh=*/true, [](Token token, const int64_t error_code, + const absl::string_view error_msg) { EXPECT_EQ("", token.token()); const User& user = token.user(); EXPECT_EQ("", user.uid()); EXPECT_FALSE(user.is_authenticated()); - EXPECT_EQ("", error) << error; + EXPECT_EQ(FirestoreErrorCode::Ok, error_code) << error_code; + EXPECT_EQ("", error_msg) << error_msg; }); } @@ -56,12 +58,14 @@ TEST(FirebaseCredentialsProviderTest, GetToken) { FirebaseCredentialsProvider credentials_provider(app); credentials_provider.GetToken( - /*force_refresh=*/true, [](Token token, const absl::string_view error) { + /*force_refresh=*/true, [](Token token, const int64_t error_code, + const absl::string_view error_msg) { EXPECT_EQ("", token.token()); const User& user = token.user(); EXPECT_EQ("fake uid", user.uid()); EXPECT_TRUE(user.is_authenticated()); - EXPECT_EQ("", error) << error; + EXPECT_EQ(FirestoreErrorCode::Ok, error_code) << error_code; + EXPECT_EQ("", error_msg) << error_msg; }); } -- cgit v1.2.3