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