Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Unified Diff: third_party/WebKit/LayoutTests/fast/forms/ValidityState-valueMissing.html

Issue 2211743003: Merge layout tests ValidityState-valueMissing-00N.html into one. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/fast/forms/ValidityState-valueMissing-001.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/LayoutTests/fast/forms/ValidityState-valueMissing.html
diff --git a/third_party/WebKit/LayoutTests/fast/forms/ValidityState-valueMissing.html b/third_party/WebKit/LayoutTests/fast/forms/ValidityState-valueMissing.html
new file mode 100644
index 0000000000000000000000000000000000000000..b5df8eca0f383ac02332e6e09496497e7327950e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/forms/ValidityState-valueMissing.html
@@ -0,0 +1,358 @@
+<!DOCTYPE html>
+<body>
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+
+<input id="input-empty" name="victim" required/>
+<input id="input-nonempty" name="victim" value="something" required/>
+<textarea id="textarea-empty" name="victim" required></textarea>
+<textarea id="textarea-nonempty" name="victim" required>something</textarea>
+<select id="select-no-option" name="victim" required>
+</select>
+<select id="select-placeholder-selected" name="victim" required>
+ <option value="" selected />
+ <option value="X">X</option>
+</select>
+<select id="select-without-placeholder" name="victim" required>
+ <option value="X">X</option>
+ <option value="" selected />
+</select>
+<select id="select-placeholder-selected-size2" name="victim" size="2" required>
+ <option value="" selected />
+ <option value="X">X</option>
+</select>
+<select id="select-without-placeholder-size2" name="victim" size="2" required>
+ <option value="X">X</option>
+ <option value="" selected />
+</select>
+<select id="select-none-selected-multiple" name="victim" multiple required>
+ <option value="" />
+ <option value="X">X</option>
+</select>
+<select id="select-fake-placeholder-selected-multiple" name="victim" multiple required>
+ <option value="" selected />
+ <option value="X">X</option>
+</select>
+<select id="select-without-fake-placeholder-multiple" name="victim" multiple required>
+ <option value="X">X</option>
+ <option value="" selected />
+</select>
+<select id="select-none-selected-size2-multiple" name="victim" multiple size="2" required>
+ <option value="" />
+ <option value="X">X</option>
+</select>
+<select id="select-fake-placeholder-selected-size2-multiple" name="victim" multiple size="2" required>
+ <option value="" selected />
+ <option value="X">X</option>
+</select>
+<select id="select-without-fake-placeholder-size2-multiple" name="victim" multiple size="2" required>
+ <option value="X">X</option>
+ <option value="" selected />
+</select>
+<select id="select-optgroup" name="victim" required>
+ <optgroup label="1">
+ <option value="" selected />
+ </optgroup>
+ <option value="X">X</option>
+</select>
+<select id="select-disabled-option" name="victim" required>
+ <option value="" disabled selected />
+ <option value="X">X</option>
+</select>
+<select id="select-disabled-option-2" name="victim" required>
+ <option value="" disabled />
+ <option value="X">X</option>
+</select>
+
+<select id="select-with-placeholder" name="victim" required>
+ <option value="" />
+ <option value="X" selected>X</option>
+</select>
+<select id="select-with-fake-placeholder-size2" name="victim" size="2" required>
+ <option value="" />
+ <option value="X" selected>X</option>
+</select>
+<select id="select-without-fake-placeholder-size2" name="victim" size="2" required>
+ <option value="X" selected>X</option>
+ <option value="" />
+</select>
+<select id="select-with-fake-placeholder-multiple" name="victim" multiple required>
+ <option value="" />
+ <option value="X" selected>X</option>
+</select>
+<select id="select-without-fake-placeholder-multiple" name="victim" multiple required>
+ <option value="X" selected>X</option>
+ <option value="" />
+</select>
+<select id="select-with-fake-placeholder-size2-multiple" name="victim" multiple size="2" required>
+ <option value="" />
+ <option value="X" selected>X</option>
+</select>
+<select id="select-without-fake-placeholder-size2-multiple" name="victim" multiple size="2" required>
+ <option value="X" selected>X</option>
+ <option value="" />
+</select>
+<select id="select-selecting-by-key" required>
+ <option value="" selected/>
+ <option>a</option>
+</select>
+<select id="select-selecting-by-key-2" required>
+ <option value="" selected/>
+ <option accesskey="1">a</option>
+</select>
+
+<input name="victim" disabled required />
+<textarea name="victim" disabled required></textarea>
+<select name="victim" disabled required>
+</select>
+<select name="victim" disabled required>
+ <option value="" selected />
+ <option value="X">X</option>
+</select>
+<select name="victim" disabled required>
+ <option value="X">X</option>
+ <option value="" selected />
+</select>
+<select name="victim" size="2" disabled required>
+ <option value="" selected />
+ <option value="X">X</option>
+</select>
+<select name="victim" size="2" disabled required>
+ <option value="X">X</option>
+ <option value="" selected />
+</select>
+<select name="victim" multiple disabled required>
+ <option value="" />
+ <option value="X">X</option>
+</select>
+<select name="victim" multiple disabled required>
+ <option value="" selected />
+ <option value="X">X</option>
+</select>
+<select name="victim" multiple disabled required>
+ <option value="X">X</option>
+ <option value="" selected />
+</select>
+<select name="victim" multiple size="2" disabled required>
+ <option value="" />
+ <option value="X">X</option>
+</select>
+<select name="victim" multiple size="2" disabled required>
+ <option value="" selected />
+ <option value="X">X</option>
+</select>
+<select name="victim" multiple size="2" disabled required>
+ <option value="X">X</option>
+ <option value="" selected />
+</select>
+
+<input name="victim" readonly required />
+<textarea name="victim" readonly required></textarea>
+
+<fieldset id="non-supported-container">
+<input name="victim" type="hidden" required />
+<input name="victim" type="range" required />
+<input name="victim" type="image" required />
+<input name="victim" type="reset" required />
+<input name="victim" type="button" required />
+<input name="victim" type="submit" required />
+</fieldset>
+
+<input name="victim" type="checkbox" required checked />
+<input name="victim" type="checkbox" required />
+
+<input id="input-file" type="file" required />
+<input id="input-text" type="text" required />
+<input id="input-search" type="search" required />
+<input id="input-url" type="url" required />
+<input id="input-tel" type="tel" required />
+<input id="input-email" type="email" required />
+<input id="input-password" type="password" required />
+<input id="input-number" type="number" required />
+
+<script>
+function valueMissingFor(id) {
+ return document.getElementById(id).validity.valueMissing;
+}
+
+test(() => {
+ assert_true(valueMissingFor('input-empty'));
yosin_UTC9 2016/08/04 08:19:19 Since sample and verification is too far away, it
tkent 2016/08/04 23:08:26 That's a good idea. Done in Patch Set 2.
+}, 'Empty-value INPUT[required] should be valueMissing.');
+
+test(() => {
+ assert_false(valueMissingFor('input-nonempty'));
+}, 'INPUT[required] with a non-empty value should not be valueMissing.');
+
+test(() => {
+ assert_true(valueMissingFor('textarea-empty'));
+}, 'Empty value TEXTAREA[required] should be valueMissing.');
+
+test(() => {
+ assert_false(valueMissingFor('textarea-nonempty'));
+}, 'TEXTAREA[required] with a non-empty value should not be valueMissing.');
+
+test(() => {
+ assert_true(valueMissingFor('select-no-option'));
+}, 'SELECT[required] with no OPTIONS should be valueMissing.');
+
+test(() => {
+ assert_true(valueMissingFor('select-placeholder-selected'));
+}, 'SELECT[required] with a selected placeholder OPTION should be valueMissing.');
+
+test(() => {
+ assert_false(valueMissingFor('select-without-placeholder'));
+}, 'SELECT[required] with a selected non-placeholder OPTION should not be valueMissing.');
+
+test(() => {
+ assert_false(valueMissingFor('select-placeholder-selected-size2'));
+}, 'SELECT[required][size=2] with a selected placeholder OPTION should not be valueMissing.');
+
+test(() => {
+ assert_false(valueMissingFor('select-without-placeholder-size2'));
+}, 'SELECT[rquired][size=2] with a selected non-placeholder OPTION should not be valueMissing.');
+
+test(() => {
+ assert_true(valueMissingFor('select-none-selected-multiple'));
+}, 'SELECT[required][multiple] without selected OPTIONs should be valueMissing.');
+
+test(() => {
+ assert_false(valueMissingFor('select-fake-placeholder-selected-multiple'));
+}, 'SELECT[required][multiple] with a selected placeholder-like OPTION should not be valueMissing.');
+
+test(() => {
+ assert_false(valueMissingFor('select-without-fake-placeholder-multiple'));
+}, 'SELECT[required][multiple] with a selected OPTION should not be valueMissing.');
+
+test(() => {
+ assert_true(valueMissingFor('select-none-selected-size2-multiple'));
+}, 'SELECT[required][multiple][size=2] without selected OPTIONs should be valueMissing.');
+
+test(() => {
+ assert_false(valueMissingFor('select-fake-placeholder-selected-size2-multiple'));
+}, 'SELECT[required][multiple][size=2] with a selected placeholder-liek OPTION should not be valueMissing.');
+
+test(() => {
+ assert_false(valueMissingFor('select-without-fake-placeholder-size2-multiple'));
+}, 'SELECT[required][multiple][size=2] with a selected OPTION should not be valueMissing.');
+
+test(() => {
+ assert_false(valueMissingFor('select-optgroup'));
+}, 'SELECT[required] with a selected placeholder-like OPTION inside an OPTGROUP should not be valueMissing.');
+
+test(() => {
+ assert_true(valueMissingFor('select-disabled-option'));
+}, 'SELECT[required] with a selected disabled placeholder OPTION should be valueMissing.');
+
+test(() => {
+ assert_false(valueMissingFor('select-disabled-option-2'));
+ assert_equals(document.getElementById('select-disabled-option-2').selectedIndex, 1);
+}, 'SELECT[required] with a non-selected disabled placeholder OPTION should not be valueMissing.');
+
+test(() => {
+ assert_false(valueMissingFor('select-with-placeholder'));
+}, 'SELECT[required] with a unselected placeholder OPTION should not be valueMissing.');
+
+test(() => {
+ assert_false(valueMissingFor('select-with-fake-placeholder-size2'));
+}, 'SELECT[required][size=2] with a unselected placeholder OPTION should not be valueMissing.');
+
+test(() => {
+ assert_false(valueMissingFor('select-without-fake-placeholder-size2'));
+}, 'SELECT[required][size=2] with a unselected placeholder-like OPTION should not be valueMissing.');
+
+test(() => {
+ assert_false(valueMissingFor('select-with-fake-placeholder-multiple'));
+}, 'SELECT[required][multiple] with a unselected placeholder OPTION should not be valueMissing.');
+
+test(() => {
+ assert_false(valueMissingFor('select-without-fake-placeholder-multiple'));
+}, 'SELECT[required][multiple] with a unselected placeholder-like OPTION should not be valueMissing.');
+test(() => {
+ assert_false(valueMissingFor('select-with-fake-placeholder-size2-multiple'));
+}, 'SELECT[required][size=2][multiple] with a unselected placeholder OPTION should not be valueMissing.');
+test(() => {
+ assert_false(valueMissingFor('select-without-fake-placeholder-size2-multiple'));
+}, 'SELECT[required][size=2][multiple] with a unselected placeholder-like OPTION should not be valueMissing.');
+
+test(() => {
+ assert_true(!!window.eventSender, 'Needs eventSender.');
+ // Select by type-ahead.
+ var select = document.getElementById('select-selecting-by-key');
+ assert_true(valueMissingFor('select-selecting-by-key'));
+ select.focus();
+ eventSender.keyDown('a');
+ assert_equals(select.value, 'a');
+ assert_false(valueMissingFor('select-selecting-by-key'));
+
+ // Select by accesskey.
+ select = document.getElementById('select-selecting-by-key-2');
+ assert_true(valueMissingFor('select-selecting-by-key-2'));
+ select.focus();
+ eventSender.keyDown('1', 'accessKey');
+ assert_equals(select.value, 'a');
+ assert_false(valueMissingFor('select-selecting-by-key-2'));
+}, 'Updating valueMissing state by user input.');
+
+test(() => {
+ var controls = document.querySelectorAll(':disabled');
+ for (c in controls) {
+ if (c.validity)
+ assert_false(c.validity.valueMissing);
+ }
+}, 'Disabled controls never be valueMissing.');
+
+test(() => {
+ var controls = document.querySelectorAll('[readonly]');
+ for (c in controls) {
+ if (c.validity)
+ assert_false(c.validity.valueMissing);
+ }
+}, 'Read-only controls never be valueMissing.');
+
+test(() => {
+ var fieldset = document.querySelector('#non-supported-container');
+ for (c in fieldset.elements) {
+ if (c.validity)
+ assert_false(c.validity.valueMissing);
+ }
+}, 'INPUT elements of some types never be valueMissing.');
+
+test(() => {
+ var controls = document.querySelectorAll('input[type=checkbox]');
+ assert_false(controls[0].validity.valueMissing);
+ assert_true(controls[1].validity.valueMissing);
+}, 'INPUT[type=checkbox] supports valueMissing.');
+
+test(() => {
+ assert_true(valueMissingFor('input-file'));
+}, 'INPUT[type=file] supports valueMissing.');
+
+test(() => {
+ assert_true(valueMissingFor('input-text'));
+}, 'INPUT[type=text] supports valueMissing.');
+
+test(() => {
+ assert_true(valueMissingFor('input-search'));
+}, 'INPUT[type=search] supports valueMissing.');
+
+test(() => {
+ assert_true(valueMissingFor('input-url'));
+}, 'INPUT[type=url] supports valueMissing.');
+
+test(() => {
+ assert_true(valueMissingFor('input-tel'));
+}, 'INPUT[type=tel] supports valueMissing.');
+
+test(() => {
+ assert_true(valueMissingFor('input-email'));
+}, 'INPUT[type=email] supports valueMissing.');
+
+test(() => {
+ assert_true(valueMissingFor('input-password'));
+}, 'INPUT[type=password] supports valueMissing.');
+
+test(() => {
+ assert_true(valueMissingFor('input-number'));
+}, 'INPUT[type=number] supports valueMissing.');
+</script>
+</body>
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/fast/forms/ValidityState-valueMissing-001.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698