chromium/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-option-element/option-label-value.js

function test_option(member) {
  test(function() {
    var option = document.createElement("option");
    assert_equals(option[member], "");
  }, "No children, no " + member);

  test(function() {
    var option = document.createElement("option");
    option.setAttribute(member, "")
    assert_equals(option[member], "");
  }, "No children, empty " + member);

  test(function() {
    var option = document.createElement("option");
    option.setAttribute(member, member)
    assert_equals(option[member], member);
  }, "No children, " + member);

  test(function() {
    var option = document.createElement("option");
    option.setAttributeNS("http://www.example.com/", member, member)
    assert_equals(option[member], "");
  }, "No children, namespaced " + member);

  test(function() {
    var option = document.createElement("option");
    option.appendChild(document.createTextNode(" child "));
    assert_equals(option[member], "child");
  }, "Single child, no " + member);

  test(function() {
    var option = document.createElement("option");
    option.appendChild(document.createTextNode(" child "));
    option.setAttribute(member, "")
    assert_equals(option[member], "");
  }, "Single child, empty " + member);

  test(function() {
    var option = document.createElement("option");
    option.appendChild(document.createTextNode(" child "));
    option.setAttribute(member, member)
    assert_equals(option[member], member);
  }, "Single child, " + member);

  test(function() {
    var option = document.createElement("option");
    option.appendChild(document.createTextNode(" child "));
    option.setAttributeNS("http://www.example.com/", member, member)
    assert_equals(option[member], "child");
  }, "Single child, namespaced " + member);

  test(function() {
    var option = document.createElement("option");
    option.appendChild(document.createTextNode(" child "));
    option.appendChild(document.createTextNode(" node "));
    assert_equals(option[member], "child node");
  }, "Two children, no " + member);

  test(function() {
    var option = document.createElement("option");
    option.appendChild(document.createTextNode(" child "));
    option.appendChild(document.createTextNode(" node "));
    option.setAttribute(member, "")
    assert_equals(option[member], "");
  }, "Two children, empty " + member);

  test(function() {
    var option = document.createElement("option");
    option.appendChild(document.createTextNode(" child "));
    option.appendChild(document.createTextNode(" node "));
    option.setAttribute(member, member)
    assert_equals(option[member], member);
  }, "Two children, " + member);

  test(function() {
    var option = document.createElement("option");
    option.appendChild(document.createTextNode(" child "));
    option.appendChild(document.createTextNode(" node "));
    option.setAttributeNS("http://www.example.com/", member, member)
    assert_equals(option[member], "child node");
  }, "Two children, namespaced " + member);
}