2
0
mirror of https://github.com/tenrok/axios.git synced 2026-06-05 16:42:32 +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+/=';
function InvalidCharacterError(message) {
this.message = message;
function E() {
this.message = 'String contains an invalid character';
}
InvalidCharacterError.prototype = new Error;
InvalidCharacterError.prototype.code = 5;
InvalidCharacterError.prototype.name = 'InvalidCharacterError';
E.prototype = new Error;
E.prototype.code = 5;
E.prototype.name = 'InvalidCharacterError';
function btoa(input) {
var str = String(input);
@@ -26,7 +26,7 @@ function btoa(input) {
) {
charCode = str.charCodeAt(idx += 3 / 4);
if (charCode > 0xFF) {
throw new InvalidCharacterError('INVALID_CHARACTER_ERR: DOM Exception 5');
throw new E();
}
block = block << 8 | charCode;
}
+2 -1
View File
@@ -1,4 +1,5 @@
var axios = require('../../index');
var validateInvalidCharacterError = require('./__validateInvalidCharacterError');
module.exports = function setupBasicAuthTest() {
beforeEach(function () {
@@ -36,7 +37,7 @@ module.exports = function setupBasicAuthTest() {
}).then(function(response) {
done(new Error('Should not succeed to make a HTTP Basic auth request with non-latin1 chars in credentials.'));
}).catch(function(error) {
expect(error.message).toEqual('INVALID_CHARACTER_ERR: DOM Exception 5');
validateInvalidCharacterError(error);
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 validateInvalidCharacterError = require('../__validateInvalidCharacterError');
describe('btoa polyfill', function () {
it('should behave the same as native window.btoa', function () {
@@ -22,6 +23,7 @@ describe('btoa polyfill', function () {
err2 = e;
}
expect(err1.message).toEqual(err2.message);
validateInvalidCharacterError(err1);
validateInvalidCharacterError(err2);
});
});