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

Unified Diff: tests/html/xhr_task_test.dart

Issue 2123593002: Revert "Reapply zone tasks." (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/html/xhr_task2_test.dart ('k') | tests/lib/async/zone_task_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/html/xhr_task_test.dart
diff --git a/tests/html/xhr_task_test.dart b/tests/html/xhr_task_test.dart
deleted file mode 100644
index c315ae6c9df8c9d09b644871e5ab25cc9e529f03..0000000000000000000000000000000000000000
--- a/tests/html/xhr_task_test.dart
+++ /dev/null
@@ -1,508 +0,0 @@
-// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library XHRTaskTest;
-
-import 'dart:async';
-import 'dart:convert';
-import 'dart:html';
-import 'dart:typed_data';
-import 'package:unittest/html_individual_config.dart';
-import 'package:unittest/unittest.dart';
-
-main() {
- useHtmlIndividualConfiguration();
-
- // Cache blocker is a workaround for:
- // https://code.google.com/p/dart/issues/detail?id=11834
- var cacheBlocker = new DateTime.now().millisecondsSinceEpoch;
- var url = '/root_dart/tests/html/xhr_cross_origin_data.txt?'
- 'cacheBlock=$cacheBlocker';
-
- var urlExpando = new Expando();
-
- Function buildCreateTaskHandler(List log, List tasks) {
- Object createTaskHandler(Zone self, ZoneDelegate parent, Zone zone,
- TaskCreate create, TaskSpecification spec) {
- if (spec is HttpRequestTaskSpecification) {
- var url = spec.url;
- var method = spec.method;
- var withCredentials = spec.withCredentials;
- var responseType = spec.responseType;
- var mimeType = spec.mimeType;
- var data = spec.sendData;
-
- log.add("request $url");
- var dataLog = data is List<int> ? "binary ${data.length}" : "$data";
- log.add(" method: $method withCredentials: $withCredentials "
- "responseType: $responseType mimeType: $mimeType data: $dataLog");
- var task = parent.createTask(zone, create, spec);
- urlExpando[task] = url;
- tasks.add(task);
- return task;
- }
- if (spec is HttpRequestSendTaskSpecification) {
- var data = spec.sendData;
- var dataLog = data is List<int> ? "binary ${data.length}" : "$data";
- log.add("http-request (no info), data: $dataLog");
- var task = parent.createTask(zone, create, spec);
- tasks.add(task);
- urlExpando[task] = "unknown";
- return task;
- }
- if (spec is EventSubscriptionSpecification) {
- EventSubscriptionSpecification eventSpec = spec;
- if (eventSpec.target is HttpRequest) {
- HttpRequest target = eventSpec.target;
- log.add("event listener on http-request ${eventSpec.eventType}");
- if (eventSpec.eventType == "readystatechange") {
- var oldOnData = eventSpec.onData;
- spec = eventSpec.replace(onData: (event) {
- oldOnData(event);
- if (target.readyState == HttpRequest.DONE) {
- log.add("unknown request done");
- }
- });
- }
- }
- }
- return parent.createTask(zone, create, spec);
- }
-
- return createTaskHandler;
- }
-
- Function buildRunTaskHandler(List log, List tasks) {
- void runTaskHandler(Zone self, ZoneDelegate parent, Zone zone,
- TaskRun run, Object task, Object arg) {
- if (tasks.contains(task)) {
- var url = urlExpando[task];
- if (arg is Error || arg is Exception) {
- log.add("failed $url");
- } else {
- if (arg is ProgressEvent) {
- log.add("success $url with progress-event");
- } else if (arg is HttpRequest){
- log.add("success $url with http-request");
- } else {
- log.add("success $url (unknown arg)");
- }
- }
- }
- parent.runTask(zone, run, task, arg);
- }
-
- return runTaskHandler;
- }
-
- Future<List> runWithLogging(fun) async {
- var log = [];
- var tasks = [];
- await runZoned(fun, zoneSpecification: new ZoneSpecification(
- createTask: buildCreateTaskHandler(log, tasks),
- runTask: buildRunTaskHandler(log, tasks)));
- return log;
- }
-
- void validate200Response(xhr) {
- expect(xhr.status, equals(200));
- var data = JSON.decode(xhr.responseText);
- expect(data, contains('feed'));
- expect(data['feed'], contains('entry'));
- expect(data, isMap);
- }
-
- void validate404(xhr) {
- expect(xhr.status, equals(404));
- // We cannot say much about xhr.responseText, most HTTP servers will
- // include an HTML page explaining the error to a human.
- String responseText = xhr.responseText;
- expect(responseText, isNotNull);
- }
-
- group('xhr', () {
- test('XHR No file', () async {
- var log = await runWithLogging(() {
- var completer = new Completer();
- HttpRequest xhr = new HttpRequest();
- xhr.open("GET", "NonExistingFile", async: true);
- xhr.onReadyStateChange.listen(expectAsyncUntil((event) {
- if (xhr.readyState == HttpRequest.DONE) {
- validate404(xhr);
- completer.complete("done");
- }
- }, () => xhr.readyState == HttpRequest.DONE));
- xhr.send();
- return completer.future;
- });
- expect(log, equals([
- 'event listener on http-request readystatechange',
- 'http-request (no info), data: null',
- 'unknown request done'
- ]));
- });
-
- test('XHR_file', () async {
- var log = await runWithLogging(() {
- var completer = new Completer();
- var loadEndCalled = false;
-
- var xhr = new HttpRequest();
- xhr.open('GET', url, async: true);
- xhr.onReadyStateChange.listen(expectAsyncUntil((e) {
- if (xhr.readyState == HttpRequest.DONE) {
- validate200Response(xhr);
-
- Timer.run(expectAsync(() {
- expect(loadEndCalled, HttpRequest.supportsLoadEndEvent);
- completer.complete("done");
- }));
- }
- }, () => xhr.readyState == HttpRequest.DONE));
-
- xhr.onLoadEnd.listen((ProgressEvent e) {
- loadEndCalled = true;
- });
- xhr.send();
- return completer.future;
- });
- expect(log, equals([
- 'event listener on http-request readystatechange',
- 'event listener on http-request loadend',
- 'http-request (no info), data: null',
- 'unknown request done'
- ]));
- });
-
- test('XHR.request No file', () async {
- var log = await runWithLogging(() {
- var completer = new Completer();
- HttpRequest.request('NonExistingFile').then(
- (_) { fail('Request should not have succeeded.'); },
- onError: expectAsync((error) {
- var xhr = error.target;
- expect(xhr.readyState, equals(HttpRequest.DONE));
- validate404(xhr);
- completer.complete('done');
- }));
- return completer.future;
- });
- expect(log, equals([
- 'request NonExistingFile',
- ' method: null withCredentials: null responseType: null '
- 'mimeType: null data: null',
- 'event listener on http-request load',
- 'event listener on http-request error',
- 'success NonExistingFile with progress-event'
- ]));
- });
-
- test('XHR.request file', () async {
- var log = await runWithLogging(() {
- var completer = new Completer();
- HttpRequest.request(url).then(expectAsync((xhr) {
- expect(xhr.readyState, equals(HttpRequest.DONE));
- validate200Response(xhr);
- completer.complete('done');
- }));
- return completer.future;
- });
- expect(log, equals([
- 'request $url',
- ' method: null withCredentials: null responseType: null '
- 'mimeType: null data: null',
- 'event listener on http-request load',
- 'event listener on http-request error',
- 'success $url with http-request'
- ]));
- });
-
- test('XHR.request onProgress', () async {
- var log = await runWithLogging(() {
- var completer = new Completer();
- var progressCalled = false;
- HttpRequest.request(url,
- onProgress: (_) {
- progressCalled = true;
- }).then(expectAsync(
- (xhr) {
- expect(xhr.readyState, equals(HttpRequest.DONE));
- expect(progressCalled, HttpRequest.supportsProgressEvent);
- validate200Response(xhr);
- completer.complete("done");
- }));
- return completer.future;
- });
- expect(log, equals([
- 'request $url',
- ' method: null withCredentials: null responseType: null '
- 'mimeType: null data: null',
- 'event listener on http-request progress',
- 'event listener on http-request load',
- 'event listener on http-request error',
- 'success $url with http-request'
- ]));
- });
-
- test('XHR.request withCredentials No file', () async {
- var log = await runWithLogging(() {
- var completer = new Completer();
- HttpRequest.request('NonExistingFile', withCredentials: true).then(
- (_) { fail('Request should not have succeeded.'); },
- onError: expectAsync((error) {
- var xhr = error.target;
- expect(xhr.readyState, equals(HttpRequest.DONE));
- validate404(xhr);
- completer.complete("done");
- }));
- return completer.future;
- });
- expect(log, equals([
- 'request NonExistingFile',
- ' method: null withCredentials: true responseType: null '
- 'mimeType: null data: null',
- 'event listener on http-request load',
- 'event listener on http-request error',
- 'success NonExistingFile with progress-event'
- ]));
- });
-
-
- test('XHR.request withCredentials file', () async {
- var log = await runWithLogging(() {
- var completer = new Completer();
- HttpRequest.request(url, withCredentials: true).then(expectAsync((xhr) {
- expect(xhr.readyState, equals(HttpRequest.DONE));
- validate200Response(xhr);
- completer.complete("done");
- }));
- return completer.future;
- });
- expect(log, equals([
- 'request $url',
- ' method: null withCredentials: true responseType: null '
- 'mimeType: null data: null',
- 'event listener on http-request load',
- 'event listener on http-request error',
- 'success $url with http-request'
- ]));
- });
-
- test('XHR.getString file', () async {
- var log = await runWithLogging(() {
- return HttpRequest.getString(url).then(expectAsync((str) {}));
- });
- expect(log, equals([
- 'request $url',
- ' method: null withCredentials: null responseType: null '
- 'mimeType: null data: null',
- 'event listener on http-request load',
- 'event listener on http-request error',
- 'success $url with http-request'
- ]));
- });
-
- test('XHR.getString No file', () async {
- var log = await runWithLogging(() {
- return HttpRequest.getString('NonExistingFile').then(
- (_) { fail('Succeeded for non-existing file.'); },
- onError: expectAsync((error) {
- validate404(error.target);
- }));
- });
- expect(log, equals([
- 'request NonExistingFile',
- ' method: null withCredentials: null responseType: null '
- 'mimeType: null data: null',
- 'event listener on http-request load',
- 'event listener on http-request error',
- 'success NonExistingFile with progress-event'
- ]));
- });
-
- test('XHR.request responseType arraybuffer', () async {
- if (Platform.supportsTypedData) {
- var log = await runWithLogging(() {
- return HttpRequest.request(url, responseType: 'arraybuffer',
- requestHeaders: {'Content-Type': 'text/xml'}).then(
- expectAsync((xhr) {
- expect(xhr.status, equals(200));
- var byteBuffer = xhr.response;
- expect(byteBuffer, new isInstanceOf<ByteBuffer>());
- expect(byteBuffer, isNotNull);
- }));
- });
- expect(log, equals([
- 'request $url',
- ' method: null withCredentials: null responseType: arraybuffer '
- 'mimeType: null data: null',
- 'event listener on http-request load',
- 'event listener on http-request error',
- 'success $url with http-request'
- ]));
- };
- });
-
- test('overrideMimeType', () async {
- var expectation =
- HttpRequest.supportsOverrideMimeType ? returnsNormally : throws;
-
- var log = await runWithLogging(() {
- var completer = new Completer();
- expect(() {
- HttpRequest.request(url, mimeType: 'application/binary')
- .whenComplete(completer.complete);
- }, expectation);
- return completer.future;
- });
- expect(log, equals([
- 'request $url',
- ' method: null withCredentials: null responseType: null '
- 'mimeType: application/binary data: null',
- 'event listener on http-request load',
- 'event listener on http-request error',
- 'success $url with http-request'
- ]));
- });
-
- if (Platform.supportsTypedData) {
- test('xhr upload', () async {
- var log = await runWithLogging(() {
- var xhr = new HttpRequest();
- var progressCalled = false;
- xhr.upload.onProgress.listen((e) {
- progressCalled = true;
- });
-
- xhr.open('POST',
- '${window.location.protocol}//${window.location.host}/echo');
-
- // 10MB of payload data w/ a bit of data to make sure it
- // doesn't get compressed to nil.
- var data = new Uint8List(1 * 1024 * 1024);
- for (var i = 0; i < data.length; ++i) {
- data[i] = i & 0xFF;
- }
- xhr.send(new Uint8List.view(data.buffer));
-
- return xhr.onLoad.first.then((_) {
- expect(
- progressCalled, isTrue, reason: 'onProgress should be fired');
- });
- });
- expect(log, equals([
- 'http-request (no info), data: binary 1048576',
- 'event listener on http-request load',
- ]));
- });
- }
-
- test('xhr postFormData', () async {
- var url = '${window.location.protocol}//${window.location.host}/echo';
- var log = await runWithLogging(() {
- var data = { 'name': 'John', 'time': '2 pm'};
-
- var parts = [];
- for (var key in data.keys) {
- parts.add('${Uri.encodeQueryComponent(key)}='
- '${Uri.encodeQueryComponent(data[key])}');
- }
- var encodedData = parts.join('&');
-
- return HttpRequest.postFormData(url, data).then((xhr) {
- expect(xhr.responseText, encodedData);
- });
- });
- expect(log, equals([
- 'request $url',
- ' method: POST withCredentials: null responseType: null '
- 'mimeType: null data: name=John&time=2+pm',
- 'event listener on http-request load',
- 'event listener on http-request error',
- 'success $url with http-request'
- ]));
- });
- });
-
- group('xhr_requestBlob', () {
- test('XHR.request responseType blob', () async {
- if (Platform.supportsTypedData) {
- var log = await runWithLogging(() {
- return HttpRequest.request(url, responseType: 'blob').then(
- (xhr) {
- expect(xhr.status, equals(200));
- var blob = xhr.response;
- expect(blob is Blob, isTrue);
- expect(blob, isNotNull);
- });
- });
- expect(log, equals([
- 'request $url',
- ' method: null withCredentials: null responseType: blob '
- 'mimeType: null data: null',
- 'event listener on http-request load',
- 'event listener on http-request error',
- 'success $url with http-request'
- ]));
- }
- });
- });
-
- group('json', () {
- test('xhr responseType json', () async {
- var url = '${window.location.protocol}//${window.location.host}/echo';
- var log = await runWithLogging(() {
- var completer = new Completer();
- var data = {
- 'key': 'value',
- 'a': 'b',
- 'one': 2,
- };
-
- HttpRequest.request(url,
- method: 'POST',
- sendData: JSON.encode(data),
- responseType: 'json').then(
- expectAsync((xhr) {
- expect(xhr.status, equals(200));
- var json = xhr.response;
- expect(json, equals(data));
- completer.complete("done");
- }));
- return completer.future;
- });
- expect(log, equals([
- 'request $url',
- ' method: POST withCredentials: null responseType: json mimeType: null'
- ' data: {"key":"value","a":"b","one":2}',
- 'event listener on http-request load',
- 'event listener on http-request error',
- 'success $url with http-request'
- ]));
- });
- });
-
- group('headers', () {
- test('xhr responseHeaders', () async {
- var log = await runWithLogging(() {
- return HttpRequest.request(url).then(
- (xhr) {
- var contentTypeHeader = xhr.responseHeaders['content-type'];
- expect(contentTypeHeader, isNotNull);
- // Should be like: 'text/plain; charset=utf-8'
- expect(contentTypeHeader.contains('text/plain'), isTrue);
- expect(contentTypeHeader.contains('charset=utf-8'), isTrue);
- });
- });
- expect(log, equals([
- 'request $url',
- ' method: null withCredentials: null responseType: null'
- ' mimeType: null data: null',
- 'event listener on http-request load',
- 'event listener on http-request error',
- 'success $url with http-request'
- ]));
- });
- });
-}
« no previous file with comments | « tests/html/xhr_task2_test.dart ('k') | tests/lib/async/zone_task_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698