| Index: third_party/WebKit/LayoutTests/fast/css/pseudo-default-dynamic.html | 
| diff --git a/third_party/WebKit/LayoutTests/fast/css/pseudo-default-dynamic.html b/third_party/WebKit/LayoutTests/fast/css/pseudo-default-dynamic.html | 
| index 73a2893c04ba11c79872b53db37e2d79bbca6d21..202af00e96c849ec0e2454eb8cf508d01b5364de 100644 | 
| --- a/third_party/WebKit/LayoutTests/fast/css/pseudo-default-dynamic.html | 
| +++ b/third_party/WebKit/LayoutTests/fast/css/pseudo-default-dynamic.html | 
| @@ -4,8 +4,8 @@ | 
| <div id="log"></div> | 
| <div id="container"></div> | 
| <style> | 
| -button, input { background: red; } | 
| -button:default, input:default { background: green; } | 
| +button, input, option { background: red; } | 
| +button:default, input:default, option:default { background: green; } | 
| </style> | 
| <script> | 
| // TODO(tkent): This should be merged to web-platform-tests/html/semantics/selectors/pseudo-classes/default.html. | 
| @@ -86,4 +86,83 @@ test(function() { | 
| assert_equals(background('second'), NOT_DEFAULT); | 
| }, 'Adding a button by form content attribute should update the default button.'); | 
|  | 
| +test(function() { | 
| +    container.innerHTML = '<form><input type=checkbox checked id=c1><input type=text checked id=t1></form>'; | 
| +    assert_equals(background('c1'), DEFAULT); | 
| +    assert_equals(background('t1'), NOT_DEFAULT); | 
| +    document.querySelector('#c1').type = 'text'; | 
| +    document.querySelector('#t1').type = 'checkbox'; | 
| +    assert_equals(background('c1'), NOT_DEFAULT); | 
| +    assert_equals(background('t1'), DEFAULT); | 
| +}, 'Updating type attribute of :default checkbox should update default status'); | 
| + | 
| +test(function() { | 
| +    container.innerHTML = '<form><input type=radio checked id=r1><input type=text checked id=t1></form>'; | 
| +    assert_equals(background('r1'), DEFAULT); | 
| +    assert_equals(background('t1'), NOT_DEFAULT); | 
| +    document.querySelector('#r1').type = 'text'; | 
| +    document.querySelector('#t1').type = 'radio'; | 
| +    assert_equals(background('r1'), NOT_DEFAULT); | 
| +    assert_equals(background('t1'), DEFAULT); | 
| +}, 'Updating type attribute of :default radio should update default status'); | 
| + | 
| +test(function() { | 
| +    container.innerHTML = '<form><input type=checkbox checked id=c1><input type=radio checked id=r1></form>'; | 
| +    assert_equals(background('c1'), DEFAULT); | 
| +    assert_equals(background('r1'), DEFAULT); | 
| +    document.querySelector('#c1').defaultChecked = false; | 
| +    document.querySelector('#r1').defaultChecked = false; | 
| +    assert_equals(background('c1'), NOT_DEFAULT); | 
| +    assert_equals(background('r1'), NOT_DEFAULT); | 
| +}, 'Updating the checked attribute of :default checkbox or radio should update default status'); | 
| + | 
| +test(function() { | 
| +    container.innerHTML = '<form><input type=checkbox id=c1><input type=radio id=r1></form>'; | 
| +    assert_equals(background('c1'), NOT_DEFAULT); | 
| +    assert_equals(background('r1'), NOT_DEFAULT); | 
| +    if (window.eventSender){ | 
| +        var checkbox = document.querySelector('#c1'); | 
| +        checkbox.focus(); | 
| +        eventSender.keyDown(' '); | 
| +        assert_equals(checkbox.checked, true); | 
| +        assert_equals(background('c1'), NOT_DEFAULT); | 
| + | 
| +        var radio = document.querySelector('#r1'); | 
| +        radio.focus(); | 
| +        eventSender.keyDown(' '); | 
| +        assert_equals(radio.checked, true); | 
| +        assert_equals(background('r1'), NOT_DEFAULT); | 
| +    } | 
| +    document.querySelector('#c1').setAttribute('checked', 'checked'); | 
| +    document.querySelector('#r1').setAttribute('checked', 'checked'); | 
| +    assert_equals(background('c1'), DEFAULT); | 
| +    assert_equals(background('r1'), DEFAULT); | 
| + | 
| +    document.querySelector('#c1').removeAttribute('checked'); | 
| +    document.querySelector('#r1').removeAttribute('checked'); | 
| +    assert_equals(background('c1'), NOT_DEFAULT); | 
| +    assert_equals(background('r1'), NOT_DEFAULT); | 
| +}, 'Dynamically updating checked status or setting checked attribute should reflect correct default status'); | 
| + | 
| +test(function() { | 
| +    container.innerHTML = '<form><select><option selected id=o1>1</option><option id=o2>2</option></select></form>'; | 
| +    assert_equals(background('o1'), DEFAULT); | 
| +    assert_equals(background('o2'), NOT_DEFAULT); | 
| +    document.querySelector('#o1').defaultSelected = false; | 
| +    document.querySelector('#o2').defaultSelected = true; | 
| +    assert_equals(background('o1'), NOT_DEFAULT); | 
| +    assert_equals(background('o2'), DEFAULT); | 
| +}, 'Updating the selected attribute of :default option element should update default status'); | 
| + | 
| +test(function() { | 
| +    container.innerHTML = '<form><select><option id=o1></option><option id=o2></option</select></form>'; | 
| +    assert_equals(background('o1'), NOT_DEFAULT); | 
| +    document.querySelector('#o1').selected = true; | 
| +    assert_equals(background('o1'), NOT_DEFAULT); | 
| +    document.querySelector('#o1').setAttribute('selected', 'selected'); | 
| +    assert_equals(background('o1'), DEFAULT); | 
| +    document.querySelector('#o1').removeAttribute('selected'); | 
| +    assert_equals(background('o1'), NOT_DEFAULT); | 
| +}, 'Dynamically updating selected status or setting selected attribute should reflect correct default status'); | 
| + | 
| </script> | 
|  |