Improvements on input test. Ignoring hidden inputs for counting

This commit is contained in:
Anton Molleda 2014-09-07 08:27:23 -07:00
Родитель d8b3eeb782
Коммит 2472e600f3
1 изменённых файлов: 41 добавлений и 39 удалений

Просмотреть файл

@ -18,54 +18,56 @@
"use strict";
var $ = require('cheerio'),
Deferred = require('promised-io').Deferred,
inputTypes = ['color',
'date',
'datetime',
'datetime-local',
'email',
'month',
'number',
'range',
'reset',
'search',
'tel',
'time',
'url',
'week'
];
Deferred = require('promised-io').Deferred,
inputTypes = ['color',
'date',
'datetime',
'datetime-local',
'email',
'month',
'number',
'range',
'reset',
'search',
'tel',
'time',
'url',
'week'
];
var check = function (website) {
var deferred = new Deferred();
var deferred = new Deferred();
process.nextTick(function () {
var inputs = website.$('input');
process.nextTick(function () {
//Removing the hidden type, we should probably remove other types too like password and so.
var inputs = website.$('input[type!="hidden"]');
var htmlInputs = inputs.filter(function (index) {
var input = $(this);
for (var i = 0, l = inputTypes.length; i < l; i++) {
if (input.attr('type') && input.attr('type').toLowerCase() === inputTypes[i]) {
return true;
}
}
return false;
});
var htmlInputs = inputs.filter(function (index) {
var input = $(this);
for (var i = 0, l = inputTypes.length; i < l; i++) {
if (input.attr('type') && input.attr('type').toLowerCase() === inputTypes[i]) {
return true;
}
}
return false;
});
var passed = true;
var passed = true;
if (inputs.length > 0) {
passed = htmlInputs.length > 0;
}
//At least 2 inputs required to check this. If not websites with only search fail
if (inputs.length > 1) {
passed = htmlInputs.length > 0;
}
var test = {
testName: "inputTypes",
passed: passed
};
var test = {
testName: "inputTypes",
passed: passed
};
deferred.resolve(test);
});
deferred.resolve(test);
});
return deferred.promise;
return deferred.promise;
};
module.exports.check = check;