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

Side by Side Diff: pkg/http_server/test/virtual_directory_test.dart

Issue 17570006: Don't test links on Windows, as we can't create relative links, in http_server. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 6 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 | « no previous file | no next file » | 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 import 'dart:io'; 5 import 'dart:io';
6 6
7 import "package:unittest/unittest.dart"; 7 import "package:unittest/unittest.dart";
8 import "package:http_server/http_server.dart"; 8 import "package:http_server/http_server.dart";
9 9
10 10
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 server.close(); 128 server.close();
129 file.deleteSync(); 129 file.deleteSync();
130 dir2.deleteSync(); 130 dir2.deleteSync();
131 dir.deleteSync(); 131 dir.deleteSync();
132 }); 132 });
133 }), completion(equals(HttpStatus.NOT_FOUND))); 133 }), completion(equals(HttpStatus.NOT_FOUND)));
134 }); 134 });
135 }); 135 });
136 }); 136 });
137 137
138 group('links', () { 138 group('links', () {
Søren Gjesse 2013/06/24 09:49:57 group is missing a predicate argument.
139 group('follow-links', () { 139 if (!Platform.isWindows) {
140 test('dir-link', () { 140 group('follow-links', () {
141 expect(HttpServer.bind('localhost', 0).then((server) { 141 test('dir-link', () {
142 var dir = new Directory('').createTempSync();
143 var dir2 = new Directory('${dir.path}/dir2')..createSync();
144 var link = new Link('${dir.path}/dir3')..createSync('dir2');
145 var file = new File('${dir2.path}/file')..createSync();
146 var virDir = new VirtualDirectory(dir.path);
147 virDir.followLinks = true;
148
149 virDir.serve(server);
150
151 return new HttpClient().get('localhost', server.port, '/dir3/file')
152 .then((request) => request.close())
153 .then((response) => response.drain().then(
154 (_) => response.statusCode))
155 .whenComplete(() {
156 server.close();
157 dir.deleteSync(recursive: true);
158 });
159 }), completion(equals(HttpStatus.OK)));
160 });
161
162 test('root-link', () {
163 expect(HttpServer.bind('localhost', 0).then((server) {
164 var dir = new Directory('').createTempSync();
165 var link = new Link('${dir.path}/dir3')..createSync('.');
166 var file = new File('${dir.path}/file')..createSync();
167 var virDir = new VirtualDirectory(dir.path);
168 virDir.followLinks = true;
169
170 virDir.serve(server);
171
172 return new HttpClient().get('localhost', server.port, '/dir3/file')
173 .then((request) => request.close())
174 .then((response) => response.drain().then(
175 (_) => response.statusCode))
176 .whenComplete(() {
177 server.close();
178 dir.deleteSync(recursive: true);
179 });
180 }), completion(equals(HttpStatus.OK)));
181 });
182
183 group('bad-links', () {
184 test('absolute-link', () {
185 expect(HttpServer.bind('localhost', 0).then((server) { 142 expect(HttpServer.bind('localhost', 0).then((server) {
186 var dir = new Directory('').createTempSync(); 143 var dir = new Directory('').createTempSync();
187 var file = new File('${dir.path}/file')..createSync(); 144 var dir2 = new Directory('${dir.path}/dir2')..createSync();
188 var link = new Link('${dir.path}/dir3') 145 var link = new Link('${dir.path}/dir3')..createSync('dir2');
189 ..createSync('${dir.path}/file'); 146 var file = new File('${dir2.path}/file')..createSync();
190 var virDir = new VirtualDirectory(dir.path); 147 var virDir = new VirtualDirectory(dir.path);
191 virDir.followLinks = true; 148 virDir.followLinks = true;
192 149
193 virDir.serve(server); 150 virDir.serve(server);
194 151
195 return new HttpClient().get('localhost', server.port, '/dir3/file') 152 return new HttpClient().get('localhost', server.port, '/dir3/file')
196 .then((request) => request.close()) 153 .then((request) => request.close())
197 .then((response) => response.drain().then( 154 .then((response) => response.drain().then(
198 (_) => response.statusCode)) 155 (_) => response.statusCode))
199 .whenComplete(() { 156 .whenComplete(() {
200 server.close(); 157 server.close();
201 dir.deleteSync(recursive: true); 158 dir.deleteSync(recursive: true);
202 }); 159 });
203 }), completion(equals(HttpStatus.NOT_FOUND))); 160 }), completion(equals(HttpStatus.OK)));
204 }); 161 });
205 162
206 test('relative-parent-link', () { 163 test('root-link', () {
207 expect(HttpServer.bind('localhost', 0).then((server) { 164 expect(HttpServer.bind('localhost', 0).then((server) {
208 var dir = new Directory('').createTempSync(); 165 var dir = new Directory('').createTempSync();
209 var name = new Path(dir.path).filename; 166 var link = new Link('${dir.path}/dir3')..createSync('.');
210 var file = new File('${dir.path}/file')..createSync(); 167 var file = new File('${dir.path}/file')..createSync();
211 var link = new Link('${dir.path}/dir3')
212 ..createSync('../$name/file');
213 var virDir = new VirtualDirectory(dir.path); 168 var virDir = new VirtualDirectory(dir.path);
214 virDir.followLinks = true; 169 virDir.followLinks = true;
215 170
216 virDir.serve(server); 171 virDir.serve(server);
217 172
218 return new HttpClient().get('localhost', server.port, '/dir3/file') 173 return new HttpClient().get('localhost', server.port, '/dir3/file')
219 .then((request) => request.close()) 174 .then((request) => request.close())
220 .then((response) => response.drain().then( 175 .then((response) => response.drain().then(
221 (_) => response.statusCode)) 176 (_) => response.statusCode))
222 .whenComplete(() { 177 .whenComplete(() {
223 server.close(); 178 server.close();
224 dir.deleteSync(recursive: true); 179 dir.deleteSync(recursive: true);
225 }); 180 });
181 }), completion(equals(HttpStatus.OK)));
182 });
183
184 group('bad-links', () {
185 test('absolute-link', () {
186 expect(HttpServer.bind('localhost', 0).then((server) {
187 var dir = new Directory('').createTempSync();
188 var file = new File('${dir.path}/file')..createSync();
189 var link = new Link('${dir.path}/dir3')
190 ..createSync('${dir.path}/file');
191 var virDir = new VirtualDirectory(dir.path);
192 virDir.followLinks = true;
193
194 virDir.serve(server);
195
196 return new HttpClient().get('localhost',
197 server.port,
198 '/dir3/file')
199 .then((request) => request.close())
200 .then((response) => response.drain().then(
201 (_) => response.statusCode))
202 .whenComplete(() {
203 server.close();
204 dir.deleteSync(recursive: true);
205 });
206 }), completion(equals(HttpStatus.NOT_FOUND)));
207 });
208
209 test('relative-parent-link', () {
210 expect(HttpServer.bind('localhost', 0).then((server) {
211 var dir = new Directory('').createTempSync();
212 var name = new Path(dir.path).filename;
213 var file = new File('${dir.path}/file')..createSync();
214 var link = new Link('${dir.path}/dir3')
215 ..createSync('../$name/file');
216 var virDir = new VirtualDirectory(dir.path);
217 virDir.followLinks = true;
218
219 virDir.serve(server);
220
221 return new HttpClient().get('localhost',
222 server.port,
223 '/dir3/file')
224 .then((request) => request.close())
225 .then((response) => response.drain().then(
226 (_) => response.statusCode))
227 .whenComplete(() {
228 server.close();
229 dir.deleteSync(recursive: true);
230 });
231 }), completion(equals(HttpStatus.NOT_FOUND)));
232 });
233 });
234 });
235
236 group('not-follow-links', () {
237 test('dir-link', () {
238 expect(HttpServer.bind('localhost', 0).then((server) {
239 var dir = new Directory('').createTempSync();
240 var dir2 = new Directory('${dir.path}/dir2')..createSync();
241 var link = new Link('${dir.path}/dir3')..createSync('dir2');
242 var file = new File('${dir2.path}/file')..createSync();
243 var virDir = new VirtualDirectory(dir.path);
244 virDir.followLinks = false;
245
246 virDir.serve(server);
247
248 return new HttpClient().get('localhost', server.port, '/dir3/file')
249 .then((request) => request.close())
250 .then((response) => response.drain().then(
251 (_) => response.statusCode))
252 .whenComplete(() {
253 server.close();
254 dir.deleteSync(recursive: true);
255 });
226 }), completion(equals(HttpStatus.NOT_FOUND))); 256 }), completion(equals(HttpStatus.NOT_FOUND)));
227 }); 257 });
228 }); 258 });
229 }); 259 }
230
231 group('not-follow-links', () {
232 test('dir-link', () {
233 expect(HttpServer.bind('localhost', 0).then((server) {
234 var dir = new Directory('').createTempSync();
235 var dir2 = new Directory('${dir.path}/dir2')..createSync();
236 var link = new Link('${dir.path}/dir3')..createSync('dir2');
237 var file = new File('${dir2.path}/file')..createSync();
238 var virDir = new VirtualDirectory(dir.path);
239 virDir.followLinks = false;
240
241 virDir.serve(server);
242
243 return new HttpClient().get('localhost', server.port, '/dir3/file')
244 .then((request) => request.close())
245 .then((response) => response.drain().then(
246 (_) => response.statusCode))
247 .whenComplete(() {
248 server.close();
249 dir.deleteSync(recursive: true);
250 });
251 }), completion(equals(HttpStatus.NOT_FOUND)));
252 });
253 });
254 }); 260 });
255 } 261 }
256 262
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698