46 lines
1.6 KiB
JavaScript
46 lines
1.6 KiB
JavaScript
var queryValues = {};
|
|
|
|
function testInteractiveValidationRequired(config) {
|
|
description("Test interactive validation with required attribute. This test checks if an empty required field prevents form submission and checks if a non-empty required field doesn't prevent form submission.");
|
|
|
|
var expectedValue = config['expectedValue'];
|
|
|
|
var keyValuePairs = window.location.search.replace('?', '').split('&');
|
|
for (var index = 0; index < keyValuePairs.length; ++index) {
|
|
var keyValue = keyValuePairs[index].split('=');
|
|
queryValues[keyValue[0]] = unescape(keyValue[1]);
|
|
}
|
|
|
|
if (queryValues['submitted']) {
|
|
shouldBeEqualToString('queryValues["test"]', expectedValue);
|
|
window.jsTestIsAsync = true;
|
|
finishJSTest();
|
|
return;
|
|
}
|
|
|
|
var form = document.createElement("form");
|
|
form.setAttribute("action", window.location);
|
|
form.innerHTML = '<input type=hidden name=submitted value=1><input id=submit type=submit><input id=test name=test type=' + config['inputType'] + ' required>';
|
|
document.body.appendChild(form);
|
|
|
|
debug('Submit without required value');
|
|
document.getElementById('submit').click();
|
|
|
|
if (document.activeElement.id != 'test') {
|
|
testFailed('Focus should be on test element.');
|
|
finishJSTest();
|
|
return;
|
|
}
|
|
|
|
debug('Submit with required value');
|
|
document.getElementById('test').value = expectedValue;
|
|
document.getElementById('submit').click();
|
|
testFailed('The form was not submitted.');
|
|
finishJSTest();
|
|
}
|
|
|
|
if (window.testRunner)
|
|
testRunner.waitUntilDone();
|
|
|
|
wasPostTestScriptParsed = true;
|