2
0
mirror of https://github.com/tenrok/axios.git synced 2026-06-20 20:00:40 +03:00

Changing btoa ponyfill to improve testing

This commit is contained in:
Matt Zabriskie
2016-03-03 22:43:16 -07:00
parent 6d3d266616
commit 7041775943
4 changed files with 15 additions and 8 deletions
+6 -6
View File
@@ -4,12 +4,12 @@
var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
function InvalidCharacterError(message) { function E() {
this.message = message; this.message = 'String contains an invalid character';
} }
InvalidCharacterError.prototype = new Error; E.prototype = new Error;
InvalidCharacterError.prototype.code = 5; E.prototype.code = 5;
InvalidCharacterError.prototype.name = 'InvalidCharacterError'; E.prototype.name = 'InvalidCharacterError';
function btoa(input) { function btoa(input) {
var str = String(input); var str = String(input);
@@ -26,7 +26,7 @@ function btoa(input) {
) { ) {
charCode = str.charCodeAt(idx += 3 / 4); charCode = str.charCodeAt(idx += 3 / 4);
if (charCode > 0xFF) { if (charCode > 0xFF) {
throw new InvalidCharacterError('INVALID_CHARACTER_ERR: DOM Exception 5'); throw new E();
} }
block = block << 8 | charCode; block = block << 8 | charCode;
} }
+2 -1
View File
@@ -1,4 +1,5 @@
var axios = require('../../index'); var axios = require('../../index');
var validateInvalidCharacterError = require('./__validateInvalidCharacterError');
module.exports = function setupBasicAuthTest() { module.exports = function setupBasicAuthTest() {
beforeEach(function () { beforeEach(function () {
@@ -36,7 +37,7 @@ module.exports = function setupBasicAuthTest() {
}).then(function(response) { }).then(function(response) {
done(new Error('Should not succeed to make a HTTP Basic auth request with non-latin1 chars in credentials.')); done(new Error('Should not succeed to make a HTTP Basic auth request with non-latin1 chars in credentials.'));
}).catch(function(error) { }).catch(function(error) {
expect(error.message).toEqual('INVALID_CHARACTER_ERR: DOM Exception 5'); validateInvalidCharacterError(error);
done(); done();
}); });
}); });
@@ -0,0 +1,4 @@
module.exports = function validateInvalidCharacterError(error) {
expect(error instanceof Error).toEqual(true);
expect(/character/i.test(error.message)).toEqual(true);
};
+3 -1
View File
@@ -1,4 +1,5 @@
var __btoa = require('../../../lib/helpers/btoa'); var __btoa = require('../../../lib/helpers/btoa');
var validateInvalidCharacterError = require('../__validateInvalidCharacterError');
describe('btoa polyfill', function () { describe('btoa polyfill', function () {
it('should behave the same as native window.btoa', function () { it('should behave the same as native window.btoa', function () {
@@ -22,6 +23,7 @@ describe('btoa polyfill', function () {
err2 = e; err2 = e;
} }
expect(err1.message).toEqual(err2.message); validateInvalidCharacterError(err1);
validateInvalidCharacterError(err2);
}); });
}); });