Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / fast / forms / resources / multiple-fields-blur-and-focus-events.js
blobb9c3582cb7ca155772c241e01a33e8535091354c
1 var testInput;
2 var blurCounter = 0;
3 var focusCounter = 0;
5 function keyDown(key, modifiers)
7     eventSender.keyDown(key, modifiers);
10 function state()
12     return 'blur=' + blurCounter + ' focus=' + focusCounter;
15 function beginTestCase(testCaseName)
17     debug(testCaseName);
18     blurCounter = 0;
19     focusCounter = 0;
22 function startTestFor(typeName)
24     description('Check blur and focus events for multiple fields ' + typeName + ' input UI');
25     document.getElementById('container').innerHTML = '<input id="before">'
26         + '<input id="test" type="' + typeName + '">'
27         + '<input id="after">';
29     testInput = document.getElementById('test');
30     testInput.addEventListener('blur', function () { ++blurCounter; });
31     testInput.addEventListener('focus', function () { ++focusCounter; });
33     beginTestCase('focus() and blur()');
34     shouldBeEqualToString('testInput.focus(); state()', 'blur=0 focus=1');
35     shouldBeEqualToString('testInput.blur(); state()', 'blur=1 focus=1');
37     if (window.eventSender) {
38         var numberOfFields;
39         switch (typeName) {
40         case 'week':
41         case 'month':
42             numberOfFields = 2;
43             break;
44         case 'datetime':
45         case 'datetime-local':
46             numberOfFields = 6;
47             break;
48         default:
49             numberOfFields = 3;
50             break;
51         }
53         beginTestCase('focus and Tab key to blur');
54         document.getElementById("before").focus();
55         for (var i = 0; i < numberOfFields; i++)
56             shouldBeEqualToString('keyDown("\t"); state()', 'blur=0 focus=1');
57         shouldBeEqualToString('keyDown("\t"); state()', 'blur=1 focus=1');
58     } else {
59         debug('Please run in DumpRenderTree for focus and Tab-key test case');
60     }
61     debug('');
62     document.body.removeChild(document.getElementById("container"));