| <!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> |