blob: 0db7f4fd72d5894d7bcaf5449c6f7411146c122a [file] [log] [blame]
// Copyright (c) 2012, 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 XHRTest;
import '../../pkg/unittest/lib/unittest.dart';
import '../../pkg/unittest/lib/html_config.dart';
import 'dart:html';
import 'dart:json' as json;
main() {
useHtmlConfiguration();
var url = "../../../../tests/html/xhr_cross_origin_data.txt";
void validate200Response(xhr) {
expect(xhr.status, equals(200));
var data = json.parse(xhr.response);
expect(data, contains('feed'));
expect(data['feed'], contains('entry'));
expect(data, isMap);
}
void validate404(xhr) {
expect(xhr.status, equals(404));
expect(xhr.responseText, equals(''));
}
test('XHR No file', () {
HttpRequest xhr = new HttpRequest();
xhr.open("GET", "NonExistingFile", true);
xhr.on.readyStateChange.add(expectAsyncUntil1((event) {
if (xhr.readyState == HttpRequest.DONE) {
validate404(xhr);
}
}, () => xhr.readyState == HttpRequest.DONE));
xhr.send();
});
test('XHR file', () {
var xhr = new HttpRequest();
xhr.open('GET', url, true);
xhr.on.readyStateChange.add(expectAsyncUntil1((e) {
if (xhr.readyState == HttpRequest.DONE) {
validate200Response(xhr);
}
}, () => xhr.readyState == HttpRequest.DONE));
xhr.send();
});
test('XHR.get No file', () {
new HttpRequest.get("NonExistingFile", expectAsync1((xhr) {
expect(xhr.readyState, equals(HttpRequest.DONE));
validate404(xhr);
}));
});
test('XHR.get file', () {
var xhr = new HttpRequest.get(url, expectAsync1((event) {
expect(event.readyState, equals(HttpRequest.DONE));
validate200Response(event);
}));
});
test('XHR.getWithCredentials No file', () {
new HttpRequest.getWithCredentials("NonExistingFile", expectAsync1((xhr) {
expect(xhr.readyState, equals(HttpRequest.DONE));
validate404(xhr);
}));
});
test('XHR.getWithCredentials file', () {
new HttpRequest.getWithCredentials(url, expectAsync1((xhr) {
expect(xhr.readyState, equals(HttpRequest.DONE));
validate200Response(xhr);
}));
});
}