1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package org.apache.http.auth;
28
29 import org.apache.http.HttpHost;
30 import org.junit.Assert;
31 import org.junit.Test;
32
33
34
35
36 public class TestAuthScope {
37
38 @Test
39 public void testBasics() {
40 final AuthScope authscope = new AuthScope("somehost", 80, "somerealm", "somescheme");
41 Assert.assertEquals("SOMESCHEME", authscope.getScheme());
42 Assert.assertEquals("somehost", authscope.getHost());
43 Assert.assertEquals(80, authscope.getPort());
44 Assert.assertEquals("somerealm", authscope.getRealm());
45 Assert.assertEquals("SOMESCHEME 'somerealm'@somehost:80", authscope.toString());
46 }
47
48 @Test
49 public void testBasicsOptionalRealm() {
50 final AuthScope authscope = new AuthScope("somehost", 80, AuthScope.ANY_REALM, "somescheme");
51 Assert.assertEquals("SOMESCHEME", authscope.getScheme());
52 Assert.assertEquals("somehost", authscope.getHost());
53 Assert.assertEquals(80, authscope.getPort());
54 Assert.assertEquals(null, authscope.getRealm());
55 Assert.assertEquals("SOMESCHEME <any realm>@somehost:80", authscope.toString());
56 }
57
58 @Test
59 public void testBasicsOptionalScheme() {
60 final AuthScope authscope = new AuthScope("somehost", 80, AuthScope.ANY_REALM, AuthScope.ANY_SCHEME);
61 Assert.assertEquals(null, authscope.getScheme());
62 Assert.assertEquals("somehost", authscope.getHost());
63 Assert.assertEquals(80, authscope.getPort());
64 Assert.assertEquals(null, authscope.getRealm());
65 Assert.assertEquals("<any realm>@somehost:80", authscope.toString());
66 }
67
68 @Test
69 public void testBasicsOptionalPort() {
70 final AuthScope authscope = new AuthScope("somehost", AuthScope.ANY_PORT, AuthScope.ANY_REALM, AuthScope.ANY_SCHEME);
71 Assert.assertEquals(null, authscope.getScheme());
72 Assert.assertEquals("somehost", authscope.getHost());
73 Assert.assertEquals(-1, authscope.getPort());
74 Assert.assertEquals(null, authscope.getRealm());
75 Assert.assertEquals("<any realm>@somehost", authscope.toString());
76 }
77
78 @Test
79 public void testByOrigin() {
80 final HttpHost host = new HttpHost("somehost", 8080, "http");
81 final AuthScope authscope = new AuthScope(host);
82 Assert.assertEquals(null, authscope.getScheme());
83 Assert.assertEquals("somehost", authscope.getHost());
84 Assert.assertEquals(8080, authscope.getPort());
85 Assert.assertEquals(null, authscope.getRealm());
86 Assert.assertEquals(host, authscope.getOrigin());
87 Assert.assertEquals("<any realm>@somehost:8080", authscope.toString());
88 }
89
90 @Test
91 public void testMixedCaseHostname() {
92 final AuthScope authscope = new AuthScope("SomeHost", 80);
93 Assert.assertEquals(null, authscope.getScheme());
94 Assert.assertEquals("somehost", authscope.getHost());
95 Assert.assertEquals(80, authscope.getPort());
96 Assert.assertEquals(null, authscope.getRealm());
97 Assert.assertEquals("<any realm>@somehost:80", authscope.toString());
98 }
99
100 public void testByOriginMixedCaseHostname() throws Exception {
101 final HttpHost host = new HttpHost("SomeHost", 8080, "http");
102 final AuthScope authscope = new AuthScope(host);
103 Assert.assertEquals("somehost", authscope.getHost());
104 Assert.assertEquals(host, authscope.getOrigin());
105 }
106
107 @Test
108 public void testBasicsOptionalHost() {
109 final AuthScope authscope = new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM, AuthScope.ANY_SCHEME);
110 Assert.assertEquals(null, authscope.getScheme());
111 Assert.assertEquals(null, authscope.getHost());
112 Assert.assertEquals(-1, authscope.getPort());
113 Assert.assertEquals(null, authscope.getRealm());
114 Assert.assertEquals("<any realm>", authscope.toString());
115 }
116
117 @Test
118 public void testScopeMatching() {
119 final AuthScope authscope1 = new AuthScope("somehost", 80, "somerealm", "somescheme");
120 final AuthScope authscope2 = new AuthScope("someotherhost", 80, "somerealm", "somescheme");
121 Assert.assertTrue(authscope1.match(authscope2) < 0);
122
123 int m1 = authscope1.match(
124 new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM, "somescheme"));
125 int m2 = authscope1.match(
126 new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, "somerealm", AuthScope.ANY_SCHEME));
127 Assert.assertTrue(m2 > m1);
128
129 m1 = authscope1.match(
130 new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM, "somescheme"));
131 m2 = authscope1.match(
132 new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, "somerealm", AuthScope.ANY_SCHEME));
133 Assert.assertTrue(m2 > m1);
134
135 m1 = authscope1.match(
136 new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, "somerealm", "somescheme"));
137 m2 = authscope1.match(
138 new AuthScope(AuthScope.ANY_HOST, 80, AuthScope.ANY_REALM, AuthScope.ANY_SCHEME));
139 Assert.assertTrue(m2 > m1);
140
141 m1 = authscope1.match(
142 new AuthScope(AuthScope.ANY_HOST, 80, "somerealm", "somescheme"));
143 m2 = authscope1.match(
144 new AuthScope("somehost", AuthScope.ANY_PORT, AuthScope.ANY_REALM, AuthScope.ANY_SCHEME));
145 Assert.assertTrue(m2 > m1);
146
147 m1 = authscope1.match(AuthScope.ANY);
148 m2 = authscope1.match(
149 new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM, "somescheme"));
150 Assert.assertTrue(m2 > m1);
151 }
152
153 @Test
154 public void testEquals() {
155 final AuthScope authscope1 = new AuthScope("somehost", 80, "somerealm", "somescheme");
156 final AuthScope authscope2 = new AuthScope("someotherhost", 80, "somerealm", "somescheme");
157 final AuthScope authscope3 = new AuthScope("somehost", 80, "somerealm", "somescheme");
158 final AuthScope authscope4 = new AuthScope("somehost", 8080, "somerealm", "somescheme");
159 final AuthScope authscope5 = new AuthScope("somehost", 80, "someotherrealm", "somescheme");
160 final AuthScope authscope6 = new AuthScope("somehost", 80, "somerealm", "someotherscheme");
161 Assert.assertTrue(authscope1.equals(authscope1));
162 Assert.assertFalse(authscope1.equals(authscope2));
163 Assert.assertTrue(authscope1.equals(authscope3));
164 Assert.assertFalse(authscope1.equals(authscope4));
165 Assert.assertFalse(authscope1.equals(authscope5));
166 Assert.assertFalse(authscope1.equals(authscope6));
167 }
168
169 @Test
170 public void testHash() {
171 final AuthScope authscope1 = new AuthScope("somehost", 80, "somerealm", "somescheme");
172 final AuthScope authscope2 = new AuthScope("someotherhost", 80, "somerealm", "somescheme");
173 final AuthScope authscope3 = new AuthScope("somehost", 80, "somerealm", "somescheme");
174 final AuthScope authscope4 = new AuthScope("somehost", 8080, "somerealm", "somescheme");
175 final AuthScope authscope5 = new AuthScope("somehost", 80, "someotherrealm", "somescheme");
176 final AuthScope authscope6 = new AuthScope("somehost", 80, "somerealm", "someotherscheme");
177 Assert.assertTrue(authscope1.hashCode() == authscope1.hashCode());
178 Assert.assertFalse(authscope1.hashCode() == authscope2.hashCode());
179 Assert.assertTrue(authscope1.hashCode() == authscope3.hashCode());
180 Assert.assertFalse(authscope1.hashCode() == authscope4.hashCode());
181 Assert.assertFalse(authscope1.hashCode() == authscope5.hashCode());
182 Assert.assertFalse(authscope1.hashCode() == authscope6.hashCode());
183 }
184
185 }