Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(820)

Side by Side Diff: pkg/http/test/http_test.dart

Issue 12316036: Merge IO v2 branch to bleeding edge (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rebased to r18818 Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « pkg/http/test/client_test.dart ('k') | pkg/http/test/request_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 library http_test; 5 library http_test;
6 6
7 import 'dart:io'; 7 import 'dart:io';
8 8
9 import 'package:unittest/unittest.dart'; 9 import 'package:unittest/unittest.dart';
10 import 'package:http/http.dart' as http; 10 import 'package:http/http.dart' as http;
11 import 'utils.dart'; 11 import 'utils.dart';
12 12
13 main() { 13 main() {
14 group('http.', () { 14 group('http.', () {
15 setUp(startServer);
16 tearDown(stopServer); 15 tearDown(stopServer);
17 16
18 test('head', () { 17 test('head', () {
19 expect(http.head(serverUrl).then((response) { 18 expect(startServer().then((_) {
20 expect(response.statusCode, equals(200)); 19 expect(http.head(serverUrl).then((response) {
21 expect(response.body, equals('')); 20 expect(response.statusCode, equals(200));
21 expect(response.body, equals(''));
22 }), completes);
22 }), completes); 23 }), completes);
23 }); 24 });
24 25
25 test('get', () { 26 test('get', () {
26 expect(http.get(serverUrl, headers: { 27 expect(startServer().then((_) {
27 'X-Random-Header': 'Value', 28 expect(http.get(serverUrl, headers: {
28 'X-Other-Header': 'Other Value' 29 'X-Random-Header': 'Value',
29 }).then((response) { 30 'X-Other-Header': 'Other Value'
30 expect(response.statusCode, equals(200)); 31 }).then((response) {
31 expect(response.body, parse(equals({ 32 expect(response.statusCode, equals(200));
33 expect(response.body, parse(equals({
34 'method': 'GET',
35 'path': '/',
36 'headers': {
37 'content-length': ['0'],
38 'x-random-header': ['Value'],
39 'x-other-header': ['Other Value']
40 },
41 })));
42 }), completes);
43 }), completes);
44 });
45
46 test('post', () {
47 expect(startServer().then((_) {
48 expect(http.post(serverUrl, headers: {
49 'X-Random-Header': 'Value',
50 'X-Other-Header': 'Other Value'
51 }, fields: {
52 'some-field': 'value',
53 'other-field': 'other value'
54 }).then((response) {
55 expect(response.statusCode, equals(200));
56 expect(response.body, parse(equals({
57 'method': 'POST',
58 'path': '/',
59 'headers': {
60 'content-type': [
61 'application/x-www-form-urlencoded; charset=UTF-8'
62 ],
63 'content-length': ['40'],
64 'x-random-header': ['Value'],
65 'x-other-header': ['Other Value']
66 },
67 'body': 'some-field=value&other-field=other+value'
68 })));
69 }), completes);
70 }), completes);
71 });
72
73 test('post without fields', () {
74 expect(startServer().then((_) {
75 expect(http.post(serverUrl, headers: {
76 'X-Random-Header': 'Value',
77 'X-Other-Header': 'Other Value',
78 'Content-Type': 'text/plain'
79 }).then((response) {
80 expect(response.statusCode, equals(200));
81 expect(response.body, parse(equals({
82 'method': 'POST',
83 'path': '/',
84 'headers': {
85 'content-length': ['0'],
86 'content-type': ['text/plain'],
87 'x-random-header': ['Value'],
88 'x-other-header': ['Other Value']
89 }
90 })));
91 }), completes);
92 }), completes);
93 });
94
95 test('put', () {
96 expect(startServer().then((_) {
97 expect(http.put(serverUrl, headers: {
98 'X-Random-Header': 'Value',
99 'X-Other-Header': 'Other Value'
100 }, fields: {
101 'some-field': 'value',
102 'other-field': 'other value'
103 }).then((response) {
104 expect(response.statusCode, equals(200));
105 expect(response.body, parse(equals({
106 'method': 'PUT',
107 'path': '/',
108 'headers': {
109 'content-type': [
110 'application/x-www-form-urlencoded; charset=UTF-8'
111 ],
112 'content-length': ['40'],
113 'x-random-header': ['Value'],
114 'x-other-header': ['Other Value']
115 },
116 'body': 'some-field=value&other-field=other+value'
117 })));
118 }), completes);
119 }), completes);
120 });
121
122 test('put without fields', () {
123 expect(startServer().then((_) {
124 expect(http.put(serverUrl, headers: {
125 'X-Random-Header': 'Value',
126 'X-Other-Header': 'Other Value',
127 'Content-Type': 'text/plain'
128 }).then((response) {
129 expect(response.statusCode, equals(200));
130 expect(response.body, parse(equals({
131 'method': 'PUT',
132 'path': '/',
133 'headers': {
134 'content-length': ['0'],
135 'content-type': ['text/plain'],
136 'x-random-header': ['Value'],
137 'x-other-header': ['Other Value']
138 }
139 })));
140 }), completes);
141 }), completes);
142 });
143
144 test('delete', () {
145 expect(startServer().then((_) {
146 expect(http.delete(serverUrl, headers: {
147 'X-Random-Header': 'Value',
148 'X-Other-Header': 'Other Value'
149 }).then((response) {
150 expect(response.statusCode, equals(200));
151 expect(response.body, parse(equals({
152 'method': 'DELETE',
153 'path': '/',
154 'headers': {
155 'content-length': ['0'],
156 'x-random-header': ['Value'],
157 'x-other-header': ['Other Value']
158 }
159 })));
160 }), completes);
161 }), completes);
162 });
163
164 test('read', () {
165 expect(startServer().then((_) {
166 expect(http.read(serverUrl, headers: {
167 'X-Random-Header': 'Value',
168 'X-Other-Header': 'Other Value'
169 }).then((val) => val), completion(parse(equals({
32 'method': 'GET', 170 'method': 'GET',
33 'path': '/', 171 'path': '/',
34 'headers': { 172 'headers': {
35 'content-length': ['0'], 173 'content-length': ['0'],
36 'x-random-header': ['Value'], 174 'x-random-header': ['Value'],
37 'x-other-header': ['Other Value'] 175 'x-other-header': ['Other Value']
38 }, 176 },
39 }))); 177 }))));
40 }), completes); 178 }), completes);
41 }); 179 });
42 180
43 test('post', () { 181 test('read throws an error for a 4** status code', () {
44 expect(http.post(serverUrl, headers: { 182 expect(startServer().then((_) {
45 'X-Random-Header': 'Value', 183 expect(http.read(serverUrl.resolve('/error')), throwsHttpException);
46 'X-Other-Header': 'Other Value' 184 }), completes);
47 }, fields: { 185 });
48 'some-field': 'value', 186
49 'other-field': 'other value' 187 test('readBytes', () {
50 }).then((response) { 188 expect(startServer().then((_) {
51 expect(response.statusCode, equals(200)); 189 var future = http.readBytes(serverUrl, headers: {
52 expect(response.body, parse(equals({ 190 'X-Random-Header': 'Value',
53 'method': 'POST', 191 'X-Other-Header': 'Other Value'
54 'path': '/', 192 }).then((bytes) => new String.fromCharCodes(bytes));
55 'headers': { 193
56 'content-type': [ 194 expect(future, completion(parse(equals({
57 'application/x-www-form-urlencoded; charset=UTF-8' 195 'method': 'GET',
58 ],
59 'content-length': ['40'],
60 'x-random-header': ['Value'],
61 'x-other-header': ['Other Value']
62 },
63 'body': 'some-field=value&other-field=other+value'
64 })));
65 }), completes);
66 });
67
68 test('post without fields', () {
69 expect(http.post(serverUrl, headers: {
70 'X-Random-Header': 'Value',
71 'X-Other-Header': 'Other Value',
72 'Content-Type': 'text/plain'
73 }).then((response) {
74 expect(response.statusCode, equals(200));
75 expect(response.body, parse(equals({
76 'method': 'POST',
77 'path': '/',
78 'headers': {
79 'content-length': ['0'],
80 'content-type': ['text/plain'],
81 'x-random-header': ['Value'],
82 'x-other-header': ['Other Value']
83 }
84 })));
85 }), completes);
86 });
87
88 test('put', () {
89 expect(http.put(serverUrl, headers: {
90 'X-Random-Header': 'Value',
91 'X-Other-Header': 'Other Value'
92 }, fields: {
93 'some-field': 'value',
94 'other-field': 'other value'
95 }).then((response) {
96 expect(response.statusCode, equals(200));
97 expect(response.body, parse(equals({
98 'method': 'PUT',
99 'path': '/',
100 'headers': {
101 'content-type': [
102 'application/x-www-form-urlencoded; charset=UTF-8'
103 ],
104 'content-length': ['40'],
105 'x-random-header': ['Value'],
106 'x-other-header': ['Other Value']
107 },
108 'body': 'some-field=value&other-field=other+value'
109 })));
110 }), completes);
111 });
112
113 test('put without fields', () {
114 expect(http.put(serverUrl, headers: {
115 'X-Random-Header': 'Value',
116 'X-Other-Header': 'Other Value',
117 'Content-Type': 'text/plain'
118 }).then((response) {
119 expect(response.statusCode, equals(200));
120 expect(response.body, parse(equals({
121 'method': 'PUT',
122 'path': '/',
123 'headers': {
124 'content-length': ['0'],
125 'content-type': ['text/plain'],
126 'x-random-header': ['Value'],
127 'x-other-header': ['Other Value']
128 }
129 })));
130 }), completes);
131 });
132
133 test('delete', () {
134 expect(http.delete(serverUrl, headers: {
135 'X-Random-Header': 'Value',
136 'X-Other-Header': 'Other Value'
137 }).then((response) {
138 expect(response.statusCode, equals(200));
139 expect(response.body, parse(equals({
140 'method': 'DELETE',
141 'path': '/', 196 'path': '/',
142 'headers': { 197 'headers': {
143 'content-length': ['0'], 198 'content-length': ['0'],
144 'x-random-header': ['Value'], 199 'x-random-header': ['Value'],
145 'x-other-header': ['Other Value'] 200 'x-other-header': ['Other Value']
146 } 201 },
147 }))); 202 }))));
148 }), completes); 203 }), completes);
149 });
150
151 test('read', () {
152 expect(http.read(serverUrl, headers: {
153 'X-Random-Header': 'Value',
154 'X-Other-Header': 'Other Value'
155 }).then((val) => val), completion(parse(equals({
156 'method': 'GET',
157 'path': '/',
158 'headers': {
159 'content-length': ['0'],
160 'x-random-header': ['Value'],
161 'x-other-header': ['Other Value']
162 },
163 }))));
164 });
165
166 test('read throws an error for a 4** status code', () {
167 expect(http.read(serverUrl.resolve('/error')), throwsHttpException);
168 });
169
170 test('readBytes', () {
171 var future = http.readBytes(serverUrl, headers: {
172 'X-Random-Header': 'Value',
173 'X-Other-Header': 'Other Value'
174 }).then((bytes) => new String.fromCharCodes(bytes));
175
176 expect(future, completion(parse(equals({
177 'method': 'GET',
178 'path': '/',
179 'headers': {
180 'content-length': ['0'],
181 'x-random-header': ['Value'],
182 'x-other-header': ['Other Value']
183 },
184 }))));
185 }); 204 });
186 205
187 test('readBytes throws an error for a 4** status code', () { 206 test('readBytes throws an error for a 4** status code', () {
188 expect(http.readBytes(serverUrl.resolve('/error')), throwsHttpException); 207 expect(startServer().then((_) {
208 expect(http.readBytes(serverUrl.resolve('/error')), throwsHttpException) ;
209 }), completes);
189 }); 210 });
190 }); 211 });
191 } 212 }
OLDNEW
« no previous file with comments | « pkg/http/test/client_test.dart ('k') | pkg/http/test/request_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698