121 lines
2.7 KiB
JavaScript
121 lines
2.7 KiB
JavaScript
var expect = require('expect.js'),
|
|
cheerio = require('../..'),
|
|
forms = require('../fixtures').forms;
|
|
|
|
describe('$(...)', function() {
|
|
|
|
var $;
|
|
|
|
beforeEach(function() {
|
|
$ = cheerio.load(forms);
|
|
});
|
|
|
|
describe('.serializeArray', function() {
|
|
|
|
it('() : should get form controls', function() {
|
|
expect($('form#simple').serializeArray()).to.eql([
|
|
{
|
|
name: 'fruit',
|
|
value: 'Apple'
|
|
}
|
|
]);
|
|
});
|
|
|
|
it('() : should get nested form controls', function() {
|
|
expect($('form#nested').serializeArray()).to.have.length(2);
|
|
var data = $('form#nested').serializeArray();
|
|
data.sort(function (a, b) {
|
|
return a.value - b.value;
|
|
});
|
|
expect(data).to.eql([
|
|
{
|
|
name: 'fruit',
|
|
value: 'Apple'
|
|
},
|
|
{
|
|
name: 'vegetable',
|
|
value: 'Carrot'
|
|
}
|
|
]);
|
|
});
|
|
|
|
it('() : should not get disabled form controls', function() {
|
|
expect($('form#disabled').serializeArray()).to.eql([]);
|
|
});
|
|
|
|
it('() : should not get form controls with the wrong type', function() {
|
|
expect($('form#submit').serializeArray()).to.eql([
|
|
{
|
|
name: 'fruit',
|
|
value: 'Apple'
|
|
}
|
|
]);
|
|
});
|
|
|
|
it('() : should get selected options', function() {
|
|
expect($('form#select').serializeArray()).to.eql([
|
|
{
|
|
name: 'fruit',
|
|
value: 'Orange'
|
|
}
|
|
]);
|
|
});
|
|
|
|
it('() : should not get unnamed form controls', function() {
|
|
expect($('form#unnamed').serializeArray()).to.eql([
|
|
{
|
|
name: 'fruit',
|
|
value: 'Apple'
|
|
}
|
|
]);
|
|
});
|
|
|
|
it('() : should get multiple selected options', function() {
|
|
expect($('form#multiple').serializeArray()).to.have.length(2);
|
|
var data = $('form#multiple').serializeArray();
|
|
data.sort(function (a, b) {
|
|
return a.value - b.value;
|
|
});
|
|
expect(data).to.eql([
|
|
{
|
|
name: 'fruit',
|
|
value: 'Apple'
|
|
},
|
|
{
|
|
name: 'fruit',
|
|
value: 'Orange'
|
|
}
|
|
]);
|
|
});
|
|
|
|
it('() : should get individually selected elements', function() {
|
|
var data = $('form#nested input').serializeArray();
|
|
data.sort(function (a, b) {
|
|
return a.value - b.value;
|
|
});
|
|
expect(data).to.eql([
|
|
{
|
|
name: 'fruit',
|
|
value: 'Apple'
|
|
},
|
|
{
|
|
name: 'vegetable',
|
|
value: 'Carrot'
|
|
}
|
|
]);
|
|
|
|
});
|
|
|
|
it('() : should standardize line breaks', function() {
|
|
expect($('form#textarea').serializeArray()).to.eql([
|
|
{
|
|
name: 'fruits',
|
|
value: 'Apple\r\nOrange'
|
|
}
|
|
]);
|
|
});
|
|
|
|
});
|
|
|
|
});
|