blob: a223281538a57f097bd31bc0230eddc2ffec511b [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<UnitTester testDir="components/Menu/Spark/Events/" xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" testSWF="Menu_Basic_spark.mxml">
<!-- this set of lines form a template that must be in each unit test -->
<mx:Script>
<![CDATA[
import mx.controls.Menu;
public static function init(o:DisplayObject):void
{
}
public function showMenu(): void
{
application.menu1.show();
}
public function createAMenu(): void
{
application.menu1 = Menu.createMenu(null, application.myDP, false);
application.menu1.labelField = "@label";
}
]]>
</mx:Script>
<mx:Metadata>
<![CDATA[
[Mixin]
]]>
</mx:Metadata>
<testCases>
<!-- change -->
<TestCase testID="change_onKeyBoard" description="Menu - ensure change event is triggered on keyboard events" keywords="[events, change, Menu]">
<setup>
<DispatchMouseClickEvent target="" localX="300" localY="50" />
<RunCode code="createAMenu()" />
<RunCode code="showMenu()" waitTarget="menu1" waitEvent="menuShow" />
</setup>
<body>
<DispatchKeyEvent keys="[DOWN, RIGHT, SPACE]" waitEvent="change" waitTarget="menu1" />
<AssertEvent target="menu1" eventName="change" eventClass="mx.events::MenuEvent" />
<AssertEventPropertyValue propertyName="label" value="Japan" target="menu1" />
<AssertEventPropertyValue propertyName="index" value="1" target="menu1" />
</body>
</TestCase>
<!-- itemClick -->
<TestCase testID="itemClick_onKeyBoard" description="Menu - ensure itemClick event is triggered on keyboard events" keywords="[events, itemClick, Menu]">
<setup>
<RunCode code="application.menu1.hide()" />
<RunCode code="createAMenu()" />
<RunCode code="showMenu()" waitTarget="menu1" waitEvent="menuShow" />
</setup>
<body>
<DispatchKeyEvent keys="[DOWN, RIGHT, SPACE]" waitEvent="change" waitTarget="menu1" />
<AssertEvent target="menu1" eventName="itemClick" eventClass="mx.events::MenuEvent" />
<AssertEventPropertyValue propertyName="label" value="Japan" target="menu1" />
<AssertEventPropertyValue propertyName="index" value="1" target="menu1" />
</body>
</TestCase>
<!-- menuShow -->
<TestCase testID="menuShow_test" description="Menu - ensure menuShow event triggered" keywords="[events, menuShow, Menu]">
<setup>
<RunCode code="application.menu1.hide()" />
<RunCode code="createAMenu()" />
<RunCode code="showMenu()" waitTarget="menu1" waitEvent="menuShow" />
</setup>
<body>
<RunCode code="application.menu1.hide();application.menu1.show(10,10)" />
<AssertEvent target="menu1" eventName="menuShow" eventClass="mx.events::MenuEvent" />
</body>
<cleanup>
<DispatchMouseEvent type="mouseDown" localX="100" localY="100" target="" />
</cleanup>
</TestCase>
<!-- menuHide -->
<TestCase testID="menuHide_onSelection" description="Menu - ensure menuHide event is triggered when a selection is made" keywords="[events, menuHide, Menu]">
<setup>
<RunCode code="application.menu1.hide()" />
<RunCode code="createAMenu()" />
<RunCode code="showMenu()" waitTarget="menu1" waitEvent="menuShow" />
</setup>
<body>
<DispatchKeyEvent keys="[DOWN, RIGHT, DOWN, SPACE]" waitEvent="change" waitTarget="menu1" />
<AssertEvent target="menu1" eventName="menuHide" eventClass="mx.events::MenuEvent" />
</body>
</TestCase>
<TestCase testID="menuHide_onClickOutside" description="Menu - ensure menuHide event is triggered when a you mouseDown elsewhere" keywords="[events, menuHide, Menu]">
<setup>
<RunCode code="application.menu1.hide()" />
<RunCode code="createAMenu()" />
<RunCode code="showMenu()" waitTarget="menu1" waitEvent="menuShow" />
</setup>
<body>
<DispatchMouseEvent type="mouseDown" localX="100" localY="100" target="" />
<AssertEvent target="menu1" eventName="menuHide" eventClass="mx.events::MenuEvent" />
</body>
</TestCase>
<TestCase testID="itemRollOver_onKeyBoard" description="Menu - ensure itemRollOver event is triggered on keyboard events" keywords="[events, itemRollOver, Menu]">
<setup>
<RunCode code="application.menu1.hide()" />
<RunCode code="createAMenu()" />
<RunCode code="showMenu()" waitTarget="menu1" waitEvent="menuShow" />
</setup>
<body>
<DispatchKeyEvent keys="[DOWN, RIGHT, DOWN]" />
<AssertEvent target="menu1" eventName="itemRollOver" eventClass="mx.events::MenuEvent" numExpectedEvents="3" />
<AssertEventPropertyValue propertyName="label" value="China" target="menu1" />
<AssertEventPropertyValue propertyName="index" value="2" target="menu1" />
</body>
<cleanup>
<DispatchMouseEvent type="mouseDown" localX="100" localY="100" target="" />
</cleanup>
</TestCase>
<TestCase testID="itemRollOut_onKeyBoard" description="Menu - ensure itemRollOut event is triggered on keyboard events" keywords="[events, itemRollOut, Menu]">
<setup>
<RunCode code="application.menu1.hide()" />
<RunCode code="createAMenu()" />
<RunCode code="showMenu()" waitTarget="menu1" waitEvent="menuShow" />
</setup>
<body>
<DispatchKeyEvent keys="[DOWN, RIGHT, DOWN, UP]" waitEvent="itemRollOut" waitTarget="menu1" />
<AssertEvent target="menu1" eventName="itemRollOut" eventClass="mx.events::MenuEvent" numExpectedEvents="2"/>
<AssertEventPropertyValue propertyName="label" value="China" target="menu1" />
<AssertEventPropertyValue propertyName="index" value="2" target="menu1" />
</body>
<cleanup>
<DispatchMouseEvent type="mouseDown" localX="100" localY="100" target="" />
</cleanup>
</TestCase>
<TestCase testID="Menu_keyUp" description="Menu - ensure keyUp event is triggered on keyboard events" keywords="[events, itemRollOut, Menu]">
<setup>
<RunCode code="application.menu1.hide()" />
<RunCode code="createAMenu()" />
<RunCode code="showMenu()" waitTarget="menu1" waitEvent="menuShow" />
</setup>
<body>
<DispatchKeyEvent keys="[DOWN]" waitEvent="itemRollOver" waitTarget="menu1" />
<AssertEvent target="menu1" eventName="keyUp" eventClass="flash.events::KeyboardEvent" />
</body>
<cleanup>
<DispatchMouseEvent type="mouseDown" localX="100" localY="100" target="" />
</cleanup>
</TestCase>
<TestCase testID="Menu_keyDown" description="Menu - ensure keyDown event is triggered on keyboard events" keywords="[events, itemRollOut, Menu]">
<setup>
<RunCode code="application.menu1.hide()" />
<RunCode code="createAMenu()" />
<RunCode code="showMenu()" waitTarget="menu1" waitEvent="menuShow" />
</setup>
<body>
<DispatchKeyEvent keys="[DOWN]" />
<AssertEvent target="menu1" eventName="keyDown" eventClass="flash.events::KeyboardEvent" />
</body>
<cleanup>
<DispatchMouseEvent type="mouseDown" localX="100" localY="100" target="" />
</cleanup>
</TestCase>
<TestCase testID="Menu_mouseUp" description="Menu - ensure mouseUp event is triggered" keywords="[events, itemRollOut, Menu]">
<setup>
<RunCode code="application.menu1.hide()" />
<RunCode code="createAMenu()" />
<RunCode code="showMenu()" waitTarget="menu1" waitEvent="menuShow" />
<WaitForEffectsToEnd/>
</setup>
<body>
<DispatchMouseClickEvent target="menu1.mx_internal:rendererArray.0.0" />
<AssertEvent target="menu1" eventName="mouseUp" eventClass="flash.events::MouseEvent" />
</body>
<cleanup>
<DispatchMouseEvent type="mouseDown" localX="100" localY="100" target="" />
</cleanup>
</TestCase>
<TestCase testID="Menu_mouseMove" description="Menu - ensure mouseMove event is triggered" keywords="[events, itemRollOut, Menu]">
<setup>
<RunCode code="application.menu1.hide()" />
<RunCode code="createAMenu()" />
<RunCode code="showMenu()" waitTarget="menu1" waitEvent="menuShow" />
<WaitForEffectsToEnd/>
</setup>
<body>
<DispatchMouseClickEvent target="menu1.mx_internal:rendererArray.0.0" localX="10" localY="10"/>
<DispatchMouseEvent type="mouseMove" localX="50" localY="10" target="menu1.mx_internal:rendererArray.0.0" />
<AssertEvent target="menu1" eventName="mouseMove" eventClass="flash.events::MouseEvent" />
</body>
<cleanup>
<DispatchMouseEvent type="mouseDown" localX="100" localY="100" target="" />
</cleanup>
</TestCase>
</testCases>
</UnitTester>