1.3.5
This commit is contained in:
Родитель
0acf90228d
Коммит
1447054777
|
@ -1,3 +1,7 @@
|
|||
== 1.3.5
|
||||
|
||||
* Fix issue when removing hidden form elements that no longer exist on the page
|
||||
|
||||
== 1.3.4
|
||||
|
||||
* Fix issue in IE 8 and below or IE 9 in quirksmode where comment nodes were incorrectly being handled
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
var Braintree = {
|
||||
sjcl: sjcl,
|
||||
version: "1.3.4"
|
||||
version: "1.3.5"
|
||||
};
|
||||
|
||||
Braintree.generateAesKey = function () {
|
||||
|
@ -157,13 +157,18 @@ Braintree.EncryptionClient = function (publicKey) {
|
|||
self.encryptForm = function (form) {
|
||||
var element, encryptedValue,
|
||||
fieldName, hiddenField,
|
||||
i, inputs;
|
||||
i, inputs, ownerDocument;
|
||||
|
||||
form = extractForm(form);
|
||||
inputs = findInputs(form);
|
||||
|
||||
while (hiddenFields.length > 0) {
|
||||
form.removeChild(hiddenFields[0]);
|
||||
ownerDocument = hiddenFields[0].ownerDocument;
|
||||
|
||||
if (ownerDocument.contains && ownerDocument.contains(hiddenFields[0])) {
|
||||
form.removeChild(hiddenFields[0]);
|
||||
}
|
||||
|
||||
hiddenFields.splice(0, 1);
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ describe("Braintree#form", function() {
|
|||
window.jQuery = $;
|
||||
});
|
||||
|
||||
beforeEach(function() {
|
||||
function setFormFixture() {
|
||||
setFixtures("<form action='' id='braintree_form'>" +
|
||||
"<input type='text' data-encrypted-name='credit-card-number' value='cc number'/>" +
|
||||
"<input type='text' data-encrypted-name='credit-card-cvv' value='cvv' />" +
|
||||
|
@ -17,9 +17,16 @@ describe("Braintree#form", function() {
|
|||
"</div>" +
|
||||
"<input type=\"submit\" id=\"click_me\" />" +
|
||||
"</form>");
|
||||
|
||||
}
|
||||
|
||||
beforeEach(function() {
|
||||
setFormFixture();
|
||||
|
||||
this.braintree = Braintree.create('foo');
|
||||
|
||||
spyOn(this.braintree, 'encrypt').andCallFake(
|
||||
function(data) {
|
||||
function (data) {
|
||||
return 'encrypted ' + data;
|
||||
});
|
||||
});
|
||||
|
@ -68,6 +75,12 @@ describe("Braintree#form", function() {
|
|||
expect($('input[type="hidden"][name="credit-card-number"]').length).toBe(1);
|
||||
});
|
||||
|
||||
it("shouldn't throw DOM exceptions when attempting to remove hidden inputs that no longer exist in the document", function() {
|
||||
this.braintree.encryptForm('braintree_form');
|
||||
setFormFixture();
|
||||
this.braintree.encryptForm('braintree_form');
|
||||
});
|
||||
|
||||
it("shouldn't throw DOM exceptions when encrypting multiple times", function() {
|
||||
this.braintree.encryptForm('braintree_form');
|
||||
this.braintree.encryptForm('braintree_form');
|
||||
|
|
Загрузка…
Ссылка в новой задаче