faux-jax-tulios
Version:
Fork using latest mitm for node 10 - Intercept and respond to requests in the browser (XMLHttpRequest, XDomainRequest) and Node.js (http(s) module)
56 lines (47 loc) • 1.67 kB
JavaScript
var bind = require('lodash-compat/function/bind');
var test = require('tape');
var XMLHttpRequest = require('../../../lib/XMLHttpRequest/');
test('xhr.setRequestHeader() throws when state is not OPENED', function(t) {
var xhr = new XMLHttpRequest();
t.throws(bind(xhr.setRequestHeader, xhr, 'content-encoding', 'UTF-8'), Error, 'State is not OPENED');
t.end();
});
test('xhr.setRequestHeader() throws when send() flag is true', function(t) {
var xhr = new XMLHttpRequest();
xhr.open('GET', '/');
xhr.sendFlag = true;
t.throws(bind(xhr.setRequestHeader, xhr), Error, 'send() flag is true');
t.end();
});
test('xhr.setRequestHeader() throws when name is undefined', function(t) {
var xhr = new XMLHttpRequest();
xhr.open('GET', '/');
t.throws(bind(xhr.setRequestHeader, xhr), SyntaxError, 'Bad header name');
t.end();
});
test('xhr.setRequestHeader() throws when value is undefined', function(t) {
var xhr = new XMLHttpRequest();
xhr.open('GET', '/');
t.throws(bind(xhr.setRequestHeader, xhr, 'content-encoding'), SyntaxError, 'No given value');
t.end();
});
test('xhr.setRequestHeader() adds headers', function(t) {
var xhr = new XMLHttpRequest();
xhr.open('GET', '/');
xhr.setRequestHeader('name', 'val');
t.deepEqual(xhr.requestHeaders, {
name: 'val'
});
t.end();
});
test('xhr.setRequestHeader() append values on successive calls', function(t) {
var xhr = new XMLHttpRequest();
xhr.open('GET', '/');
xhr.setRequestHeader('namE', 'val1');
xhr.setRequestHeader('name', 'val2');
xhr.setRequestHeader('NaMe', 'val3');
t.deepEqual(xhr.requestHeaders, {
namE: 'val1, val2, val3'
});
t.end();
});