1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/browser/ui/login/login_prompt.h" 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "googleurl/src/gurl.h" 7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "net/base/auth.h" 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "testing/gtest/include/gtest/gtest.h" 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(LoginPromptTest, GetSignonRealm) { 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch scoped_refptr<net::AuthChallengeInfo> auth_info = new net::AuthChallengeInfo; 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch auth_info->is_proxy = false; // server auth 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // auth_info->host is intentionally left empty. 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch auth_info->scheme = L"Basic"; 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch auth_info->realm = L"WallyWorld"; 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch std::string url[] = { 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "https://www.nowhere.org/dir/index.html", 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "https://www.nowhere.org:443/dir/index.html", // default port 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "https://www.nowhere.org:8443/dir/index.html", // non-default port 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "https://www.nowhere.org", // no trailing slash 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "https://foo:bar@www.nowhere.org/dir/index.html", // username:password 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "https://www.nowhere.org/dir/index.html?id=965362", // query 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "https://www.nowhere.org/dir/index.html#toc", // reference 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch std::string expected[] = { 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "https://www.nowhere.org/WallyWorld", 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "https://www.nowhere.org/WallyWorld", 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "https://www.nowhere.org:8443/WallyWorld", 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "https://www.nowhere.org/WallyWorld", 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "https://www.nowhere.org/WallyWorld", 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "https://www.nowhere.org/WallyWorld", 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch "https://www.nowhere.org/WallyWorld" 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch for (size_t i = 0; i < arraysize(url); i++) { 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch std::string key = GetSignonRealm(GURL(url[i]), *auth_info); 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(expected[i], key); 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 43