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:
+6
-6
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
};
|
||||||
@@ -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);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user