OLD | NEW |
| (Empty) |
1 // Copyright (c) 2010 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 "net/http/url_security_manager.h" | |
6 | |
7 #include "base/basictypes.h" | |
8 #include "net/base/net_errors.h" | |
9 #include "net/http/http_auth_filter.h" | |
10 #include "testing/gtest/include/gtest/gtest.h" | |
11 #include "url/gurl.h" | |
12 | |
13 namespace net { | |
14 | |
15 namespace { | |
16 | |
17 struct TestData { | |
18 const char* const url; | |
19 bool succeds_in_windows_default; | |
20 bool succeeds_in_whitelist; | |
21 }; | |
22 | |
23 const char kTestAuthWhitelist[] = "*example.com,*foobar.com,baz"; | |
24 | |
25 // Under Windows the following will be allowed by default: | |
26 // localhost | |
27 // host names without a period. | |
28 // In Posix systems (or on Windows if a whitelist is specified explicitly), | |
29 // everything depends on the whitelist. | |
30 const TestData kTestDataList[] = { | |
31 { "http://localhost", true, false }, | |
32 { "http://bat", true, false }, | |
33 { "http://www.example.com", false, true }, | |
34 { "http://example.com", false, true }, | |
35 { "http://foobar.com", false, true }, | |
36 { "http://boo.foobar.com", false, true }, | |
37 { "http://baz", true, true }, | |
38 { "http://www.exampl.com", false, false }, | |
39 { "http://example.org", false, false }, | |
40 { "http://foobar.net", false, false }, | |
41 { "http://boo.fubar.com", false, false }, | |
42 }; | |
43 | |
44 } // namespace | |
45 | |
46 TEST(URLSecurityManager, UseDefaultCredentials) { | |
47 HttpAuthFilterWhitelist* auth_filter = new HttpAuthFilterWhitelist( | |
48 kTestAuthWhitelist); | |
49 ASSERT_TRUE(auth_filter); | |
50 // The URL security manager takes ownership of |auth_filter|. | |
51 scoped_ptr<URLSecurityManager> url_security_manager( | |
52 URLSecurityManager::Create(auth_filter, NULL)); | |
53 ASSERT_TRUE(url_security_manager.get()); | |
54 | |
55 for (size_t i = 0; i < arraysize(kTestDataList); ++i) { | |
56 GURL gurl(kTestDataList[i].url); | |
57 bool can_use_default = | |
58 url_security_manager->CanUseDefaultCredentials(gurl); | |
59 | |
60 EXPECT_EQ(kTestDataList[i].succeeds_in_whitelist, can_use_default) | |
61 << " Run: " << i << " URL: '" << gurl << "'"; | |
62 } | |
63 } | |
64 | |
65 TEST(URLSecurityManager, CanDelegate) { | |
66 HttpAuthFilterWhitelist* auth_filter = new HttpAuthFilterWhitelist( | |
67 kTestAuthWhitelist); | |
68 ASSERT_TRUE(auth_filter); | |
69 // The URL security manager takes ownership of |auth_filter|. | |
70 scoped_ptr<URLSecurityManager> url_security_manager( | |
71 URLSecurityManager::Create(NULL, auth_filter)); | |
72 ASSERT_TRUE(url_security_manager.get()); | |
73 | |
74 for (size_t i = 0; i < arraysize(kTestDataList); ++i) { | |
75 GURL gurl(kTestDataList[i].url); | |
76 bool can_delegate = url_security_manager->CanDelegate(gurl); | |
77 EXPECT_EQ(kTestDataList[i].succeeds_in_whitelist, can_delegate) | |
78 << " Run: " << i << " URL: '" << gurl << "'"; | |
79 } | |
80 } | |
81 | |
82 TEST(URLSecurityManager, CanDelegate_NoWhitelist) { | |
83 // Nothing can delegate in this case. | |
84 scoped_ptr<URLSecurityManager> url_security_manager( | |
85 URLSecurityManager::Create(NULL, NULL)); | |
86 ASSERT_TRUE(url_security_manager.get()); | |
87 | |
88 for (size_t i = 0; i < arraysize(kTestDataList); ++i) { | |
89 GURL gurl(kTestDataList[i].url); | |
90 bool can_delegate = url_security_manager->CanDelegate(gurl); | |
91 EXPECT_FALSE(can_delegate); | |
92 } | |
93 } | |
94 | |
95 | |
96 } // namespace net | |
OLD | NEW |