OLD | NEW |
---|---|
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <style> | 4 <style> |
5 #inert-div { | 5 #inert-div { |
6 height: 100px; | 6 height: 100px; |
7 width: 100px; | 7 width: 100px; |
8 background: blue; | 8 background: blue; |
9 } | 9 } |
10 | 10 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
70 | 70 |
71 events = ['mousedown', 'mouseup', 'click', 'mousemove', 'mouseover', 'mouseout' ]; | 71 events = ['mousedown', 'mouseup', 'click', 'mousemove', 'mouseover', 'mouseout' ]; |
72 dialogDiv = document.getElementById('dialog-div'); | 72 dialogDiv = document.getElementById('dialog-div'); |
73 dialogDiv.firedOnEvents = {}; | 73 dialogDiv.firedOnEvents = {}; |
74 eventFiredOnDialog = function(event) { | 74 eventFiredOnDialog = function(event) { |
75 dialogDiv.firedOnEvents[event.type] = true; | 75 dialogDiv.firedOnEvents[event.type] = true; |
76 if (Object.keys(dialogDiv.firedOnEvents).length == events.length) | 76 if (Object.keys(dialogDiv.firedOnEvents).length == events.length) |
77 dialogDiv.style.backgroundColor = 'green'; | 77 dialogDiv.style.backgroundColor = 'green'; |
78 }; | 78 }; |
79 | 79 |
80 body = document.body; | 80 document.firedOnEvents = {}; |
81 body.firedOnEvents = {}; | 81 document.expectedEventCount = events.length - 1; // document won't get 'mouseout ' |
esprehn
2014/01/14 01:43:29
Why are you storing these properties on the docume
falken
2014/01/14 01:50:48
Seemed a bit nicer to say document.expectedEventCo
| |
82 eventFiredOnBody = function(event) { | 82 eventFiredOnDocument = function(event) { |
83 body.firedOnEvents[event.type] = true; | 83 document.firedOnEvents[event.type] = true; |
84 if (Object.keys(body.firedOnEvents).length == events.length && !inertDiv.fir edOn) | 84 if (Object.keys(document.firedOnEvents).length == document.expectedEventCoun t && !inertDiv.firedOn) |
85 inertDiv.style.backgroundColor = 'green'; | 85 inertDiv.style.backgroundColor = 'green'; |
86 }; | 86 }; |
87 | 87 |
88 for (var i = 0; i < events.length; ++i) { | 88 for (var i = 0; i < events.length; ++i) { |
89 inertDiv.addEventListener(events[i], eventFiredOnInertNode); | 89 inertDiv.addEventListener(events[i], eventFiredOnInertNode); |
90 dialogDiv.addEventListener(events[i], eventFiredOnDialog); | 90 dialogDiv.addEventListener(events[i], eventFiredOnDialog); |
91 document.body.addEventListener(events[i], eventFiredOnBody); | 91 document.addEventListener(events[i], eventFiredOnDocument); |
92 } | 92 } |
93 | 93 |
94 debug('Clicking on inert box'); | 94 debug('Clicking on inert box'); |
95 clickOn(inertDiv); | 95 clickOn(inertDiv); |
96 shouldBeFalse('inertDiv.firedOn'); | 96 shouldBeFalse('inertDiv.firedOn'); |
97 shouldBe('Object.keys(body.firedOnEvents).length', 'events.length'); | 97 shouldBe('Object.keys(document.firedOnEvents).length', 'document.expectedEventCo unt'); |
98 | 98 |
99 debug('Clicking on non-inert box'); | 99 debug('Clicking on non-inert box'); |
100 clickOn(dialogDiv); | 100 clickOn(dialogDiv); |
101 shouldBeFalse('inertDiv.firedOn'); | 101 shouldBeFalse('inertDiv.firedOn'); |
102 shouldBe('Object.keys(dialogDiv.firedOnEvents).length', 'events.length'); | 102 shouldBe('Object.keys(dialogDiv.firedOnEvents).length', 'events.length'); |
103 </script> | 103 </script> |
104 </body> | 104 </body> |
105 </html> | 105 </html> |
OLD | NEW |