blob: 336d13b6533b2c1549b2479724bd4dab3f39988a [file] [log] [blame]
<!DOCTYPE html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<div id="log"></div>
<form>
<input id="ccname" name="ccname" autocomplete="cc-name" autofocus="">
<input id="cardnumber" name="cardnumber" autocomplete="cc-number">
<input id="cvc" name="cvc" autocomplete="cc-csc">
<input id="ccexp" name="ccexp" autocomplete="cc-exp">
<input type="submit">
</form>
<button onclick="document.forms[0].classList.toggle('hidden')">Hide form</button>
<div id="info" style="position:absolute;left:400px"></div>
<script>
// Setup the JavaScript function that tries to access to the suggested values.
function grabField(field) {
// Simulate the user attempting to modify the suggested value.
field.focus();
field.setSelectionRange(0,0);
var result = document.execCommand('insertText', false, ' ');
var val = field.value.trim();
field.value='';
assert_equals(val, '', 'The JavaScript should not be able to access the suggested values.');
}
// Test that tries to grab the suggested value on empty fields.
test(function() {
assert_true(window.internals != null, 'This test requires internals object');
// Set some suggested values.
var ccname = document.getElementById('ccname');
var cardnumber = document.getElementById('cardnumber');
var cvc = document.getElementById('cvc');
var ccexp = document.getElementById('ccexp');
internals.setSuggestedValue(ccname, 'suggested ccname');
internals.setSuggestedValue(cardnumber, 'suggested cardnumber');
internals.setSuggestedValue(cvc, 'suggested cvc');
internals.setSuggestedValue(ccexp, 'suggested ccexp');
// Try to grab the suggested values in the fields.
grabField(ccname);
grabField(cardnumber);
grabField(cvc);
grabField(ccexp);
}, "JavaScript should not be able to access the suggested values on empty fields.");
// Test that tries to grab the suggested value on a field that contains a value.
test(function() {
assert_true(window.internals != null, 'This test requires internals object');
// Setup the JavaScript that adds some values in the fields.
function addValue(field) {
// Add some value in the field.
field.value = "Homer";
}
var ccname = document.getElementById('ccname');
// Add some value in the field.
ccname.value = "Homer";
// Set the suggested value.
internals.setSuggestedValue(ccname, 'suggested ccname');
// Try to grab the suggested values in the field.
grabField(ccname);
}, "JavaScript should not be able to access the suggested value on a field that has some value.");
</script>