Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
  3. <!--
  4.  
  5. Copyright (c) 2001 World Wide Web Consortium,
  6. (Massachusetts Institute of Technology, Institut National de
  7. Recherche en Informatique et en Automatique, Keio University).  All
  8. Rights Reserved.  This program is distributed under the W3C's Software
  9. Intellectual Property License.  This program is distributed in the
  10. hope that it will be useful, but WITHOUT ANY WARRANTY; without even
  11. the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  12. PURPOSE.  
  13.  
  14. See W3C License http://www.w3.org/Consortium/Legal/ for more details.
  15.  
  16. -->
  17. <!DOCTYPE test SYSTEM "dom2.dtd">
  18. <test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-2" name="dispatchEvent13">
  19. <metadata>
  20. <title>dispatchEvent13</title>
  21. <creator>Curt Arnold</creator>
  22. <description>
  23. Two listeners are registered on the same target, each of which will remove both itself and
  24. the other on the first event.  Only one should see the event since event listeners
  25. can never be invoked after being removed.
  26. </description>
  27. <date qualifier="created">2002-05-30</date>
  28. <subject resource="http://www.w3.org/TR/DOM-Level-2-Events/events#Events-EventTarget-dispatchEvent"/>
  29. <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'])"/>
  30. </metadata>
  31. <var name="doc" type="Document"/>
  32. <var name="target" type="EventTarget"/>
  33. <var name="evt" type="Event"/>
  34. <var name="preventDefault" type="boolean"/>
  35. <var name="listeners" type="List"/>
  36. <var name="events" type="List"/>
  37. <!--  definition of private class instance that implements EventListener   -->
  38. <var name="listener1" type="EventListener">
  39.    <!--   instance scope variables,
  40.           value attributes are passed via constructor   -->
  41.    <var name="events" type="List" value="events"/>
  42.    <var name="listeners" type="List" value="listeners"/>
  43.    <!--    implementation of handleEvent method
  44.                any parameters (in this case 'evt') are
  45.                predefined   -->
  46.    <handleEvent>
  47.        <!--  method scope variables   -->
  48.        <var name="target" type="EventTarget"/>
  49.        <var name="listener" type="EventListener"/>
  50.        <!--  add event to the collection   -->
  51.        <append collection="events" item="evt"/>
  52.        <!--  remove this and the other listener    -->
  53.        <currentTarget var="target" obj="evt"/>
  54.        <for-each collection="listeners" member="listener">
  55.            <removeEventListener obj="target" type='"foo"' listener="listener" useCapture="false"/>
  56.        </for-each>
  57.    </handleEvent>
  58. </var>
  59. <!--   identical implementation of EventListener    -->
  60. <var name="listener2" type="EventListener">
  61.    <var name="events" type="List" value="events"/>
  62.    <var name="listeners" type="List" value="listeners"/>
  63.    <handleEvent>
  64.        <var name="target" type="EventTarget"/>
  65.        <var name="listener" type="EventListener"/>
  66.        <!--  add event to the collection   -->
  67.        <append collection="events" item="evt"/>
  68.        <!--  remove this and the other listener    -->
  69.        <currentTarget var="target" obj="evt"/>
  70.        <for-each collection="listeners" member="listener">
  71.            <removeEventListener obj="target" type='"foo"' listener="listener" useCapture="false"/>
  72.        </for-each>
  73.    </handleEvent>
  74. </var>
  75. <load var="doc" href="hc_staff" willBeModified="true"/>
  76. <append collection="listeners" item="listener1"/>
  77. <append collection="listeners" item="listener2"/>
  78. <addEventListener obj="doc" type='"foo"' listener="listener1" useCapture="false"/>
  79. <addEventListener obj="doc" type='"foo"' listener="listener2" useCapture="false"/>
  80. <createEvent var="evt" obj="doc" eventType='"Events"'/>
  81. <initEvent obj="evt" eventTypeArg='"foo"' canBubbleArg="true" cancelableArg="false"/>
  82. <dispatchEvent var="preventDefault" obj="doc" evt="evt"/>
  83. <assertSize id="eventCount" collection="events" size="1"/>
  84. </test>
  85.