mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
react app
This commit is contained in:
284
react-app/bower_components/iron-ajax/test/iron-request.html
vendored
Normal file
284
react-app/bower_components/iron-ajax/test/iron-request.html
vendored
Normal file
@@ -0,0 +1,284 @@
|
||||
<!doctype html>
|
||||
<!--
|
||||
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
|
||||
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
||||
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
||||
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
||||
Code distributed by Google as part of the polymer project is also
|
||||
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>iron-request</title>
|
||||
|
||||
<script src="../../webcomponentsjs/webcomponents.js"></script>
|
||||
<script src="../../web-component-tester/browser.js"></script>
|
||||
|
||||
<link rel="import" href="../../polymer/polymer.html">
|
||||
<link rel="import" href="../iron-request.html">
|
||||
</head>
|
||||
<body>
|
||||
<test-fixture id="TrivialRequest">
|
||||
<template>
|
||||
<iron-request></iron-request>
|
||||
</template>
|
||||
</test-fixture>
|
||||
<script>
|
||||
suite('<iron-request>', function () {
|
||||
var jsonResponseHeaders;
|
||||
var successfulRequestOptions;
|
||||
var request;
|
||||
var server;
|
||||
|
||||
setup(function () {
|
||||
jsonResponseHeaders = {
|
||||
'Content-Type': 'application/json'
|
||||
};
|
||||
server = sinon.fakeServer.create();
|
||||
server.respondWith('GET', '/responds_to_get_with_json', [
|
||||
200,
|
||||
jsonResponseHeaders,
|
||||
'{"success":true}'
|
||||
]);
|
||||
|
||||
server.respondWith('GET', '/responds_to_get_with_prefixed_json', [
|
||||
200,
|
||||
jsonResponseHeaders,
|
||||
'])}while(1);</x>{"success":true}'
|
||||
]);
|
||||
|
||||
server.respondWith('GET', '/responds_to_get_with_500', [
|
||||
500,
|
||||
{},
|
||||
''
|
||||
]);
|
||||
|
||||
server.respondWith('GET', '/responds_to_get_with_100', [
|
||||
100,
|
||||
{},
|
||||
''
|
||||
]);
|
||||
|
||||
server.respondWith('GET', '/responds_to_get_with_0', [
|
||||
0,
|
||||
jsonResponseHeaders,
|
||||
'{"success":true}'
|
||||
]);
|
||||
|
||||
|
||||
request = fixture('TrivialRequest');
|
||||
successfulRequestOptions = {
|
||||
url: '/responds_to_get_with_json'
|
||||
};
|
||||
});
|
||||
|
||||
teardown(function () {
|
||||
server.restore();
|
||||
});
|
||||
|
||||
suite('basic usage', function () {
|
||||
test('creates network requests, requiring only `url`', function () {
|
||||
request.send(successfulRequestOptions);
|
||||
|
||||
server.respond();
|
||||
|
||||
expect(request.response).to.be.ok;
|
||||
});
|
||||
|
||||
test('sets async to true by default', function () {
|
||||
request.send(successfulRequestOptions);
|
||||
expect(request.xhr.async).to.be.eql(true);
|
||||
});
|
||||
|
||||
test('can be aborted', function () {
|
||||
request.send(successfulRequestOptions);
|
||||
|
||||
request.abort();
|
||||
|
||||
server.respond();
|
||||
|
||||
return request.completes.then(function () {
|
||||
throw new Error('Request did not abort appropriately!');
|
||||
}).catch(function (e) {
|
||||
expect(request.response).to.not.be.ok;
|
||||
});
|
||||
});
|
||||
|
||||
test('default responseType is text', function () {
|
||||
request.send(successfulRequestOptions);
|
||||
server.respond();
|
||||
|
||||
return request.completes.then(function() {
|
||||
expect(request.response).to.be.an('string')
|
||||
});
|
||||
});
|
||||
|
||||
test('default responseType of text is not applied, when async is false', function () {
|
||||
var options = Object.create(successfulRequestOptions);
|
||||
options.async = false;
|
||||
|
||||
request.send(options);
|
||||
server.respond();
|
||||
|
||||
return request.completes.then(function() {
|
||||
expect(request.xhr.responseType).to.be.empty;
|
||||
});
|
||||
});
|
||||
|
||||
test('responseType can be configured via handleAs option', function () {
|
||||
var options = Object.create(successfulRequestOptions);
|
||||
options.handleAs = 'json';
|
||||
|
||||
request.send(options);
|
||||
expect(server.requests.length).to.be.equal(1);
|
||||
expect(server.requests[0].requestHeaders['accept']).to.be.equal(
|
||||
'application/json');
|
||||
server.respond();
|
||||
|
||||
return request.completes.then(function() {
|
||||
expect(request.response).to.be.an('object');
|
||||
});
|
||||
});
|
||||
|
||||
test('setting jsonPrefix correctly strips it from the response', function () {
|
||||
var options = {
|
||||
url: '/responds_to_get_with_prefixed_json',
|
||||
handleAs: 'json',
|
||||
jsonPrefix: '])}while(1);</x>'
|
||||
};
|
||||
|
||||
request.send(options);
|
||||
expect(server.requests.length).to.be.equal(1);
|
||||
expect(server.requests[0].requestHeaders['accept']).to.be.equal(
|
||||
'application/json');
|
||||
server.respond();
|
||||
|
||||
return request.completes.then(function() {
|
||||
expect(request.response).to.deep.eq({success: true});
|
||||
});
|
||||
});
|
||||
|
||||
test('responseType cannot be configured via handleAs option, when async is false', function () {
|
||||
var options = Object.create(successfulRequestOptions);
|
||||
options.handleAs = 'json';
|
||||
options.async = false;
|
||||
|
||||
request.send(options);
|
||||
expect(server.requests.length).to.be.equal(1);
|
||||
expect(server.requests[0].requestHeaders['accept']).to.be.equal(
|
||||
'application/json');
|
||||
server.respond();
|
||||
|
||||
return request.completes.then(function() {
|
||||
expect(request.response).to.be.a('string');
|
||||
});
|
||||
});
|
||||
|
||||
test('headers are sent up', function() {
|
||||
var options = Object.create(successfulRequestOptions);
|
||||
options.headers = {
|
||||
'foo': 'bar',
|
||||
'accept': 'this should override the default'
|
||||
};
|
||||
request.send(options);
|
||||
expect(server.requests.length).to.be.equal(1);
|
||||
var fakeXhr = server.requests[0]
|
||||
expect(fakeXhr.requestHeaders['foo']).to.be.equal(
|
||||
'bar');
|
||||
expect(fakeXhr.requestHeaders['accept']).to.be.equal(
|
||||
'this should override the default');
|
||||
});
|
||||
|
||||
test('headers are deduped by lowercasing', function() {
|
||||
var options = Object.create(successfulRequestOptions);
|
||||
options.headers = {
|
||||
'foo': 'bar',
|
||||
'Foo': 'bar',
|
||||
'fOo': 'bar',
|
||||
'Accept': 'this should also override the default'
|
||||
};
|
||||
request.send(options);
|
||||
expect(server.requests.length).to.be.equal(1);
|
||||
var fakeXhr = server.requests[0]
|
||||
expect(Object.keys(fakeXhr.requestHeaders).length).to.be.equal(2);
|
||||
expect(fakeXhr.requestHeaders['foo']).to.be.equal(
|
||||
'bar');
|
||||
expect(fakeXhr.requestHeaders['accept']).to.be.equal(
|
||||
'this should also override the default');
|
||||
});
|
||||
});
|
||||
|
||||
suite('special cases', function() {
|
||||
test('treats status code 0 as success, though the outcome is ambiguous', function() {
|
||||
// Note: file:// status code will probably be 0 no matter what happened.
|
||||
request.send({
|
||||
url: '/responds_to_get_with_0'
|
||||
});
|
||||
|
||||
server.respond();
|
||||
|
||||
expect(request.succeeded).to.be.equal(true);
|
||||
});
|
||||
});
|
||||
|
||||
suite('errors', function() {
|
||||
test('treats status codes between 1 and 199 as errors', function() {
|
||||
request.send({
|
||||
url: '/responds_to_get_with_100'
|
||||
});
|
||||
|
||||
server.respond();
|
||||
|
||||
expect(request.succeeded).to.be.equal(false);
|
||||
});
|
||||
|
||||
test('treats status codes between 300 and ∞ as errors', function() {
|
||||
request.send({
|
||||
url: '/responds_to_get_with_500'
|
||||
});
|
||||
|
||||
server.respond();
|
||||
|
||||
expect(request.succeeded).to.be.equal(false);
|
||||
});
|
||||
});
|
||||
|
||||
suite('status codes', function() {
|
||||
test('status and statusText is set after a ambiguous request', function() {
|
||||
request.send({
|
||||
url: '/responds_to_get_with_0'
|
||||
});
|
||||
|
||||
server.respond();
|
||||
|
||||
expect(request.status).to.be.equal(0);
|
||||
expect(request.statusText).to.be.equal('');
|
||||
});
|
||||
|
||||
test('status and statusText is set after a request that succeeded', function() {
|
||||
request.send({
|
||||
url: '/responds_to_get_with_json'
|
||||
});
|
||||
|
||||
server.respond();
|
||||
|
||||
expect(request.status).to.be.equal(200);
|
||||
expect(request.statusText).to.be.equal('OK');
|
||||
});
|
||||
|
||||
test('status and statusText is set after a request that failed', function() {
|
||||
request.send({
|
||||
url: '/responds_to_get_with_500'
|
||||
});
|
||||
|
||||
server.respond();
|
||||
|
||||
expect(request.status).to.be.equal(500);
|
||||
expect(request.statusText).to.be.equal('Internal Server Error');
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user