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

Side by Side Diff: test/codegen/lib/html/xhr_cross_origin_test.dart

Issue 1930043002: Add all dart:html tests from the sdk to test/codegen. (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: ptal Created 4 years, 7 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
« no previous file with comments | « test/codegen/lib/html/xhr_cross_origin_data.txt ('k') | test/codegen/lib/html/xhr_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
(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 XHRCrossOriginTest;
6 import 'package:unittest/unittest.dart';
7 import 'package:unittest/html_individual_config.dart';
8 import 'dart:html';
9 import "dart:convert";
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
27 main() {
28 useHtmlIndividualConfiguration();
29
30 group('supported', () {
31 test('supported', () {
32 expect(HttpRequest.supportsCrossOrigin, isTrue);
33 });
34 });
35
36 group('functional', () {
37
38 var port = crossOriginPort;
39 var host = '${window.location.protocol}//${window.location.hostname}:$port';
40
41 test('XHR.get Cross-domain', () {
42 var gotError = false;
43 var url = '$host/root_dart/tests/html/xhr_cross_origin_data.txt';
44 return HttpRequest.request(url).then((xhr) {
45 var data = JSON.decode(xhr.response);
46 expect(data, contains('feed'));
47 expect(data['feed'], contains('entry'));
48 expect(data, isMap);
49 }).catchError((error) {}, test: (error) {
50 gotError = true;
51 // Consume errors when not supporting cross origin.
52 return !HttpRequest.supportsCrossOrigin;
53 }).whenComplete(() {
54 // Expect that we got an error when cross origin is not supported.
55 expect(gotError, !HttpRequest.supportsCrossOrigin);
56 });
57 });
58
59 test('XHR.requestCrossOrigin', () {
60 var url = '$host/root_dart/tests/html/xhr_cross_origin_data.txt';
61 return HttpRequest.requestCrossOrigin(url).then((response) {
62 expect(response, contains('feed'));
63 });
64 });
65
66 test('XHR.requestCrossOrigin errors', () {
67 var gotError = false;
68 return HttpRequest.requestCrossOrigin('does_not_exist').then((response) {
69 expect(true, isFalse, reason: '404s should fail request.');
70 }).catchError((error) {}, test: (error) {
71 gotError = true;
72 return true;
73 }).whenComplete(() {
74 expect(gotError, isTrue);
75 });
76 });
77
78 // Skip the rest if not supported.
79 if (!HttpRequest.supportsCrossOrigin) {
80 return;
81 }
82
83 test('XHR Cross-domain', () {
84 var url = '$host/root_dart/tests/html/xhr_cross_origin_data.txt';
85 var xhr = new HttpRequest();
86 xhr.open('GET', url, async: true);
87 var validate = expectAsync((data) {
88 expect(data, contains('feed'));
89 expect(data['feed'], contains('entry'));
90 expect(data, isMap);
91 });
92 xhr.onReadyStateChange.listen((e) {
93 if (xhr.readyState == HttpRequest.DONE) {
94 validate(JSON.decode(xhr.response));
95 }
96 });
97 xhr.send();
98 });
99
100 test('XHR.getWithCredentials Cross-domain', () {
101 var url = '$host/root_dart/tests/html/xhr_cross_origin_data.txt';
102 return HttpRequest.request(url, withCredentials: true).then((xhr) {
103 var data = JSON.decode(xhr.response);
104 expect(data, contains('feed'));
105 expect(data['feed'], contains('entry'));
106 expect(data, isMap);
107 });
108 });
109 });
110 }
OLDNEW
« no previous file with comments | « test/codegen/lib/html/xhr_cross_origin_data.txt ('k') | test/codegen/lib/html/xhr_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698