blob: efeb449094d497b3e5b5cbdbc7e22dcec0c4c284 [file] [log] [blame]
/*
* Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
* for details. All rights reserved. Use of this source code is governed by a
* BSD-style license that can be found in the LICENSE file.
*/
/**
* @description This test checks validity.valueMissing with blank values, blank
* options selected, or nothing selected.
* @static-warning
*/
import "dart:html";
import "../../testcommon.dart";
import "../../../Utils/async_utils.dart";
main() {
document.body.setInnerHtml('''
<input id="input" name="victim" required/>
<textarea id="textarea" name="victim" required></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>
''', treeSanitizer: new NullTreeSanitizer());
valueMissingFor(id) {
return document.getElementById(id).validity.valueMissing;
}
var v = document.getElementsByName("victim");
shouldBeTrue(valueMissingFor("input"));
shouldBeTrue(valueMissingFor("textarea"));
shouldBeTrue(valueMissingFor("select-no-option"));
shouldBeTrue(valueMissingFor("select-placeholder-selected"));
shouldBeFalse(valueMissingFor("select-without-placeholder"));
shouldBeFalse(valueMissingFor("select-placeholder-selected-size2"));
shouldBeFalse(valueMissingFor("select-without-placeholder-size2"));
shouldBeTrue(valueMissingFor("select-none-selected-multiple"));
shouldBeFalse(valueMissingFor("select-fake-placeholder-selected-multiple"));
shouldBeFalse(valueMissingFor("select-without-fake-placeholder-multiple"));
shouldBeTrue(valueMissingFor("select-none-selected-size2-multiple"));
shouldBeFalse(valueMissingFor("select-fake-placeholder-selected-size2-multiple"));
shouldBeFalse(valueMissingFor("select-without-fake-placeholder-size2-multiple"));
shouldBeFalse(valueMissingFor("select-optgroup"));
shouldBeTrue(valueMissingFor("select-disabled-option"));
}