Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / dom / html / level2 / events / dispatchEvent12.js
blobc2ec46a48953eb7811184d0bf94bfb4907f4ff83
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] in 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.
9 [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
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/dispatchEvent12";
18    }
20 var docsLoaded = -1000000;
21 var builder = null;
24 //   This function is called by the testing framework before
25 //      running the test suite.
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.
32 function setUpPage() {
33    setUpPageStatus = 'running';
34    try {
35      //
36      //   creates test document builder, may throw exception
37      //
38      builder = createConfiguredBuilder();
40       docsLoaded = 0;
42       var docRef = null;
43       if (typeof(this.doc) != 'undefined') {
44         docRef = this.doc;
45       }
46       docsLoaded += preload(docRef, "doc", "hc_staff");
48        if (docsLoaded == 1) {
49           setUpPageStatus = 'complete';
50        }
51     } catch(ex) {
52         catchInitializationError(builder, ex);
53         setUpPageStatus = 'complete';
54     }
58 //   This method is called on the completion of
59 //      each asychronous load started in setUpTests.
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     }
70 //EventMonitor's require a document level variable named monitor
71 var monitor;
73      /**
74       *    Inner class implementation for variable other
75       */
76 var other;
78 /**
79         * Constructor
81         */
83 function EventListenerN10035() {
84            }
86         /**
87          *
88 This method is called whenever an event occurs of the type for which theEventListenerinterface was registered.
90          * @param evt
91 TheEventcontains contextual information about the event. It also contains thestopPropagationand preventDefaultmethods which are used in determining the event's flow and default action.
93          */
94 EventListenerN10035.prototype.handleEvent = function(evt) {
95          //
96          //   bring class variables into function scope
97          //
98         }
102 A monitor is added, multiple calls to removeEventListener
103 are mde with similar but not identical arguments, and an event is dispatched.
104 The monitor should recieve handleEvent calls.
106 * @author Curt Arnold
107 * @see http://www.w3.org/TR/DOM-Level-2-Events/events#Events-EventTarget-dispatchEvent
108 * @see http://www.w3.org/TR/DOM-Level-2-Events/events#xpointer(id('Events-EventTarget-dispatchEvent')/raises/exception[@name='EventException']/descr/p[substring-before(.,':')='UNSPECIFIED_EVENT_TYPE_ERR'])
110 function dispatchEvent12() {
111    var success;
112     if(checkInitialization(builder, "dispatchEvent12") != null) return;
113     var doc;
114       var target;
115       var evt;
116       var preventDefault;
117       monitor = new EventMonitor();
119       other = new EventListenerN10035();
121       var events = new Array();
123       var docRef = null;
124       if (typeof(this.doc) != 'undefined') {
125         docRef = this.doc;
126       }
127       doc = load(docRef, "doc", "hc_staff");
128       doc.addEventListener("foo", monitor.handleEvent, false);
129       doc.removeEventListener("foo", monitor.handleEvent, true);
130      doc.removeEventListener("food", monitor.handleEvent, false);
131      doc.removeEventListener("foo", other.handleEvent, false);
132      evt = doc.createEvent("Events");
133       evt.initEvent("foo",true,false);
134       preventDefault = doc.dispatchEvent(evt);
135       events = monitor.allEvents;
136 assertSize("eventCount",1,events);
140 function runTest() {
141    dispatchEvent12();