blob: 4b6092b5df834bbafc1884f72a1c73631434b36c [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
test(function() {
assert_true('autocapitalize' in document.createElement('input'));
}, "Test that the autocapitalize is avaible on HTMLInputElement.")
test(function() {
assert_true('autocapitalize' in document.createElement('textarea'));
}, "Test that the autocapitalize is avaible on HTMLTextAreaElement.")
test(function() {
var elements = [ document.createElement('input'),
document.createElement('textarea') ];
elements.forEach(function(e) {
e.autocapitalize = 'on';
assert_equals(e.autocapitalize, 'sentences');
e.autocapitalize = 'off';
assert_equals(e.autocapitalize, 'none');
});
}, "Test deprecated values of autocapitalize.");
test(function() {
var elements = [ document.createElement('input'),
document.createElement('textarea') ];
var knownValues = [ 'none', 'characters', 'words', 'sentences' ];
var defaultValue = 'sentences';
elements.forEach(function(e) {
// Default value.
assert_equals(e.autocapitalize, defaultValue);
// Invalid value.
e.autocapitalize = 'foo';
assert_equals(e.autocapitalize, defaultValue);
assert_equals(e.getAttribute('autocapitalize'), 'foo');
e.setAttribute('autocapitalize', 'bar');
assert_equals(e.autocapitalize, defaultValue);
assert_equals(e.getAttribute('autocapitalize'), 'bar');
// Default value.
e.removeAttribute('autocapitalize');
assert_equals(defaultValue, e.autocapitalize);
assert_equals(e.getAttribute('autocapitalize'), null);
// Case insensitive.
e.setAttribute('autocapitalize', 'NoNe');
assert_equals(e.autocapitalize, 'none');
assert_equals(e.getAttribute('autocapitalize'), 'NoNe');
e.autocapitalize = 'WORDS';
assert_equals(e.autocapitalize, 'words');
assert_equals(e.getAttribute('autocapitalize'), 'WORDS');
knownValues.forEach(function(value) {
e.setAttribute('autocapitalize', value);
assert_equals(e.autocapitalize, value);
assert_equals(e.getAttribute('autocapitalize'), value);
e.removeAttribute('autocapitalize');
e.autocapitalize = value;
assert_equals(e.autocapitalize, value);
assert_equals(e.getAttribute('autocapitalize'), value);
e.removeAttribute('autocapitalize');
});
});
}, "Test reflection of autocapitalize.");
test(function() {
var testData = [
// Types with sentences as default value.
{ type: 'text', value: 'sentences' },
{ type: 'search', value: 'sentences' },
// Types supporting the features with none as default value.
{ type: 'email', value: 'none' },
{ type: 'url', value: 'none' },
{ type: 'tel', value: 'none' },
// Other types that do not support the value.
{ type: 'number', value: 'none' },
{ type: 'date', value: 'none' },
{ type: 'color', value: 'none' }
];
testData.forEach(function(data) {
var input = document.createElement('input');
input.type = data.type;
assert_equals(input.autocapitalize, data.value);
});
}, "Test the default value depending on <input> type.")
</script>
</body>
</html>