| OLD | NEW |
| (Empty) | |
| 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 |
| 3 // BSD-style license that can be found in the LICENSE file. |
| 4 |
| 5 library http_test; |
| 6 |
| 7 import 'dart:io'; |
| 8 |
| 9 import '../../unittest/lib/unittest.dart'; |
| 10 import '../lib/http.dart' as http; |
| 11 import 'utils.dart'; |
| 12 |
| 13 main() { |
| 14 group('http.', () { |
| 15 setUp(startServer); |
| 16 tearDown(stopServer); |
| 17 |
| 18 test('head', () { |
| 19 expect(http.head(serverUrl).transform((response) { |
| 20 expect(response.statusCode, equals(200)); |
| 21 expect(response.body, equals('')); |
| 22 }), completes); |
| 23 }); |
| 24 |
| 25 test('get', () { |
| 26 expect(http.get(serverUrl, headers: { |
| 27 'X-Random-Header': 'Value', |
| 28 'X-Other-Header': 'Other Value' |
| 29 }).transform((response) { |
| 30 expect(response.statusCode, equals(200)); |
| 31 expect(response.body, parse(equals({ |
| 32 'method': 'GET', |
| 33 'path': '/', |
| 34 'headers': { |
| 35 'x-random-header': ['Value'], |
| 36 'x-other-header': ['Other Value'] |
| 37 }, |
| 38 }))); |
| 39 }), completes); |
| 40 }); |
| 41 |
| 42 test('post', () { |
| 43 expect(http.post(serverUrl, headers: { |
| 44 'X-Random-Header': 'Value', |
| 45 'X-Other-Header': 'Other Value' |
| 46 }, fields: { |
| 47 'some-field': 'value', |
| 48 'other-field': 'other value' |
| 49 }).transform((response) { |
| 50 expect(response.statusCode, equals(200)); |
| 51 expect(response.body, parse(equals({ |
| 52 'method': 'POST', |
| 53 'path': '/', |
| 54 'headers': { |
| 55 'content-type': [ |
| 56 'application/x-www-form-urlencoded; charset=UTF-8' |
| 57 ], |
| 58 'content-length': ['42'], |
| 59 'x-random-header': ['Value'], |
| 60 'x-other-header': ['Other Value'] |
| 61 }, |
| 62 'body': 'some-field=value&other-field=other%20value' |
| 63 }))); |
| 64 }), completes); |
| 65 }); |
| 66 |
| 67 test('post without fields', () { |
| 68 expect(http.post(serverUrl, headers: { |
| 69 'X-Random-Header': 'Value', |
| 70 'X-Other-Header': 'Other Value', |
| 71 'Content-Type': 'text/plain' |
| 72 }).transform((response) { |
| 73 expect(response.statusCode, equals(200)); |
| 74 expect(response.body, parse(equals({ |
| 75 'method': 'POST', |
| 76 'path': '/', |
| 77 'headers': { |
| 78 'content-type': ['text/plain'], |
| 79 'x-random-header': ['Value'], |
| 80 'x-other-header': ['Other Value'] |
| 81 } |
| 82 }))); |
| 83 }), completes); |
| 84 }); |
| 85 |
| 86 test('put', () { |
| 87 expect(http.put(serverUrl, headers: { |
| 88 'X-Random-Header': 'Value', |
| 89 'X-Other-Header': 'Other Value' |
| 90 }, fields: { |
| 91 'some-field': 'value', |
| 92 'other-field': 'other value' |
| 93 }).transform((response) { |
| 94 expect(response.statusCode, equals(200)); |
| 95 expect(response.body, parse(equals({ |
| 96 'method': 'PUT', |
| 97 'path': '/', |
| 98 'headers': { |
| 99 'content-type': [ |
| 100 'application/x-www-form-urlencoded; charset=UTF-8' |
| 101 ], |
| 102 'content-length': ['42'], |
| 103 'x-random-header': ['Value'], |
| 104 'x-other-header': ['Other Value'] |
| 105 }, |
| 106 'body': 'some-field=value&other-field=other%20value' |
| 107 }))); |
| 108 }), completes); |
| 109 }); |
| 110 |
| 111 test('put without fields', () { |
| 112 expect(http.put(serverUrl, headers: { |
| 113 'X-Random-Header': 'Value', |
| 114 'X-Other-Header': 'Other Value', |
| 115 'Content-Type': 'text/plain' |
| 116 }).transform((response) { |
| 117 expect(response.statusCode, equals(200)); |
| 118 expect(response.body, parse(equals({ |
| 119 'method': 'PUT', |
| 120 'path': '/', |
| 121 'headers': { |
| 122 'content-type': ['text/plain'], |
| 123 'x-random-header': ['Value'], |
| 124 'x-other-header': ['Other Value'] |
| 125 } |
| 126 }))); |
| 127 }), completes); |
| 128 }); |
| 129 |
| 130 test('delete', () { |
| 131 expect(http.delete(serverUrl, headers: { |
| 132 'X-Random-Header': 'Value', |
| 133 'X-Other-Header': 'Other Value' |
| 134 }).transform((response) { |
| 135 expect(response.statusCode, equals(200)); |
| 136 expect(response.body, parse(equals({ |
| 137 'method': 'DELETE', |
| 138 'path': '/', |
| 139 'headers': { |
| 140 'x-random-header': ['Value'], |
| 141 'x-other-header': ['Other Value'] |
| 142 } |
| 143 }))); |
| 144 }), completes); |
| 145 }); |
| 146 |
| 147 test('read', () { |
| 148 expect(http.read(serverUrl, headers: { |
| 149 'X-Random-Header': 'Value', |
| 150 'X-Other-Header': 'Other Value' |
| 151 }), completion(parse(equals({ |
| 152 'method': 'GET', |
| 153 'path': '/', |
| 154 'headers': { |
| 155 'x-random-header': ['Value'], |
| 156 'x-other-header': ['Other Value'] |
| 157 }, |
| 158 })))); |
| 159 }); |
| 160 |
| 161 test('read throws an error for a 4** status code', () { |
| 162 expect(http.read(serverUrl.resolve('/error')), throwsHttpException); |
| 163 }); |
| 164 |
| 165 test('readBytes', () { |
| 166 var future = http.readBytes(serverUrl, headers: { |
| 167 'X-Random-Header': 'Value', |
| 168 'X-Other-Header': 'Other Value' |
| 169 }).transform((bytes) => new String.fromCharCodes(bytes)); |
| 170 |
| 171 expect(future, completion(parse(equals({ |
| 172 'method': 'GET', |
| 173 'path': '/', |
| 174 'headers': { |
| 175 'x-random-header': ['Value'], |
| 176 'x-other-header': ['Other Value'] |
| 177 }, |
| 178 })))); |
| 179 }); |
| 180 |
| 181 test('readBytes throws an error for a 4** status code', () { |
| 182 expect(http.readBytes(serverUrl.resolve('/error')), throwsHttpException); |
| 183 }); |
| 184 }); |
| 185 } |
| OLD | NEW |