Skip to content
This repository has been archived by the owner on Nov 19, 2018. It is now read-only.

Commit

Permalink
chore(dep-free): re-write tests
Browse files Browse the repository at this point in the history
TODO:
- Fix DOM mutation detection /validation code
- Fix validation tests

#55
  • Loading branch information
Ray Nicholus committed May 5, 2015
1 parent d056a08 commit 1913e42
Show file tree
Hide file tree
Showing 3 changed files with 86 additions and 88 deletions.
1 change: 0 additions & 1 deletion ajax-form.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
return Array.prototype.slice.call(pseudoArray);
},

// TODO fix for IE (see https://gist.github.com/james2doyle/7945320)
fire = function (node, type, _detail_) {
var detail = _detail_ === null || _detail_ === undefined ? {} : _detail_,
event = new CustomEvent(type, {
Expand Down
4 changes: 2 additions & 2 deletions gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ module.exports = function(grunt) {
},
wctLocal: {
command: [
'wct --local chrome,firefox'
'node_modules/.bin/wct --local chrome,firefox'
].join('&&')
},
wctSauce: {
command: [
'wct --sauce all'
'node_modules/.bin/wct --sauce all'
].join('&&')
}
}
Expand Down
169 changes: 84 additions & 85 deletions test/typical-form-tests.html
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
'</select>' +
'</form>';

container = document.createElement('span');
var container = document.createElement('span');
container.innerHTML = formStr;
ajaxForm = container.querySelector('form');

Expand Down Expand Up @@ -206,6 +206,89 @@
});
});

describe('Submit data modification', function () {
it('Allows JSON encoded data to be augmented before it is submitted', function (done) {
createForm({method: 'POST', enctype: 'application/json'}, function () {
var submittedListener = function (event) {
event.detail.formData.newfield = 'newval';
event.detail.formData.test1 = 'changedval';
};

ajaxForm.addEventListener('submitting', submittedListener);

ajaxForm.submit();

ajaxForm.removeEventListener('submitting', submittedListener);

expect(requests[0].requestBody).to.equal(JSON.stringify({
test1: 'changedval',
select1: ['bar'],
select2: ['foo', 'bar'],
select3: ['fizz'],
ce1name: 'ce1value',
newfield: 'newval'
}));
done();
});
});

it('Allows JSON encoded data to be restructured before it is submitted', function (done) {
createForm({method: 'POST', enctype: 'application/json'}, function () {
ajaxForm.addEventListener('submitting', function (event) {
var oldData = event.detail.formData;
event.detail.formData = {
testfields: {
test1: oldData.test1
},
cefields: {
ce1name: oldData.ce1name
}
};
});

ajaxForm.submit();

expect(requests[0].requestBody).to.equal(JSON.stringify({
testfields: {
test1: 'foobar'
},
cefields: {
ce1name: 'ce1value'
}
}));
done();
});
});

it('Allows URL-encoded data to be augmented before it is submitted (GET)', function (done) {
createForm({method: 'GET'}, function () {
ajaxForm.addEventListener('submitting', function (event) {
event.detail.formData.newfield = 'newval';
event.detail.formData.test1 = 'changedval';
});

ajaxForm.submit();

expect(requests[0].url).to.have.string('test1=changedval&select1=bar&select2=foo&select2=bar&select3=fizz&ce1name=ce1value&newfield=newval');
done();
});
});

it('Allows URL-encoded data to be augmented before it is submitted (POST)', function (done) {
createForm({method: 'POST', enctype: 'application/x-www-form-urlencoded'}, function () {
ajaxForm.addEventListener('submitting', function (event) {
event.detail.formData.newfield = 'newval';
event.detail.formData.test1 = 'changedval';
});

ajaxForm.submit();

expect(requests[0].requestBody).to.equal('test1=changedval&select1=bar&select2=foo&select2=bar&select3=fizz&ce1name=ce1value&newfield=newval');
done();
});
});
});

// describe('form validation', function() {
// beforeEach(function() {
// clock = sinon.useFakeTimers();
Expand Down Expand Up @@ -256,90 +339,6 @@
// expect(requiredFileInputForm.checkValidity()).to.equal(false);
// });
// });
//
// describe('Submit data modification', function() {
// it('Allows JSON encoded data to be augmented before it is submitted', function() {
// var submittedListener = function(event) {
// event.detail.formData.newfield = 'newval';
// event.detail.formData.test1 = 'changedval';
// };
//
// ajaxForm.domReady.call(jsonForm);
//
// jsonForm.addEventListener('submitting', submittedListener);
//
// jsonForm.submit();
//
// jsonForm.removeEventListener('submitting', submittedListener);
//
// expect(requests[0].requestBody).to.equal(JSON.stringify({
// test1:'changedval',
// select1:['bar'],
// select2:['foo', 'bar'],
// select3:['fizz'],
// ce1name:'ce1value',
// newfield:'newval'
// }));
// });
//
// it('Allows JSON encoded data to be restructured before it is submitted', function() {
// ajaxForm.domReady.call(jsonForm);
//
// jsonForm.addEventListener('submitting', function(event) {
// var oldData = event.detail.formData;
// event.detail.formData = {
// testfields: {
// test1: oldData.test1
// },
// cefields: {
// ce1name: oldData.ce1name
// }
// };
// });
//
// jsonForm.submit();
//
// expect(requests[0].requestBody).to.equal(JSON.stringify({
// testfields: {
// test1: 'foobar'
// },
// cefields: {
// ce1name: 'ce1value'
// }
// }));
// });
//
// it('Allows URL-encoded data to be augmented before it is submitted (GET)', function() {
// typicalForm.setAttribute('method', 'GET');
//
// ajaxForm.domReady.call(typicalForm);
//
// typicalForm.addEventListener('submitting', function(event) {
// event.detail.formData.newfield = 'newval';
// event.detail.formData.test1 = 'changedval';
// });
//
// typicalForm.submit();
//
// expect(requests[0].url).to.have.string('test1=changedval&ce1name=ce1value&newfield=newval');
// });
//
// it('Allows URL-encoded data to be augmented before it is submitted (POST)', function() {
// typicalForm.setAttribute('method', 'POST');
//
// ajaxForm.domReady.call(typicalForm);
//
// typicalForm.addEventListener('submitting', function(event) {
// event.detail.formData.newfield = 'newval';
// event.detail.formData.test1 = 'changedval';
// });
//
// typicalForm.submit();
//
// expect(requests[0].requestBody).to.equal('test1=changedval&ce1name=ce1value&newfield=newval');
// });
// });

</script>

</body>
Expand Down

0 comments on commit 1913e42

Please sign in to comment.