| OLD | NEW |
| (Empty) | |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include <string> |
| 6 |
| 7 #include "chrome/browser/ui/auto_login_prompter.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 |
| 10 class AutoLoginPrompterTest : public testing::Test { |
| 11 protected: |
| 12 typedef AutoLoginPrompter::Params Params; |
| 13 |
| 14 static bool ParseAutoLoginHeader(const std::string& input, Params* output) { |
| 15 return AutoLoginPrompter::ParseAutoLoginHeader(input, output); |
| 16 } |
| 17 |
| 18 static bool IsParamsEmpty(const Params& params) { |
| 19 return params.realm.empty() && params.account.empty() && |
| 20 params.args.empty() && params.username.empty(); |
| 21 } |
| 22 }; |
| 23 |
| 24 TEST_F(AutoLoginPrompterTest, ParseAutoLoginHeader) { |
| 25 std::string header = |
| 26 "realm=com.google&" |
| 27 "account=fred.example%40gmail.com&" |
| 28 "args=kfdshfwoeriudslkfsdjfhdskjfhsdkr"; |
| 29 |
| 30 Params params; |
| 31 EXPECT_TRUE(ParseAutoLoginHeader(header, ¶ms)); |
| 32 |
| 33 ASSERT_EQ("com.google", params.realm); |
| 34 ASSERT_EQ("fred.example@gmail.com", params.account); |
| 35 ASSERT_EQ("kfdshfwoeriudslkfsdjfhdskjfhsdkr", params.args); |
| 36 } |
| 37 |
| 38 TEST_F(AutoLoginPrompterTest, ParseAutoLoginHeaderOnlySupportsComGoogle) { |
| 39 std::string header = |
| 40 "realm=com.microsoft&" |
| 41 "account=fred.example%40gmail.com&" |
| 42 "args=kfdshfwoeriudslkfsdjfhdskjfhsdkr"; |
| 43 |
| 44 Params params; |
| 45 EXPECT_FALSE(ParseAutoLoginHeader(header, ¶ms)); |
| 46 // |params| should not be touched when parsing fails. |
| 47 EXPECT_TRUE(IsParamsEmpty(params)); |
| 48 } |
| 49 |
| 50 TEST_F(AutoLoginPrompterTest, ParseAutoLoginHeaderWithMissingRealm) { |
| 51 std::string header = |
| 52 "account=fred.example%40gmail.com&" |
| 53 "args=kfdshfwoeriudslkfsdjfhdskjfhsdkr"; |
| 54 |
| 55 Params params; |
| 56 EXPECT_FALSE(ParseAutoLoginHeader(header, ¶ms)); |
| 57 EXPECT_TRUE(IsParamsEmpty(params)); |
| 58 } |
| 59 |
| 60 TEST_F(AutoLoginPrompterTest, ParseAutoLoginHeaderWithMissingArgs) { |
| 61 std::string header = |
| 62 "realm=com.google&" |
| 63 "account=fred.example%40gmail.com&"; |
| 64 |
| 65 Params params; |
| 66 EXPECT_FALSE(ParseAutoLoginHeader(header, ¶ms)); |
| 67 EXPECT_TRUE(IsParamsEmpty(params)); |
| 68 } |
| 69 |
| 70 TEST_F(AutoLoginPrompterTest, ParseAutoLoginHeaderWithoutOptionalAccount) { |
| 71 std::string header = |
| 72 "realm=com.google&" |
| 73 "args=kfdshfwoeriudslkfsdjfhdskjfhsdkr"; |
| 74 |
| 75 Params params; |
| 76 EXPECT_TRUE(ParseAutoLoginHeader(header, ¶ms)); |
| 77 ASSERT_EQ("com.google", params.realm); |
| 78 ASSERT_EQ("kfdshfwoeriudslkfsdjfhdskjfhsdkr", params.args); |
| 79 } |
| OLD | NEW |