Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(18)

Side by Side Diff: third_party/WebKit/LayoutTests/dom/html/level2/events/dispatchEvent13.js

Issue 2667393004: Move DOM conformance tests to dom/legacy_dom_conformance/, part 4/N. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 Copyright © 2001-2004 World Wide Web Consortium,
3 (Massachusetts Institute of Technology, European Research Consortium
4 for Informatics and Mathematics, Keio University). All
5 Rights Reserved. This work is distributed under the W3C® Software License [1] i n the
6 hope that it will be useful, but WITHOUT ANY WARRANTY; without even
7 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
8
9 [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
10 */
11
12 /**
13 * Gets URI that identifies the test.
14 * @return uri identifier of test
15 */
16 function getTargetURI() {
17 return "http://www.w3.org/2001/DOM-Test-Suite/level2/events/dispatchEvent1 3";
18 }
19
20 var docsLoaded = -1000000;
21 var builder = null;
22
23 //
24 // This function is called by the testing framework before
25 // running the test suite.
26 //
27 // If there are no configuration exceptions, asynchronous
28 // document loading is started. Otherwise, the status
29 // is set to complete and the exception is immediately
30 // raised when entering the body of the test.
31 //
32 function setUpPage() {
33 setUpPageStatus = 'running';
34 try {
35 //
36 // creates test document builder, may throw exception
37 //
38 builder = createConfiguredBuilder();
39
40 docsLoaded = 0;
41
42 var docRef = null;
43 if (typeof(this.doc) != 'undefined') {
44 docRef = this.doc;
45 }
46 docsLoaded += preload(docRef, "doc", "hc_staff");
47
48 if (docsLoaded == 1) {
49 setUpPageStatus = 'complete';
50 }
51 } catch(ex) {
52 catchInitializationError(builder, ex);
53 setUpPageStatus = 'complete';
54 }
55 }
56
57 //
58 // This method is called on the completion of
59 // each asychronous load started in setUpTests.
60 //
61 // When every synchronous loaded document has completed,
62 // the page status is changed which allows the
63 // body of the test to be executed.
64 function loadComplete() {
65 if (++docsLoaded == 1) {
66 setUpPageStatus = 'complete';
67 }
68 }
69
70 /**
71 * Inner class implementation for variable listener1
72 */
73 var listener1;
74
75 /**
76 * Constructor
77
78 * @param events Value from value attribute of nested var element
79 * @param listeners Value from value attribute of nested var element
80 */
81
82 function EventListenerN1003B(events, listeners) {
83 this.events = events;
84 this.listeners = listeners;
85 }
86
87 /**
88 *
89 This method is called whenever an event occurs of the type for which theEventLis tenerinterface was registered.
90
91 * @param evt
92 TheEventcontains contextual information about the event. It also contains thesto pPropagationand preventDefaultmethods which are used in determining the event's flow and default action.
93
94 */
95 EventListenerN1003B.prototype.handleEvent = function(evt) {
96 //
97 // bring class variables into function scope
98 //
99 var events = listener1.events;
100 var listeners = listener1.listeners;
101 var target;
102 var listener;
103 events[events.length] = evt;
104 target = evt.currentTarget;
105
106 for(var indexN10065 = 0;indexN10065 < listeners.length; indexN10065++) {
107 listener = listeners[indexN10065];
108 target.removeEventListener("foo", listener.handleEvent, false);
109
110 }
111 }
112
113 /**
114 * Inner class implementation for variable listener2
115 */
116 var listener2;
117
118 /**
119 * Constructor
120
121 * @param events Value from value attribute of nested var element
122 * @param listeners Value from value attribute of nested var element
123 */
124
125 function EventListenerN10074(events, listeners) {
126 this.events = events;
127 this.listeners = listeners;
128 }
129
130 /**
131 *
132 This method is called whenever an event occurs of the type for which theEventLis tenerinterface was registered.
133
134 * @param evt
135 TheEventcontains contextual information about the event. It also contains thesto pPropagationand preventDefaultmethods which are used in determining the event's flow and default action.
136
137 */
138 EventListenerN10074.prototype.handleEvent = function(evt) {
139 //
140 // bring class variables into function scope
141 //
142 var events = listener2.events;
143 var listeners = listener2.listeners;
144 var target;
145 var listener;
146 events[events.length] = evt;
147 target = evt.currentTarget;
148
149 for(var indexN10098 = 0;indexN10098 < listeners.length; indexN10098++) {
150 listener = listeners[indexN10098];
151 target.removeEventListener("foo", listener.handleEvent, false);
152
153 }
154 }
155
156 /**
157 *
158 Two listeners are registered on the same target, each of which will remove both itself and
159 the other on the first event. Only one should see the event since event listene rs
160 can never be invoked after being removed.
161
162 * @author Curt Arnold
163 * @see http://www.w3.org/TR/DOM-Level-2-Events/events#Events-EventTarget-dispatc hEvent
164 * @see http://www.w3.org/TR/DOM-Level-2-Events/events#xpointer(id('Events-EventT arget-dispatchEvent')/raises/exception[@name='EventException']/descr/p[substring -before(.,':')='UNSPECIFIED_EVENT_TYPE_ERR'])
165 */
166 function dispatchEvent13() {
167 var success;
168 if(checkInitialization(builder, "dispatchEvent13") != null) return;
169 var doc;
170 var target;
171 var evt;
172 var preventDefault;
173 var listeners = new Array();
174
175 var events = new Array();
176
177 listener1 = new EventListenerN1003B(events, listeners);
178
179 listener2 = new EventListenerN10074(events, listeners);
180
181 var docRef = null;
182 if (typeof(this.doc) != 'undefined') {
183 docRef = this.doc;
184 }
185 doc = load(docRef, "doc", "hc_staff");
186 listeners[listeners.length] = listener1;
187 listeners[listeners.length] = listener2;
188 doc.addEventListener("foo", listener1.handleEvent, false);
189 doc.addEventListener("foo", listener2.handleEvent, false);
190 evt = doc.createEvent("Events");
191 evt.initEvent("foo",true,false);
192 preventDefault = doc.dispatchEvent(evt);
193 assertSize("eventCount",1,events);
194
195 }
196
197 function runTest() {
198 dispatchEvent13();
199 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698