| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 import 'dart:async'; | 5 import 'dart:async'; |
| 6 import 'dart:crypto'; | 6 import 'dart:crypto'; |
| 7 import 'dart:io'; | 7 import 'dart:io'; |
| 8 import 'dart:isolate'; | 8 import 'dart:isolate'; |
| 9 import 'dart:uri'; | 9 import 'dart:uri'; |
| 10 import 'dart:utf'; | 10 import 'dart:utf'; |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 server.start(); | 71 server.start(); |
| 72 return server; | 72 return server; |
| 73 } | 73 } |
| 74 | 74 |
| 75 void testUrlUserInfo() { | 75 void testUrlUserInfo() { |
| 76 Server server = setupServer(); | 76 Server server = setupServer(); |
| 77 HttpClient client = new HttpClient(); | 77 HttpClient client = new HttpClient(); |
| 78 | 78 |
| 79 HttpClientConnection conn = | 79 HttpClientConnection conn = |
| 80 client.getUrl( | 80 client.getUrl( |
| 81 new Uri.fromString( | 81 Uri.parse( |
| 82 "http://username:password@127.0.0.1:${server.port}/")); | 82 "http://username:password@127.0.0.1:${server.port}/")); |
| 83 conn.onResponse = (HttpClientResponse response) { | 83 conn.onResponse = (HttpClientResponse response) { |
| 84 response.inputStream.onData = response.inputStream.read; | 84 response.inputStream.onData = response.inputStream.read; |
| 85 response.inputStream.onClosed = () { | 85 response.inputStream.onClosed = () { |
| 86 server.shutdown(); | 86 server.shutdown(); |
| 87 client.shutdown(); | 87 client.shutdown(); |
| 88 }; | 88 }; |
| 89 }; | 89 }; |
| 90 } | 90 } |
| 91 | 91 |
| 92 void testBasicNoCredentials() { | 92 void testBasicNoCredentials() { |
| 93 Server server = setupServer(); | 93 Server server = setupServer(); |
| 94 HttpClient client = new HttpClient(); | 94 HttpClient client = new HttpClient(); |
| 95 | 95 |
| 96 Future makeRequest(Uri url) { | 96 Future makeRequest(Uri url) { |
| 97 Completer completer = new Completer(); | 97 Completer completer = new Completer(); |
| 98 HttpClientConnection conn = client.getUrl(url); | 98 HttpClientConnection conn = client.getUrl(url); |
| 99 conn.onResponse = (HttpClientResponse response) { | 99 conn.onResponse = (HttpClientResponse response) { |
| 100 Expect.equals(HttpStatus.UNAUTHORIZED, response.statusCode); | 100 Expect.equals(HttpStatus.UNAUTHORIZED, response.statusCode); |
| 101 response.inputStream.onData = response.inputStream.read; | 101 response.inputStream.onData = response.inputStream.read; |
| 102 response.inputStream.onClosed = () => completer.complete(null); | 102 response.inputStream.onClosed = () => completer.complete(null); |
| 103 }; | 103 }; |
| 104 return completer.future; | 104 return completer.future; |
| 105 } | 105 } |
| 106 | 106 |
| 107 var futures = []; | 107 var futures = []; |
| 108 for (int i = 0; i < 5; i++) { | 108 for (int i = 0; i < 5; i++) { |
| 109 futures.add( | 109 futures.add( |
| 110 makeRequest( | 110 makeRequest( |
| 111 new Uri.fromString("http://127.0.0.1:${server.port}/test$i"))); | 111 Uri.parse("http://127.0.0.1:${server.port}/test$i"))); |
| 112 futures.add( | 112 futures.add( |
| 113 makeRequest( | 113 makeRequest( |
| 114 new Uri.fromString("http://127.0.0.1:${server.port}/test$i/xxx"))); | 114 Uri.parse("http://127.0.0.1:${server.port}/test$i/xxx"))); |
| 115 } | 115 } |
| 116 Future.wait(futures).then((_) { | 116 Future.wait(futures).then((_) { |
| 117 server.shutdown(); | 117 server.shutdown(); |
| 118 client.shutdown(); | 118 client.shutdown(); |
| 119 }); | 119 }); |
| 120 } | 120 } |
| 121 | 121 |
| 122 void testBasicCredentials() { | 122 void testBasicCredentials() { |
| 123 Server server = setupServer(); | 123 Server server = setupServer(); |
| 124 HttpClient client = new HttpClient(); | 124 HttpClient client = new HttpClient(); |
| 125 | 125 |
| 126 Future makeRequest(Uri url) { | 126 Future makeRequest(Uri url) { |
| 127 Completer completer = new Completer(); | 127 Completer completer = new Completer(); |
| 128 HttpClientConnection conn = client.getUrl(url); | 128 HttpClientConnection conn = client.getUrl(url); |
| 129 conn.onResponse = (HttpClientResponse response) { | 129 conn.onResponse = (HttpClientResponse response) { |
| 130 Expect.equals(HttpStatus.OK, response.statusCode); | 130 Expect.equals(HttpStatus.OK, response.statusCode); |
| 131 response.inputStream.onData = response.inputStream.read; | 131 response.inputStream.onData = response.inputStream.read; |
| 132 response.inputStream.onClosed = () => completer.complete(null); | 132 response.inputStream.onClosed = () => completer.complete(null); |
| 133 }; | 133 }; |
| 134 return completer.future; | 134 return completer.future; |
| 135 } | 135 } |
| 136 | 136 |
| 137 for (int i = 0; i < 5; i++) { | 137 for (int i = 0; i < 5; i++) { |
| 138 client.addCredentials( | 138 client.addCredentials( |
| 139 new Uri.fromString("http://127.0.0.1:${server.port}/test$i"), | 139 Uri.parse("http://127.0.0.1:${server.port}/test$i"), |
| 140 "realm", | 140 "realm", |
| 141 new HttpClientBasicCredentials("test$i", "test$i")); | 141 new HttpClientBasicCredentials("test$i", "test$i")); |
| 142 } | 142 } |
| 143 | 143 |
| 144 var futures = []; | 144 var futures = []; |
| 145 for (int i = 0; i < 5; i++) { | 145 for (int i = 0; i < 5; i++) { |
| 146 futures.add( | 146 futures.add( |
| 147 makeRequest( | 147 makeRequest( |
| 148 new Uri.fromString("http://127.0.0.1:${server.port}/test$i"))); | 148 Uri.parse("http://127.0.0.1:${server.port}/test$i"))); |
| 149 futures.add( | 149 futures.add( |
| 150 makeRequest( | 150 makeRequest( |
| 151 new Uri.fromString("http://127.0.0.1:${server.port}/test$i/xxx"))); | 151 Uri.parse("http://127.0.0.1:${server.port}/test$i/xxx"))); |
| 152 } | 152 } |
| 153 Future.wait(futures).then((_) { | 153 Future.wait(futures).then((_) { |
| 154 server.shutdown(); | 154 server.shutdown(); |
| 155 client.shutdown(); | 155 client.shutdown(); |
| 156 }); | 156 }); |
| 157 } | 157 } |
| 158 | 158 |
| 159 void testBasicAuthenticateCallback() { | 159 void testBasicAuthenticateCallback() { |
| 160 Server server = setupServer(); | 160 Server server = setupServer(); |
| 161 HttpClient client = new HttpClient(); | 161 HttpClient client = new HttpClient(); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 185 response.inputStream.onClosed = () => completer.complete(null); | 185 response.inputStream.onClosed = () => completer.complete(null); |
| 186 }; | 186 }; |
| 187 return completer.future; | 187 return completer.future; |
| 188 } | 188 } |
| 189 | 189 |
| 190 List<Future> makeRequests() { | 190 List<Future> makeRequests() { |
| 191 var futures = []; | 191 var futures = []; |
| 192 for (int i = 0; i < 5; i++) { | 192 for (int i = 0; i < 5; i++) { |
| 193 futures.add( | 193 futures.add( |
| 194 makeRequest( | 194 makeRequest( |
| 195 new Uri.fromString("http://127.0.0.1:${server.port}/test$i"))); | 195 Uri.parse("http://127.0.0.1:${server.port}/test$i"))); |
| 196 futures.add( | 196 futures.add( |
| 197 makeRequest( | 197 makeRequest( |
| 198 new Uri.fromString( | 198 Uri.parse( |
| 199 "http://127.0.0.1:${server.port}/test$i/xxx"))); | 199 "http://127.0.0.1:${server.port}/test$i/xxx"))); |
| 200 } | 200 } |
| 201 return futures; | 201 return futures; |
| 202 } | 202 } |
| 203 | 203 |
| 204 Future.wait(makeRequests()).then((_) { | 204 Future.wait(makeRequests()).then((_) { |
| 205 makeRequest( | 205 makeRequest( |
| 206 new Uri.fromString( | 206 Uri.parse( |
| 207 "http://127.0.0.1:${server.port}/passwdchg")).then((_) { | 207 "http://127.0.0.1:${server.port}/passwdchg")).then((_) { |
| 208 passwordChanged = true; | 208 passwordChanged = true; |
| 209 Future.wait(makeRequests()).then((_) { | 209 Future.wait(makeRequests()).then((_) { |
| 210 server.shutdown(); | 210 server.shutdown(); |
| 211 client.shutdown(); | 211 client.shutdown(); |
| 212 }); | 212 }); |
| 213 }); | 213 }); |
| 214 }); | 214 }); |
| 215 } | 215 } |
| 216 | 216 |
| 217 void testLocalServerBasic() { | 217 void testLocalServerBasic() { |
| 218 HttpClient client = new HttpClient(); | 218 HttpClient client = new HttpClient(); |
| 219 | 219 |
| 220 client.authenticate = (Uri url, String scheme, String realm) { | 220 client.authenticate = (Uri url, String scheme, String realm) { |
| 221 client.addCredentials( | 221 client.addCredentials( |
| 222 new Uri.fromString("http://127.0.0.1/basic"), | 222 Uri.parse("http://127.0.0.1/basic"), |
| 223 "test", | 223 "test", |
| 224 new HttpClientBasicCredentials("test", "test")); | 224 new HttpClientBasicCredentials("test", "test")); |
| 225 return new Future.immediate(true); | 225 return new Future.immediate(true); |
| 226 }; | 226 }; |
| 227 | 227 |
| 228 HttpClientConnection conn = | 228 HttpClientConnection conn = |
| 229 client.getUrl(new Uri.fromString("http://127.0.0.1/basic/test")); | 229 client.getUrl(Uri.parse("http://127.0.0.1/basic/test")); |
| 230 conn.onResponse = (HttpClientResponse response) { | 230 conn.onResponse = (HttpClientResponse response) { |
| 231 Expect.equals(HttpStatus.OK, response.statusCode); | 231 Expect.equals(HttpStatus.OK, response.statusCode); |
| 232 response.inputStream.onData = () => response.inputStream.read(); | 232 response.inputStream.onData = () => response.inputStream.read(); |
| 233 response.inputStream.onClosed = () { | 233 response.inputStream.onClosed = () { |
| 234 client.shutdown(); | 234 client.shutdown(); |
| 235 }; | 235 }; |
| 236 }; | 236 }; |
| 237 } | 237 } |
| 238 | 238 |
| 239 void testLocalServerDigest() { | 239 void testLocalServerDigest() { |
| 240 HttpClient client = new HttpClient(); | 240 HttpClient client = new HttpClient(); |
| 241 | 241 |
| 242 client.authenticate = (Uri url, String scheme, String realm) { | 242 client.authenticate = (Uri url, String scheme, String realm) { |
| 243 print("url: $url, scheme: $scheme, realm: $realm"); | 243 print("url: $url, scheme: $scheme, realm: $realm"); |
| 244 client.addCredentials( | 244 client.addCredentials( |
| 245 new Uri.fromString("http://127.0.0.1/digest"), | 245 Uri.parse("http://127.0.0.1/digest"), |
| 246 "test", | 246 "test", |
| 247 new HttpClientDigestCredentials("test", "test")); | 247 new HttpClientDigestCredentials("test", "test")); |
| 248 return new Future.immediate(true); | 248 return new Future.immediate(true); |
| 249 }; | 249 }; |
| 250 | 250 |
| 251 HttpClientConnection conn = | 251 HttpClientConnection conn = |
| 252 client.getUrl(new Uri.fromString("http://127.0.0.1/digest/test")); | 252 client.getUrl(Uri.parse("http://127.0.0.1/digest/test")); |
| 253 conn.onResponse = (HttpClientResponse response) { | 253 conn.onResponse = (HttpClientResponse response) { |
| 254 Expect.equals(HttpStatus.OK, response.statusCode); | 254 Expect.equals(HttpStatus.OK, response.statusCode); |
| 255 response.inputStream.onData = () => response.inputStream.read(); | 255 response.inputStream.onData = () => response.inputStream.read(); |
| 256 response.inputStream.onClosed = () { | 256 response.inputStream.onClosed = () { |
| 257 client.shutdown(); | 257 client.shutdown(); |
| 258 }; | 258 }; |
| 259 }; | 259 }; |
| 260 } | 260 } |
| 261 | 261 |
| 262 main() { | 262 main() { |
| 263 testUrlUserInfo(); | 263 testUrlUserInfo(); |
| 264 testBasicNoCredentials(); | 264 testBasicNoCredentials(); |
| 265 testBasicCredentials(); | 265 testBasicCredentials(); |
| 266 testBasicAuthenticateCallback(); | 266 testBasicAuthenticateCallback(); |
| 267 // These teste are not normally run. They can be used for locally | 267 // These teste are not normally run. They can be used for locally |
| 268 // testing with another web server (e.g. Apache). | 268 // testing with another web server (e.g. Apache). |
| 269 //testLocalServerBasic(); | 269 //testLocalServerBasic(); |
| 270 //testLocalServerDigest(); | 270 //testLocalServerDigest(); |
| 271 } | 271 } |
| OLD | NEW |