blob: 2c894920f07a990d04ce49485377ea183061cc88 [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.
*/
/*
* Portions of this test are derived from code under the following license:
*
* Web-platform-tests are covered by the dual-licensing approach described in:
* http://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright.html
*/
/**
* after web-platform-tests/html/semantics/selectors/pseudo-classes/
* @assertion
* http://www.w3.org/html/wg/drafts/html/master/#pseudo-classes
* @description Selector: pseudo-classes (:checked)
* @needsreview Dart issue #19787
*/
import 'dart:html';
import "../../../../Utils/expectWeb.dart";
import "utils.dart";
const String htmlEL = r'''
<select id=select1>
<optgroup label="options" id=optgroup1>
<option value="option1" id=option1 selected>option1
<option value="option2" id=option2>option2
<option value="option2" id=option3 checked>option3
</select>
<input type=checkbox id=checkbox1 checked>
<input type=checkbox id=checkbox2>
<input type=checkbox id=checkbox3 selected>
<input type=radio id=radio1 checked>
<input type=radio id=radio2>
<form>
<p><input type=submit contextmenu=formmenu id="submitbutton"></p>
<menu type=popup id=formmenu>
<menuitem type=checkbox checked default id=menuitem1>
<menuitem type=checkbox default id=menuitem2>
<menuitem type=checkbox id=menuitem3>
<menuitem type=radio checked id=menuitem4>
<menuitem type=radio id=menuitem5>
</menu>
</form>
''';
void main() {
document.body.appendHtml(htmlEL);
testSelector(":checked"
, ["option1", "checkbox1", "radio1", "menuitem1", "menuitem4"]
, "':checked' matches checked <input>/<menuitem> in checkbox and radio button states, selected <option>s");
document.getElementById("checkbox1").attributes.remove("type"); // change type of input
document.getElementById("radio1").attributes.remove("type"); // change type of input
testSelector(":checked"
, ["option1", "menuitem1", "menuitem4"]
, "':checked' should no longer match <input>s whose type checkbox/radio has been removed");
OptionElement option2=document.getElementById("option2");
option2.selected = true; // select option2
document.getElementById("checkbox2").click(); // check chekbox2
document.getElementById("radio2").click(); // check radio2
testSelector(":checked"
, ["option2", "checkbox2", "radio2", "menuitem1", "menuitem4"]
, "':checked' matches clicked checkbox and radio buttons");
checkTestFailures();
}