forked from KolibriOS/kolibrios
bb2bbc6b91
git-svn-id: svn://kolibrios.org@4364 a494cfbc-eb01-0410-851d-a64ba20cac60
85 lines
3.9 KiB
XML
85 lines
3.9 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
|
|
<!--
|
|
|
|
Copyright (c) 2001 World Wide Web Consortium,
|
|
(Massachusetts Institute of Technology, Institut National de
|
|
Recherche en Informatique et en Automatique, Keio University). All
|
|
Rights Reserved. This program is distributed under the W3C's Software
|
|
Intellectual Property License. This program is distributed in the
|
|
hope that it will be useful, but WITHOUT ANY WARRANTY; without even
|
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
PURPOSE.
|
|
|
|
See W3C License http://www.w3.org/Consortium/Legal/ for more details.
|
|
|
|
-->
|
|
<!DOCTYPE test SYSTEM "dom2.dtd">
|
|
<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-2" name="dispatchEvent13">
|
|
<metadata>
|
|
<title>dispatchEvent13</title>
|
|
<creator>Curt Arnold</creator>
|
|
<description>
|
|
Two listeners are registered on the same target, each of which will remove both itself and
|
|
the other on the first event. Only one should see the event since event listeners
|
|
can never be invoked after being removed.
|
|
</description>
|
|
<date qualifier="created">2002-05-30</date>
|
|
<subject resource="http://www.w3.org/TR/DOM-Level-2-Events/events#Events-EventTarget-dispatchEvent"/>
|
|
<subject resource="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'])"/>
|
|
</metadata>
|
|
<var name="doc" type="Document"/>
|
|
<var name="target" type="EventTarget"/>
|
|
<var name="evt" type="Event"/>
|
|
<var name="preventDefault" type="boolean"/>
|
|
<var name="listeners" type="List"/>
|
|
<var name="events" type="List"/>
|
|
<!-- definition of private class instance that implements EventListener -->
|
|
<var name="listener1" type="EventListener">
|
|
<!-- instance scope variables,
|
|
value attributes are passed via constructor -->
|
|
<var name="events" type="List" value="events"/>
|
|
<var name="listeners" type="List" value="listeners"/>
|
|
<!-- implementation of handleEvent method
|
|
any parameters (in this case 'evt') are
|
|
predefined -->
|
|
<handleEvent>
|
|
<!-- method scope variables -->
|
|
<var name="target" type="EventTarget"/>
|
|
<var name="listener" type="EventListener"/>
|
|
<!-- add event to the collection -->
|
|
<append collection="events" item="evt"/>
|
|
<!-- remove this and the other listener -->
|
|
<currentTarget var="target" obj="evt"/>
|
|
<for-each collection="listeners" member="listener">
|
|
<removeEventListener obj="target" type='"foo"' listener="listener" useCapture="false"/>
|
|
</for-each>
|
|
</handleEvent>
|
|
</var>
|
|
<!-- identical implementation of EventListener -->
|
|
<var name="listener2" type="EventListener">
|
|
<var name="events" type="List" value="events"/>
|
|
<var name="listeners" type="List" value="listeners"/>
|
|
<handleEvent>
|
|
<var name="target" type="EventTarget"/>
|
|
<var name="listener" type="EventListener"/>
|
|
<!-- add event to the collection -->
|
|
<append collection="events" item="evt"/>
|
|
<!-- remove this and the other listener -->
|
|
<currentTarget var="target" obj="evt"/>
|
|
<for-each collection="listeners" member="listener">
|
|
<removeEventListener obj="target" type='"foo"' listener="listener" useCapture="false"/>
|
|
</for-each>
|
|
</handleEvent>
|
|
</var>
|
|
<load var="doc" href="hc_staff" willBeModified="true"/>
|
|
<append collection="listeners" item="listener1"/>
|
|
<append collection="listeners" item="listener2"/>
|
|
<addEventListener obj="doc" type='"foo"' listener="listener1" useCapture="false"/>
|
|
<addEventListener obj="doc" type='"foo"' listener="listener2" useCapture="false"/>
|
|
<createEvent var="evt" obj="doc" eventType='"Events"'/>
|
|
<initEvent obj="evt" eventTypeArg='"foo"' canBubbleArg="true" cancelableArg="false"/>
|
|
<dispatchEvent var="preventDefault" obj="doc" evt="evt"/>
|
|
<assertSize id="eventCount" collection="events" size="1"/>
|
|
</test>
|