diff options
Diffstat (limited to 'chromium/google_apis/gaia/gaia_auth_util_unittest.cc')
-rw-r--r-- | chromium/google_apis/gaia/gaia_auth_util_unittest.cc | 90 |
1 files changed, 66 insertions, 24 deletions
diff --git a/chromium/google_apis/gaia/gaia_auth_util_unittest.cc b/chromium/google_apis/gaia/gaia_auth_util_unittest.cc index ebe8f876abe..b17ac57516a 100644 --- a/chromium/google_apis/gaia/gaia_auth_util_unittest.cc +++ b/chromium/google_apis/gaia/gaia_auth_util_unittest.cc @@ -54,14 +54,9 @@ TEST(GaiaAuthUtilTest, EmailAddressDifferentOnesRejected) { CanonicalizeEmail("Us....E.r@what.com")); } -TEST(GaiaAuthUtilTest, EmailAddressIgnorePlusSuffix) { - const char with_plus[] = "user+cc@what.com"; - EXPECT_EQ(with_plus, CanonicalizeEmail(with_plus)); -} - -TEST(GaiaAuthUtilTest, EmailAddressIgnoreMultiPlusSuffix) { - const char multi_plus[] = "user+cc+bcc@what.com"; - EXPECT_EQ(multi_plus, CanonicalizeEmail(multi_plus)); +TEST(GaiaAuthUtilTest, GooglemailNotCanonicalizedToGmail) { + const char googlemail[] = "user@googlemail.com"; + EXPECT_EQ(googlemail, CanonicalizeEmail(googlemail)); } TEST(GaiaAuthUtilTest, CanonicalizeDomain) { @@ -93,6 +88,11 @@ TEST(GaiaAuthUtilTest, AreEmailsSame) { EXPECT_FALSE(AreEmailsSame("user@gmail.com", "foo@gmail.com")); } +TEST(GaiaAuthUtilTest, GmailAndGooglemailAreSame) { + EXPECT_TRUE(AreEmailsSame("foo@gmail.com", "foo@googlemail.com")); + EXPECT_FALSE(AreEmailsSame("bar@gmail.com", "foo@googlemail.com")); +} + TEST(GaiaAuthUtilTest, IsGaiaSignonRealm) { // Only https versions of Gaia URLs should be considered valid. EXPECT_TRUE(IsGaiaSignonRealm(GURL("https://accounts.google.com/"))); @@ -109,37 +109,79 @@ TEST(GaiaAuthUtilTest, IsGaiaSignonRealm) { } TEST(GaiaAuthUtilTest, ParseListAccountsData) { - std::vector<std::string> accounts; - accounts = ParseListAccountsData(""); + std::vector<std::pair<std::string, bool> > accounts; + ASSERT_FALSE(ParseListAccountsData("", &accounts)); ASSERT_EQ(0u, accounts.size()); - accounts = ParseListAccountsData("1"); + ASSERT_FALSE(ParseListAccountsData("1", &accounts)); ASSERT_EQ(0u, accounts.size()); - accounts = ParseListAccountsData("[]"); + ASSERT_FALSE(ParseListAccountsData("[]", &accounts)); ASSERT_EQ(0u, accounts.size()); - accounts = ParseListAccountsData("[\"foo\", \"bar\"]"); + ASSERT_FALSE(ParseListAccountsData("[\"foo\", \"bar\"]", &accounts)); ASSERT_EQ(0u, accounts.size()); - accounts = ParseListAccountsData("[\"foo\", []]"); + ASSERT_TRUE(ParseListAccountsData("[\"foo\", []]", &accounts)); ASSERT_EQ(0u, accounts.size()); - accounts = ParseListAccountsData( - "[\"foo\", [[\"bar\", 0, \"name\", 0, \"photo\", 0, 0, 0]]]"); + ASSERT_TRUE(ParseListAccountsData( + "[\"foo\", [[\"bar\", 0, \"name\", 0, \"photo\", 0, 0, 0]]]", &accounts)); ASSERT_EQ(0u, accounts.size()); - accounts = ParseListAccountsData( - "[\"foo\", [[\"bar\", 0, \"name\", \"email\", \"photo\", 0, 0, 0]]]"); + ASSERT_TRUE(ParseListAccountsData( + "[\"foo\", [[\"bar\", 0, \"name\", \"u@g.c\", \"photo\", 0, 0, 0]]]", + &accounts)); ASSERT_EQ(1u, accounts.size()); - ASSERT_EQ("email", accounts[0]); + ASSERT_EQ("u@g.c", accounts[0].first); + ASSERT_TRUE(accounts[0].second); - accounts = ParseListAccountsData( - "[\"foo\", [[\"bar1\", 0, \"name1\", \"email1\", \"photo1\", 0, 0, 0], " - "[\"bar2\", 0, \"name2\", \"email2\", \"photo2\", 0, 0, 0]]]"); + ASSERT_TRUE(ParseListAccountsData( + "[\"foo\", [[\"bar1\", 0, \"name1\", \"u1@g.c\", \"photo1\", 0, 0, 0], " + "[\"bar2\", 0, \"name2\", \"u2@g.c\", \"photo2\", 0, 0, 0]]]", + &accounts)); ASSERT_EQ(2u, accounts.size()); - ASSERT_EQ("email1", accounts[0]); - ASSERT_EQ("email2", accounts[1]); + ASSERT_EQ("u1@g.c", accounts[0].first); + ASSERT_TRUE(accounts[0].second); + ASSERT_EQ("u2@g.c", accounts[1].first); + ASSERT_TRUE(accounts[1].second); + + ASSERT_TRUE(ParseListAccountsData( + "[\"foo\", [[\"b1\", 0, \"name1\", \"U1@g.c\", \"photo1\", 0, 0, 0], " + "[\"b2\", 0, \"name2\", \"u.2@g.c\", \"photo2\", 0, 0, 0]]]", + &accounts)); + ASSERT_EQ(2u, accounts.size()); + ASSERT_EQ(CanonicalizeEmail("U1@g.c"), accounts[0].first); + ASSERT_TRUE(accounts[0].second); + ASSERT_EQ(CanonicalizeEmail("u.2@g.c"), accounts[1].first); + ASSERT_TRUE(accounts[1].second); +} + +TEST(GaiaAuthUtilTest, ParseListAccountsDataValidSession) { + std::vector<std::pair<std::string, bool> > accounts; + + // Missing valid session means: return account. + ASSERT_TRUE(ParseListAccountsData( + "[\"foo\", [[\"b\", 0, \"n\", \"u@g.c\", \"p\", 0, 0, 0]]]", + &accounts)); + ASSERT_EQ(1u, accounts.size()); + ASSERT_EQ("u@g.c", accounts[0].first); + ASSERT_TRUE(accounts[0].second); + + // Valid session is true means: return account. + ASSERT_TRUE(ParseListAccountsData( + "[\"foo\", [[\"b\", 0, \"n\", \"u@g.c\", \"p\", 0, 0, 0, 0, 1]]]", + &accounts)); + ASSERT_EQ(1u, accounts.size()); + ASSERT_EQ("u@g.c", accounts[0].first); + ASSERT_TRUE(accounts[0].second); + + // Valid session is false means: return account with valid bit false. + ASSERT_TRUE(ParseListAccountsData( + "[\"foo\", [[\"b\", 0, \"n\", \"u@g.c\", \"p\", 0, 0, 0, 0, 0]]]", + &accounts)); + ASSERT_EQ(1u, accounts.size()); + ASSERT_FALSE(accounts[0].second); } } // namespace gaia |