Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / w3c / web-platform-tests / shadow-dom / user-interaction / focus-navigation / test-002.html
index ae848d9..fee07ff 100644 (file)
@@ -23,12 +23,13 @@ policies and contribution forms [3].
 <div id="log"></div>
 <script>
 var A_07_02_02_T01 = async_test('A_07_02_02_T01');
+var A_07_02_02_T02 = async_test('A_07_02_02_T02');
 
 A_07_02_02_T01.step(unit(function (ctx) {
 
        var counter = 0;
 
-       var invoked = [];
+       var expectations = [];
 
        var d = newRenderedHTMLDocument(ctx);
 
@@ -49,20 +50,20 @@ A_07_02_02_T01.step(unit(function (ctx) {
        chb2.setAttribute('class', 'shadow');
        chb2.addEventListener('focus', A_07_02_02_T01.step_func(function(event) {
                assert_equals(counter++, 0, 'Point 1: wrong focus navigation order');
-               invoked[1] = true;
+               expectations[1] = true;
        }), false);
-       invoked[1] = false;
+       expectations[1] = false;
        host.appendChild(chb2);
 
        var chb3 = d.createElement('input');
        chb3.setAttribute('type', 'checkbox');
-       chb3.setAttribute('id', 'chb2');
+       chb3.setAttribute('id', 'chb3');
        chb3.setAttribute('class', 'shadow');
        chb3.addEventListener('focus', A_07_02_02_T01.step_func(function(event) {
                assert_equals(counter++, 1, 'Point 2: wrong focus navigation order');
-               invoked[2] = true;
+               expectations[2] = true;
        }), false);
-       invoked[2] = false;
+       expectations[2] = false;
        host.appendChild(chb3);
 
        var s = createSR(host);
@@ -76,10 +77,9 @@ A_07_02_02_T01.step(unit(function (ctx) {
        inp1.setAttribute('id', 'shInp1');
        inp1.setAttribute('value', 'Input 1');
        inp1.addEventListener('focus', A_07_02_02_T01.step_func(function(event) {
-               assert_equals(counter++, 2, 'Point 3: wrong focus navigation order');
-               invoked[3] = true;
+               expectations[3] = false;
        }), false);
-       invoked[3] = false;
+       expectations[3] = true;
        s.appendChild(inp1);
 
        var inp2 = d.createElement('input');
@@ -87,20 +87,19 @@ A_07_02_02_T01.step(unit(function (ctx) {
        inp2.setAttribute('id', 'shInp2');
        inp2.setAttribute('value', 'Input 2');
        inp2.addEventListener('focus', A_07_02_02_T01.step_func(function(event) {
-               assert_equals(counter++, 3, 'Point 4: wrong focus navigation order');
-               invoked[4] = true;
+               expectations[4] = false;
        }), false);
-       invoked[4] = false;
+       expectations[4] = true;
        s.appendChild(inp2);
 
        var chb4 = d.createElement('input');
        chb4.setAttribute('type', 'checkbox');
-       chb4.setAttribute('id', 'chb2');
+       chb4.setAttribute('id', 'chb4');
        chb4.addEventListener('focus', A_07_02_02_T01.step_func(function(event) {
-               assert_equals(counter++, 4, 'Point 5: wrong focus navigation order');
-               invoked[5] = true;
+               assert_equals(counter++, 2, 'Point 5: wrong focus navigation order');
+               expectations[5] = true;
        }), false);
-       invoked[5] = false;
+       expectations[5] = false;
        d.body.appendChild(chb4);
 
        chb2.focus();
@@ -116,14 +115,124 @@ A_07_02_02_T01.step(unit(function (ctx) {
 
        fireKeyboardEvent(d, chb4, 'U+0009');
 
-       for (var i = 1; i < invoked.length; i++) {
-               if (!invoked[i]) {
-                       assert_true(false, 'Piont ' + i + ' event listener was not invoked');
+       for (var i = 1; i < expectations.length; i++) {
+               if (!expectations[i]) {
+                       assert_true(false, 'Point ' + i + ' event listener was not invoked');
                }
        }
 
     A_07_02_02_T01.done();
 }));
+
+
+
+A_07_02_02_T02.step(unit(function (ctx) {
+
+       var counter = 0;
+
+       var expectations = [];
+
+       var d = newRenderedHTMLDocument(ctx);
+
+       var chb0 = d.createElement('input');
+       chb0.setAttribute('type', 'checkbox');
+       chb0.setAttribute('id', 'chb0');
+        d.body.appendChild(chb0);
+
+
+       var host = d.createElement('div');
+       d.body.appendChild(host);
+
+       var chb1 = d.createElement('input');
+       chb1.setAttribute('type', 'checkbox');
+       chb1.setAttribute('id', 'chb1');
+       chb1.addEventListener('focus', A_07_02_02_T02.step_func(function(event) {
+               assert_true(false, 'Element shouldn\'t be rendered');
+       }), false);
+       host.appendChild(chb1);
+
+       var chb2 = d.createElement('input');
+       chb2.setAttribute('type', 'checkbox');
+       chb2.setAttribute('id', 'chb2');
+       chb2.setAttribute('class', 'shadow');
+       chb2.addEventListener('focus', A_07_02_02_T02.step_func(function(event) {
+               assert_equals(counter++, 2, 'Point 3: wrong focus navigation order');
+               expectations[1] = true;
+       }), false);
+       expectations[1] = false;
+       host.appendChild(chb2);
+
+       var chb3 = d.createElement('input');
+       chb3.setAttribute('type', 'checkbox');
+       chb3.setAttribute('id', 'chb3');
+       chb3.setAttribute('class', 'shadow');
+       chb3.addEventListener('focus', A_07_02_02_T02.step_func(function(event) {
+               assert_equals(counter++, 3, 'Point 4: wrong focus navigation order');
+               expectations[2] = true;
+       }), false);
+       expectations[2] = false;
+       host.appendChild(chb3);
+
+       var s = createSR(host);
+
+       var div = d.createElement('div');
+       div.innerHTML = '<content select=".shadow"></content>';
+       s.appendChild(div);
+
+       var inp1 = d.createElement('input');
+       inp1.setAttribute('type', 'text');
+       inp1.setAttribute('id', 'shInp1');
+       inp1.setAttribute('value', 'Input 1');
+       inp1.addEventListener('focus', A_07_02_02_T02.step_func(function(event) {
+               assert_equals(counter++, 0, 'Point 1: wrong focus navigation order');
+
+               expectations[3] = true;
+       }), false);
+       expectations[3] = false;
+       s.appendChild(inp1);
+
+       var inp2 = d.createElement('input');
+       inp2.setAttribute('type', 'text');
+       inp2.setAttribute('id', 'shInp2');
+       inp2.setAttribute('value', 'Input 2');
+       inp2.addEventListener('focus', A_07_02_02_T02.step_func(function(event) {
+               assert_equals(counter++, 1, 'Point 2: wrong focus navigation order');
+               expectations[4] = true;
+       }), false);
+       expectations[4] = false;
+       s.appendChild(inp2);
+
+       var chb4 = d.createElement('input');
+       chb4.setAttribute('type', 'checkbox');
+       chb4.setAttribute('id', 'chb4');
+       chb4.addEventListener('focus', A_07_02_02_T02.step_func(function(event) {
+               assert_equals(counter++, 4, 'Point 5: wrong focus navigation order');
+               expectations[5] = true;
+       }), false);
+       expectations[5] = false;
+       d.body.appendChild(chb4);
+
+       chb0.focus();
+
+       //simulate TAB clicks
+       fireKeyboardEvent(d, inp1, 'U+0009');
+
+       fireKeyboardEvent(d, inp2, 'U+0009');
+
+       fireKeyboardEvent(d, chb2, 'U+0009');
+
+       fireKeyboardEvent(d, chb3, 'U+0009');
+
+       fireKeyboardEvent(d, chb4, 'U+0009');
+
+       for (var i = 1; i < expectations.length; i++) {
+               if (!expectations[i]) {
+                       assert_true(false, 'Point ' + i + ' event listener was not invoked');
+               }
+       }
+
+    A_07_02_02_T02.done();
+}));
 </script>
 </body>
 </html>