// 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 #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); }