| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS d.file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS d.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 library pub_tests; | 5 library pub_tests; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:convert'; | 8 import 'dart:convert'; |
| 9 import 'dart:io'; | 9 import 'dart:io'; |
| 10 | 10 |
| 11 import 'package:http/http.dart' as http; | 11 import 'package:http/http.dart' as http; |
| 12 import 'package:path/path.dart' as p; |
| 12 import 'package:scheduled_test/scheduled_process.dart'; | 13 import 'package:scheduled_test/scheduled_process.dart'; |
| 13 import 'package:scheduled_test/scheduled_test.dart'; | 14 import 'package:scheduled_test/scheduled_test.dart'; |
| 14 | 15 |
| 15 import '../test_pub.dart'; | 16 import '../test_pub.dart'; |
| 16 | 17 |
| 17 /// The pub process running "pub serve". | 18 /// The pub process running "pub serve". |
| 18 ScheduledProcess _pubServer; | 19 ScheduledProcess _pubServer; |
| 19 | 20 |
| 20 /// The ephemeral port assigned to the running server. | 21 /// The ephemeral port assigned to the running server. |
| 21 int _port; | 22 int _port; |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 /// Schedules an HTTP request to the running pub server with [urlPath] and | 183 /// Schedules an HTTP request to the running pub server with [urlPath] and |
| 183 /// verifies that it responds with a 404. | 184 /// verifies that it responds with a 404. |
| 184 void requestShould404(String urlPath) { | 185 void requestShould404(String urlPath) { |
| 185 schedule(() { | 186 schedule(() { |
| 186 return http.get("http://127.0.0.1:$_port/$urlPath").then((response) { | 187 return http.get("http://127.0.0.1:$_port/$urlPath").then((response) { |
| 187 expect(response.statusCode, equals(404)); | 188 expect(response.statusCode, equals(404)); |
| 188 }); | 189 }); |
| 189 }, "request $urlPath"); | 190 }, "request $urlPath"); |
| 190 } | 191 } |
| 191 | 192 |
| 193 /// Schedules an HTTP request to the running pub server with [urlPath] and |
| 194 /// verifies that it responds with a redirect to the given [redirectTarget]. |
| 195 /// |
| 196 /// [redirectTarget] may be either a [Matcher] or a string to match an exact |
| 197 /// URL. |
| 198 void requestShouldRedirect(String urlPath, redirectTarget) { |
| 199 schedule(() { |
| 200 var request = new http.Request("GET", |
| 201 Uri.parse("http://127.0.0.1:$_port/$urlPath")); |
| 202 request.followRedirects = false; |
| 203 return request.send().then((response) { |
| 204 expect(response.statusCode ~/ 100, equals(3)); |
| 205 |
| 206 expect(response.headers, containsPair('location', redirectTarget)); |
| 207 }); |
| 208 }, "request $urlPath"); |
| 209 } |
| 210 |
| 192 /// Schedules an HTTP POST to the running pub server with [urlPath] and verifies | 211 /// Schedules an HTTP POST to the running pub server with [urlPath] and verifies |
| 193 /// that it responds with a 405. | 212 /// that it responds with a 405. |
| 194 void postShould405(String urlPath) { | 213 void postShould405(String urlPath) { |
| 195 schedule(() { | 214 schedule(() { |
| 196 return http.post("http://127.0.0.1:$_port/$urlPath").then((response) { | 215 return http.post("http://127.0.0.1:$_port/$urlPath").then((response) { |
| 197 expect(response.statusCode, equals(405)); | 216 expect(response.statusCode, equals(405)); |
| 198 }); | 217 }); |
| 199 }, "request $urlPath"); | 218 }, "request $urlPath"); |
| 200 } | 219 } |
| 201 | 220 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 242 /// socket. It omitted, request is JSON encoded to a string first. | 261 /// socket. It omitted, request is JSON encoded to a string first. |
| 243 void webSocketShouldReply(request, expectation, {bool encodeRequest: true}) { | 262 void webSocketShouldReply(request, expectation, {bool encodeRequest: true}) { |
| 244 schedule(() => _ensureWebSocket().then((_) { | 263 schedule(() => _ensureWebSocket().then((_) { |
| 245 if (encodeRequest) request = JSON.encode(request); | 264 if (encodeRequest) request = JSON.encode(request); |
| 246 _webSocket.add(request); | 265 _webSocket.add(request); |
| 247 return _webSocketBroadcastStream.first.then((value) { | 266 return _webSocketBroadcastStream.first.then((value) { |
| 248 expect(JSON.decode(value), expectation); | 267 expect(JSON.decode(value), expectation); |
| 249 }); | 268 }); |
| 250 }), "send $request to web socket and expect reply that $expectation"); | 269 }), "send $request to web socket and expect reply that $expectation"); |
| 251 } | 270 } |
| OLD | NEW |