| 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
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..73a2893c04ba11c79872b53db37e2d79bbca6d21
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/fast/css/pseudo-default-dynamic.html
|
| @@ -0,0 +1,89 @@
|
| +<!DOCTYPE html>
|
| +<script src="../../resources/testharness.js"></script>
|
| +<script src="../../resources/testharnessreport.js"></script>
|
| +<div id="log"></div>
|
| +<div id="container"></div>
|
| +<style>
|
| +button, input { background: red; }
|
| +button:default, input:default { background: green; }
|
| +</style>
|
| +<script>
|
| +// TODO(tkent): This should be merged to web-platform-tests/html/semantics/selectors/pseudo-classes/default.html.
|
| +
|
| +var container = document.querySelector('#container');
|
| +const DEFAULT = 'rgb(0, 128, 0)';
|
| +const NOT_DEFAULT = 'rgb(255, 0, 0)';
|
| +
|
| +function background(id) {
|
| + return document.defaultView.getComputedStyle(document.getElementById(id), null).getPropertyValue('background-color');
|
| +}
|
| +
|
| +test(function() {
|
| + container.innerHTML = '<form><input type=submit id=removed><object></object><input type=submit id=second></form>';
|
| + assert_equals(background('removed'), DEFAULT);
|
| + assert_equals(background('second'), NOT_DEFAULT);
|
| + document.querySelector('#removed').type = 'text';
|
| + assert_equals(background('removed'), NOT_DEFAULT);
|
| + assert_equals(background('second'), DEFAULT);
|
| +
|
| + container.innerHTML = '<form><button type=submit id=removed></button><input type=submit id=second></form>';
|
| + assert_equals(background('removed'), DEFAULT);
|
| + assert_equals(background('second'), NOT_DEFAULT);
|
| + document.querySelector('#removed').type = 'reset';
|
| + assert_equals(background('removed'), NOT_DEFAULT);
|
| + assert_equals(background('second'), DEFAULT);
|
| +
|
| + container.innerHTML = '<form id=f1><input type=submit id=removed></form><input type=submit id=second form=f1>';
|
| + assert_equals(background('removed'), DEFAULT);
|
| + assert_equals(background('second'), NOT_DEFAULT);
|
| + document.querySelector('#removed').type = 'reset';
|
| + assert_equals(background('removed'), NOT_DEFAULT);
|
| + assert_equals(background('second'), DEFAULT);
|
| +}, 'Removing the :default button by updating type attribute should update the default button.');
|
| +
|
| +test(function() {
|
| + container.innerHTML = '<form><input type=submit id=removed><input type=submit id=second></form>';
|
| + assert_equals(background('removed'), DEFAULT);
|
| + assert_equals(background('second'), NOT_DEFAULT);
|
| + document.querySelector('#removed').remove();
|
| + assert_equals(background('second'), DEFAULT);
|
| +}, 'Removing the :default button by detaching should update the default button.');
|
| +
|
| +test(function() {
|
| + container.innerHTML = '<input type=submit id=removed form=f1><form id=f1><input type=submit id=second></form>';
|
| + assert_equals(background('removed'), DEFAULT);
|
| + assert_equals(background('second'), NOT_DEFAULT);
|
| + document.querySelector('#removed').removeAttribute('form');
|
| + assert_equals(background('removed'), NOT_DEFAULT);
|
| + assert_equals(background('second'), DEFAULT);
|
| +}, 'Removing the :default button by updating form content attribute should update the default button.');
|
| +
|
| +test(function() {
|
| + container.innerHTML = '<form><input type=text id=added><input type=submit id=second></form>';
|
| + assert_equals(background('added'), NOT_DEFAULT);
|
| + assert_equals(background('second'), DEFAULT);
|
| + document.querySelector('#added').type = 'image';
|
| + assert_equals(background('added'), DEFAULT);
|
| + assert_equals(background('second'), NOT_DEFAULT);
|
| +}, 'Adding a button by updating type attribute should update the default button.');
|
| +
|
| +test(function() {
|
| + container.innerHTML = '<form><input type=submit id=second></form>';
|
| + assert_equals(background('second'), DEFAULT);
|
| + var button = document.createElement('button');
|
| + button.id = 'added'
|
| + document.querySelector('form').insertBefore(button, document.querySelector('#second'));
|
| + assert_equals(background('added'), DEFAULT);
|
| + assert_equals(background('second'), NOT_DEFAULT);
|
| +}, 'Adding a button to a DOM tree should update the default button.');
|
| +
|
| +test(function() {
|
| + container.innerHTML = '<input type=submit id=added><form id=f1><input type=submit id=second></form>';
|
| + assert_equals(background('added'), NOT_DEFAULT);
|
| + assert_equals(background('second'), DEFAULT);
|
| + document.querySelector('#added').setAttribute('form', 'f1');
|
| + assert_equals(background('added'), DEFAULT, 'added button should be default.');
|
| + assert_equals(background('second'), NOT_DEFAULT);
|
| +}, 'Adding a button by form content attribute should update the default button.');
|
| +
|
| +</script>
|
|
|