Index: pkg/shelf/test/request_test.dart |
diff --git a/pkg/shelf/test/request_test.dart b/pkg/shelf/test/request_test.dart |
deleted file mode 100644 |
index fed460f2f6bd3921d9a02b4ff21492e5fbb8724d..0000000000000000000000000000000000000000 |
--- a/pkg/shelf/test/request_test.dart |
+++ /dev/null |
@@ -1,209 +0,0 @@ |
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-library shelf.request_test; |
- |
-import 'dart:async'; |
- |
-import 'package:shelf/shelf.dart'; |
-import 'package:unittest/unittest.dart'; |
- |
-import 'test_util.dart'; |
- |
-Request _request([Map<String, String> headers, Stream<List<int>> body]) { |
- return new Request("GET", LOCALHOST_URI, headers: headers, body: body); |
-} |
- |
-void main() { |
- group('constructor', () { |
- test('protocolVersion defaults to "1.1"', () { |
- var request = new Request('GET', LOCALHOST_URI); |
- expect(request.protocolVersion, '1.1'); |
- }); |
- |
- test('provide non-default protocolVersion', () { |
- var request = new Request('GET', LOCALHOST_URI, protocolVersion: '1.0'); |
- expect(request.protocolVersion, '1.0'); |
- }); |
- |
- test('requestedUri must be absolute', () { |
- expect(() => new Request('GET', Uri.parse('/path')), |
- throwsArgumentError); |
- }); |
- |
- test('if uri is null, scriptName must be null', () { |
- expect(() => new Request('GET', Uri.parse('/path'), |
- scriptName: '/script/name'), throwsArgumentError); |
- }); |
- |
- test('if scriptName is null, uri must be null', () { |
- var relativeUri = new Uri(path: '/cool/beans.html'); |
- expect(() => new Request('GET', Uri.parse('/path'), |
- url: relativeUri), throwsArgumentError); |
- }); |
- |
- test('uri must be relative', () { |
- var relativeUri = Uri.parse('http://localhost/test'); |
- |
- expect(() => new Request('GET', LOCALHOST_URI, |
- url: relativeUri, scriptName: '/news'), |
- throwsArgumentError); |
- |
- // NOTE: explicitly testing fragments due to Issue 18053 |
- relativeUri = Uri.parse('http://localhost/test#fragment'); |
- |
- expect(() => new Request('GET', LOCALHOST_URI, |
- url: relativeUri, scriptName: '/news'), |
- throwsArgumentError); |
- }); |
- |
- test('uri and scriptName', () { |
- var pathInfo = '/pages/page.html?utm_source=ABC123'; |
- var scriptName = '/assets/static'; |
- var fullUrl = 'http://localhost/other_path/other_resource.asp'; |
- var request = new Request('GET', Uri.parse(fullUrl), |
- url: Uri.parse(pathInfo), scriptName: scriptName); |
- |
- expect(request.scriptName, scriptName); |
- expect(request.url.path, '/pages/page.html'); |
- expect(request.url.query, 'utm_source=ABC123'); |
- }); |
- |
- test('minimal uri', () { |
- var pathInfo = '/'; |
- var scriptName = '/assets/static'; |
- var fullUrl = 'http://localhost$scriptName$pathInfo'; |
- var request = new Request('GET', Uri.parse(fullUrl), |
- url: Uri.parse(pathInfo), scriptName: scriptName); |
- |
- expect(request.scriptName, scriptName); |
- expect(request.url.path, '/'); |
- expect(request.url.query, ''); |
- }); |
- |
- test('invalid url', () { |
- var testUrl = 'page'; |
- var scriptName = '/assets/static'; |
- var fullUrl = 'http://localhost$scriptName$testUrl'; |
- |
- expect(() => new Request('GET', Uri.parse(fullUrl), |
- url: Uri.parse(testUrl), scriptName: scriptName), |
- throwsArgumentError); |
- }); |
- |
- test('scriptName with no leading slash', () { |
- var pathInfo = '/page'; |
- var scriptName = 'assets/static'; |
- var fullUrl = 'http://localhost/assets/static/pages'; |
- |
- expect(() => new Request('GET',Uri.parse(fullUrl), |
- url: Uri.parse(pathInfo), scriptName: scriptName), |
- throwsArgumentError); |
- |
- pathInfo = '/assets/static/page'; |
- scriptName = '/'; |
- fullUrl = 'http://localhost/assets/static/pages'; |
- |
- expect(() => new Request('GET',Uri.parse(fullUrl), |
- url: Uri.parse(pathInfo), scriptName: scriptName), |
- throwsArgumentError); |
- }); |
- |
- test('scriptName that is only a slash', () { |
- var pathInfo = '/assets/static/page'; |
- var scriptName = '/'; |
- var fullUrl = 'http://localhost/assets/static/pages'; |
- |
- expect(() => new Request('GET',Uri.parse(fullUrl), |
- url: Uri.parse(pathInfo), scriptName: scriptName), |
- throwsArgumentError); |
- }); |
- }); |
- |
- group("ifModifiedSince", () { |
- test("is null without an If-Modified-Since header", () { |
- var request = _request(); |
- expect(request.ifModifiedSince, isNull); |
- }); |
- |
- test("comes from the Last-Modified header", () { |
- var request = _request({ |
- 'if-modified-since': 'Sun, 06 Nov 1994 08:49:37 GMT' |
- }); |
- expect(request.ifModifiedSince, |
- equals(DateTime.parse("1994-11-06 08:49:37z"))); |
- }); |
- }); |
- |
- group('change', () { |
- test('with no arguments returns instance with equal values', () { |
- var controller = new StreamController(); |
- |
- var uri = Uri.parse('https://test.example.com/static/file.html'); |
- |
- var request = new Request('GET', uri, |
- protocolVersion: '2.0', |
- headers: {'header1': 'header value 1'}, |
- url: Uri.parse('/file.html'), |
- scriptName: '/static', |
- body: controller.stream, |
- context: {'context1': 'context value 1'}); |
- |
- var copy = request.change(); |
- |
- expect(copy.method, request.method); |
- expect(copy.requestedUri, request.requestedUri); |
- expect(copy.protocolVersion, request.protocolVersion); |
- expect(copy.headers, same(request.headers)); |
- expect(copy.url, request.url); |
- expect(copy.scriptName, request.scriptName); |
- expect(copy.context, same(request.context)); |
- expect(copy.readAsString(), completion('hello, world')); |
- |
- controller.add(HELLO_BYTES); |
- return new Future(() { |
- controller |
- ..add(WORLD_BYTES) |
- ..close(); |
- }); |
- }); |
- |
- group('with just scriptName', () { |
- test('updates url if scriptName matches existing url', () { |
- var uri = Uri.parse('https://test.example.com/static/file.html'); |
- var request = new Request('GET', uri); |
- var copy = request.change(scriptName: '/static'); |
- |
- expect(copy.scriptName, '/static'); |
- expect(copy.url, Uri.parse('/file.html')); |
- }); |
- |
- test('throws if striptName does not match existing url', () { |
- var uri = Uri.parse('https://test.example.com/static/file.html'); |
- var request = new Request('GET', uri); |
- |
- expect(() => request.change(scriptName: '/nope'), throwsArgumentError); |
- }); |
- }); |
- |
- test('url', () { |
- var uri = Uri.parse('https://test.example.com/static/file.html'); |
- var request = new Request('GET', uri); |
- var copy = request.change(url: Uri.parse('/other_path/file.html')); |
- |
- expect(copy.scriptName, ''); |
- expect(copy.url, Uri.parse('/other_path/file.html')); |
- }); |
- |
- test('scriptName and url', () { |
- var uri = Uri.parse('https://test.example.com/static/file.html'); |
- var request = new Request('GET', uri); |
- var copy = request.change(scriptName: '/dynamic', |
- url: Uri.parse('/other_path/file.html')); |
- |
- expect(copy.scriptName, '/dynamic'); |
- expect(copy.url, Uri.parse('/other_path/file.html')); |
- }); |
- }); |
-} |