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

Side by Side Diff: tests/html/xhr_cross_origin_test.dart

Issue 11641005: Add cross-origin test with credentials. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 11 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
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 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 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 XHRCrossOriginTest; 5 library XHRCrossOriginTest;
6 import '../../pkg/unittest/lib/unittest.dart'; 6 import '../../pkg/unittest/lib/unittest.dart';
7 import '../../pkg/unittest/lib/html_config.dart'; 7 import '../../pkg/unittest/lib/html_config.dart';
8 import 'dart:html'; 8 import 'dart:html';
9 import 'dart:json'; 9 import 'dart:json';
10 10
11 /**
12 * Examine the value of "crossOriginPort" as passed in from the url from
13 * [window.location] to determine what the cross-origin port is for
14 * this test.
15 */
16 // TODO(efortuna): If we need to use this function frequently, make a
17 // url_analyzer library that is part of test.dart that these tests can import.
18 int get crossOriginPort {
19 var searchUrl = window.location.search;
20 var crossOriginStr = 'crossOriginPort=';
21 var index = searchUrl.indexOf(crossOriginStr);
22 var nextArg = searchUrl.indexOf('&', index);
23 return int.parse(searchUrl.substring(index + crossOriginStr.length,
24 nextArg == -1 ? searchUrl.length : nextArg));
25 }
26
11 main() { 27 main() {
12 useHtmlConfiguration(); 28 useHtmlConfiguration();
13 29
30 var port = crossOriginPort;
31
14 test('XHR Cross-domain', () { 32 test('XHR Cross-domain', () {
15 var url = "http://localhost:9876/tests/html/xhr_cross_origin_data.txt"; 33 var url = "http://localhost:$port/tests/html/xhr_cross_origin_data.txt";
16 var xhr = new HttpRequest(); 34 var xhr = new HttpRequest();
17 xhr.open('GET', url, true); 35 xhr.open('GET', url, true);
18 var validate = expectAsync1((data) { 36 var validate = expectAsync1((data) {
19 expect(data, contains('feed')); 37 expect(data, contains('feed'));
20 expect(data['feed'], contains('entry')); 38 expect(data['feed'], contains('entry'));
21 expect(data, isMap); 39 expect(data, isMap);
22 }); 40 });
23 xhr.on.readyStateChange.add((e) { 41 xhr.on.readyStateChange.add((e) {
24 guardAsync(() { 42 guardAsync(() {
25 if (xhr.readyState == HttpRequest.DONE) { 43 if (xhr.readyState == HttpRequest.DONE) {
26 validate(JSON.parse(xhr.response)); 44 validate(JSON.parse(xhr.response));
27 } 45 }
28 }); 46 });
29 }); 47 });
30 xhr.send(); 48 xhr.send();
31 }); 49 });
32 50
33 test('XHR.get Cross-domain', () { 51 test('XHR.get Cross-domain', () {
34 var url = "http://localhost:9876/tests/html/xhr_cross_origin_data.txt"; 52 var url = "http://localhost:$port/tests/html/xhr_cross_origin_data.txt";
35 new HttpRequest.get(url, expectAsync1((xhr) { 53 new HttpRequest.get(url, expectAsync1((xhr) {
36 var data = JSON.parse(xhr.response); 54 var data = JSON.parse(xhr.response);
37 expect(data, contains('feed')); 55 expect(data, contains('feed'));
38 expect(data['feed'], contains('entry')); 56 expect(data['feed'], contains('entry'));
39 expect(data, isMap); 57 expect(data, isMap);
40 })); 58 }));
41 }); 59 });
60
61 test('XHR.getWithCredentials Cross-domain', () {
62 var url = "http://localhost:$port/tests/html/xhr_cross_origin_data.txt";
63 new HttpRequest.getWithCredentials(url, expectAsync1((xhr) {
64 var data = JSON.parse(xhr.response);
65 expect(data, contains('feed'));
66 expect(data['feed'], contains('entry'));
67 expect(data, isMap);
68 }));
69 });
42 } 70 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698