Backed out changeset b71c8c052463 (bug 1943846) for causing mass failures. CLOSED...
[gecko.git] / netwerk / test / unit / test_httpauth.js
blob9c9de826189be4d16aa7b629229d8a87f61dbc82
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 // This test makes sure the HTTP authenticated sessions are correctly cleared
6 // when entering and leaving the private browsing mode.
8 "use strict";
10 function run_test() {
11 var am = Cc["@mozilla.org/network/http-auth-manager;1"].getService(
12 Ci.nsIHttpAuthManager
15 const kHost1 = "pbtest3.example.com";
16 const kHost2 = "pbtest4.example.com";
17 const kPort = 80;
18 const kHTTP = "http";
19 const kBasic = "basic";
20 const kRealm = "realm";
21 const kDomain = "example.com";
22 const kUser = "user";
23 const kUser2 = "user2";
24 const kPassword = "pass";
25 const kPassword2 = "pass2";
26 const kEmpty = "";
28 const PRIVATE = true;
29 const NOT_PRIVATE = false;
31 try {
32 var domain = { value: kEmpty },
33 user = { value: kEmpty },
34 pass = { value: kEmpty };
35 // simulate a login via HTTP auth outside of the private mode
36 am.setAuthIdentity(
37 kHTTP,
38 kHost1,
39 kPort,
40 kBasic,
41 kRealm,
42 kEmpty,
43 kDomain,
44 kUser,
45 kPassword
47 // make sure the recently added auth entry is available outside the private browsing mode
48 am.getAuthIdentity(
49 kHTTP,
50 kHost1,
51 kPort,
52 kBasic,
53 kRealm,
54 kEmpty,
55 domain,
56 user,
57 pass,
58 NOT_PRIVATE
60 Assert.equal(domain.value, kDomain);
61 Assert.equal(user.value, kUser);
62 Assert.equal(pass.value, kPassword);
64 // make sure the added auth entry is no longer accessible in private
65 domain = { value: kEmpty };
66 user = { value: kEmpty };
67 pass = { value: kEmpty };
68 try {
69 // should throw
70 am.getAuthIdentity(
71 kHTTP,
72 kHost1,
73 kPort,
74 kBasic,
75 kRealm,
76 kEmpty,
77 domain,
78 user,
79 pass,
80 PRIVATE
82 do_throw(
83 "Auth entry should not be retrievable after entering the private browsing mode"
85 } catch (e) {
86 Assert.equal(domain.value, kEmpty);
87 Assert.equal(user.value, kEmpty);
88 Assert.equal(pass.value, kEmpty);
91 // simulate a login via HTTP auth inside of the private mode
92 am.setAuthIdentity(
93 kHTTP,
94 kHost2,
95 kPort,
96 kBasic,
97 kRealm,
98 kEmpty,
99 kDomain,
100 kUser2,
101 kPassword2,
102 PRIVATE
104 // make sure the recently added auth entry is available inside the private browsing mode
105 domain = { value: kEmpty };
106 user = { value: kEmpty };
107 pass = { value: kEmpty };
108 am.getAuthIdentity(
109 kHTTP,
110 kHost2,
111 kPort,
112 kBasic,
113 kRealm,
114 kEmpty,
115 domain,
116 user,
117 pass,
118 PRIVATE
120 Assert.equal(domain.value, kDomain);
121 Assert.equal(user.value, kUser2);
122 Assert.equal(pass.value, kPassword2);
124 try {
125 // make sure the recently added auth entry is not available outside the private browsing mode
126 domain = { value: kEmpty };
127 user = { value: kEmpty };
128 pass = { value: kEmpty };
129 am.getAuthIdentity(
130 kHTTP,
131 kHost2,
132 kPort,
133 kBasic,
134 kRealm,
135 kEmpty,
136 domain,
137 user,
138 pass,
139 NOT_PRIVATE
141 do_throw(
142 "Auth entry should not be retrievable outside of private browsing mode"
144 } catch (x) {
145 Assert.equal(domain.value, kEmpty);
146 Assert.equal(user.value, kEmpty);
147 Assert.equal(pass.value, kEmpty);
150 // simulate leaving private browsing mode
151 Services.obs.notifyObservers(null, "last-pb-context-exited");
153 // make sure the added auth entry is no longer accessible in any privacy state
154 domain = { value: kEmpty };
155 user = { value: kEmpty };
156 pass = { value: kEmpty };
157 try {
158 // should throw (not available in public mode)
159 am.getAuthIdentity(
160 kHTTP,
161 kHost2,
162 kPort,
163 kBasic,
164 kRealm,
165 kEmpty,
166 domain,
167 user,
168 pass,
169 NOT_PRIVATE
171 do_throw(
172 "Auth entry should not be retrievable after exiting the private browsing mode"
174 } catch (e) {
175 Assert.equal(domain.value, kEmpty);
176 Assert.equal(user.value, kEmpty);
177 Assert.equal(pass.value, kEmpty);
179 try {
180 // should throw (no longer available in private mode)
181 am.getAuthIdentity(
182 kHTTP,
183 kHost2,
184 kPort,
185 kBasic,
186 kRealm,
187 kEmpty,
188 domain,
189 user,
190 pass,
191 PRIVATE
193 do_throw(
194 "Auth entry should not be retrievable in private mode after exiting the private browsing mode"
196 } catch (x) {
197 Assert.equal(domain.value, kEmpty);
198 Assert.equal(user.value, kEmpty);
199 Assert.equal(pass.value, kEmpty);
201 } catch (e) {
202 do_throw("Unexpected exception while testing HTTP auth manager: " + e);