Index: pkg/http/test/utils.dart |
diff --git a/pkg/http/test/utils.dart b/pkg/http/test/utils.dart |
deleted file mode 100644 |
index f89a0c58ca447e278b579e6a66b22021ad52ea72..0000000000000000000000000000000000000000 |
--- a/pkg/http/test/utils.dart |
+++ /dev/null |
@@ -1,118 +0,0 @@ |
-// Copyright (c) 2013, 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 test_utils; |
- |
-import 'dart:convert'; |
- |
-import 'package:http/http.dart' as http; |
-import 'package:http_parser/http_parser.dart'; |
-import 'package:unittest/unittest.dart'; |
- |
-/// A dummy URL for constructing requests that won't be sent. |
-Uri get dummyUrl => Uri.parse('http://dartlang.org/'); |
- |
-/// Removes eight spaces of leading indentation from a multiline string. |
-/// |
-/// Note that this is very sensitive to how the literals are styled. They should |
-/// be: |
-/// ''' |
-/// Text starts on own line. Lines up with subsequent lines. |
-/// Lines are indented exactly 8 characters from the left margin. |
-/// Close is on the same line.''' |
-/// |
-/// This does nothing if text is only a single line. |
-// TODO(nweiz): Make this auto-detect the indentation level from the first |
-// non-whitespace line. |
-String cleanUpLiteral(String text) { |
- var lines = text.split('\n'); |
- if (lines.length <= 1) return text; |
- |
- for (var j = 0; j < lines.length; j++) { |
- if (lines[j].length > 8) { |
- lines[j] = lines[j].substring(8, lines[j].length); |
- } else { |
- lines[j] = ''; |
- } |
- } |
- |
- return lines.join('\n'); |
-} |
- |
-/// A matcher that matches JSON that parses to a value that matches the inner |
-/// matcher. |
-Matcher parse(matcher) => new _Parse(matcher); |
- |
-class _Parse extends Matcher { |
- final Matcher _matcher; |
- |
- _Parse(this._matcher); |
- |
- bool matches(item, Map matchState) { |
- if (item is! String) return false; |
- |
- var parsed; |
- try { |
- parsed = JSON.decode(item); |
- } catch (e) { |
- return false; |
- } |
- |
- return _matcher.matches(parsed, matchState); |
- } |
- |
- Description describe(Description description) { |
- return description.add('parses to a value that ') |
- .addDescriptionOf(_matcher); |
- } |
-} |
- |
-/// A matcher that validates the body of a multipart request after finalization. |
-/// The string "{{boundary}}" in [pattern] will be replaced by the boundary |
-/// string for the request, and LF newlines will be replaced with CRLF. |
-/// Indentation will be normalized. |
-Matcher bodyMatches(String pattern) => new _BodyMatches(pattern); |
- |
-class _BodyMatches extends Matcher { |
- final String _pattern; |
- |
- _BodyMatches(this._pattern); |
- |
- bool matches(item, Map matchState) { |
- if (item is! http.MultipartRequest) return false; |
- |
- var future = item.finalize().toBytes().then((bodyBytes) { |
- var body = UTF8.decode(bodyBytes); |
- var contentType = new MediaType.parse(item.headers['content-type']); |
- var boundary = contentType.parameters['boundary']; |
- var expected = cleanUpLiteral(_pattern) |
- .replaceAll("\n", "\r\n") |
- .replaceAll("{{boundary}}", boundary); |
- |
- expect(body, equals(expected)); |
- expect(item.contentLength, equals(bodyBytes.length)); |
- }); |
- |
- return completes.matches(future, matchState); |
- } |
- |
- Description describe(Description description) { |
- return description.add('has a body that matches "$_pattern"'); |
- } |
-} |
- |
-/// A matcher that matches a [http.ClientException] with the given [message]. |
-/// |
-/// [message] can be a String or a [Matcher]. |
-Matcher isClientException(message) => predicate((error) { |
- expect(error, new isInstanceOf<http.ClientException>()); |
- expect(error.message, message); |
- return true; |
-}); |
- |
-/// A matcher that matches function or future that throws a |
-/// [http.ClientException] with the given [message]. |
-/// |
-/// [message] can be a String or a [Matcher]. |
-Matcher throwsClientException(message) => throwsA(isClientException(message)); |