| Index: chrome/browser/ui/auto_login_prompter_unittest.cc
|
| diff --git a/chrome/browser/ui/auto_login_prompter_unittest.cc b/chrome/browser/ui/auto_login_prompter_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5a44e888262e0b9f369c39b713ae481c127f754d
|
| --- /dev/null
|
| +++ b/chrome/browser/ui/auto_login_prompter_unittest.cc
|
| @@ -0,0 +1,79 @@
|
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include <string>
|
| +
|
| +#include "chrome/browser/ui/auto_login_prompter.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +class AutoLoginPrompterTest : public testing::Test {
|
| + protected:
|
| + typedef AutoLoginPrompter::Params Params;
|
| +
|
| + static bool ParseAutoLoginHeader(const std::string& input, Params* output) {
|
| + return AutoLoginPrompter::ParseAutoLoginHeader(input, output);
|
| + }
|
| +
|
| + static bool IsParamsEmpty(const Params& params) {
|
| + return params.realm.empty() && params.account.empty() &&
|
| + params.args.empty() && params.username.empty();
|
| + }
|
| +};
|
| +
|
| +TEST_F(AutoLoginPrompterTest, ParseAutoLoginHeader) {
|
| + std::string header =
|
| + "realm=com.google&"
|
| + "account=fred.example%40gmail.com&"
|
| + "args=kfdshfwoeriudslkfsdjfhdskjfhsdkr";
|
| +
|
| + Params params;
|
| + EXPECT_TRUE(ParseAutoLoginHeader(header, ¶ms));
|
| +
|
| + ASSERT_EQ("com.google", params.realm);
|
| + ASSERT_EQ("fred.example@gmail.com", params.account);
|
| + ASSERT_EQ("kfdshfwoeriudslkfsdjfhdskjfhsdkr", params.args);
|
| +}
|
| +
|
| +TEST_F(AutoLoginPrompterTest, ParseAutoLoginHeaderOnlySupportsComGoogle) {
|
| + std::string header =
|
| + "realm=com.microsoft&"
|
| + "account=fred.example%40gmail.com&"
|
| + "args=kfdshfwoeriudslkfsdjfhdskjfhsdkr";
|
| +
|
| + Params params;
|
| + EXPECT_FALSE(ParseAutoLoginHeader(header, ¶ms));
|
| + // |params| should not be touched when parsing fails.
|
| + EXPECT_TRUE(IsParamsEmpty(params));
|
| +}
|
| +
|
| +TEST_F(AutoLoginPrompterTest, ParseAutoLoginHeaderWithMissingRealm) {
|
| + std::string header =
|
| + "account=fred.example%40gmail.com&"
|
| + "args=kfdshfwoeriudslkfsdjfhdskjfhsdkr";
|
| +
|
| + Params params;
|
| + EXPECT_FALSE(ParseAutoLoginHeader(header, ¶ms));
|
| + EXPECT_TRUE(IsParamsEmpty(params));
|
| +}
|
| +
|
| +TEST_F(AutoLoginPrompterTest, ParseAutoLoginHeaderWithMissingArgs) {
|
| + std::string header =
|
| + "realm=com.google&"
|
| + "account=fred.example%40gmail.com&";
|
| +
|
| + Params params;
|
| + EXPECT_FALSE(ParseAutoLoginHeader(header, ¶ms));
|
| + EXPECT_TRUE(IsParamsEmpty(params));
|
| +}
|
| +
|
| +TEST_F(AutoLoginPrompterTest, ParseAutoLoginHeaderWithoutOptionalAccount) {
|
| + std::string header =
|
| + "realm=com.google&"
|
| + "args=kfdshfwoeriudslkfsdjfhdskjfhsdkr";
|
| +
|
| + Params params;
|
| + EXPECT_TRUE(ParseAutoLoginHeader(header, ¶ms));
|
| + ASSERT_EQ("com.google", params.realm);
|
| + ASSERT_EQ("kfdshfwoeriudslkfsdjfhdskjfhsdkr", params.args);
|
| +}
|
|
|