| <?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/DataGrid/DataGrid_HaloSkin/Methods/" xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" testSWF="DataGridApp_halo.mxml" > |
| |
| <!-- this set of lines form a template that must be in each unit test --> |
| <mx:Script> |
| <![CDATA[ |
| public static function init(o:DisplayObject):void |
| { |
| } |
| ]]> |
| </mx:Script> |
| <mx:Metadata> |
| <![CDATA[ |
| [Mixin] |
| ]]> |
| </mx:Metadata> |
| <!-- end of set of lines that must be in each unit test --> |
| |
| <!-- |
| This file contains tests for the following non-inherited DataGrid methods: |
| |
| createItemEditor(colIndex:int, rowIndex:int):void |
| 0,0 |
| 1,1 |
| Call the method when a cell is already being edited, for the same cell. |
| Call the method when a cell is already being edited, for a different cell - change column |
| Call the method when a cell is already being edited, for a different cell - change row |
| A cell which contains a non-standard renderer. |
| -1, 1 - No need...garbage in, garbage out |
| 1, -1 - No need...garbage in, garbage out |
| A cell which is horizontally out of sight - No need...garbage in, garbage out |
| A cell which is vertically out of sight - No need...garbage in, garbage out |
| A cell which is horizontally and vertically out of sight. - No need...garbage in, garbage out |
| |
| To verify these, use a bitmap compare. The itemEditorInstance property implements IListItemRenderer, which |
| doesn't give us x/y coordinates or any other easy way to tell that the editor is the correct one in the |
| correct place. |
| |
| destroyItemEditor():void |
| Call when an editor is present. |
| Call when nothing is being edited. |
| Call it from itemEditEnd, like it would be used in the real world. |
| |
| isItemEditable(data:Object):Boolean |
| Override it and return false, be sure the editing session does not continue. |
| Override it and return true, be sure the editing session continues. |
| |
| Note that the use of column config 3, turning off scrollbars, and hiding headers, |
| are done in hopes of making the baselines simpler and more robust. |
| --> |
| |
| <mx:Script> |
| <![CDATA[ |
| import mx.controls.*; |
| import mx.events.DataGridEvent; |
| ]]> |
| </mx:Script> |
| |
| <testCases> |
| |
| <!-- |
| ================================================================================ |
| isItemEditable |
| The isItemEditable() method is overridden to return true or false, and as |
| a result the cell clicked in will or will not be editable. |
| ================================================================================ |
| --> |
| |
| <TestCase testID="isItemEditable_false_halo" keywords="[DataGrid,properties,isItemEditable]"> |
| <setup> |
| <ResetComponent target="dg2" className="comps.SubclassedDataGrid" waitEvent="updateComplete" /> |
| <SetProperty target="dg2" propertyName="isItemEditableRetVal" value="false" /> |
| <RunCode code="application.setColumnConfig3(application.dg2)" /> |
| <SetProperty target="dg2" propertyName="width" value="200" /> |
| <SetProperty target="dg2" propertyName="height" value="50" /> |
| <SetProperty target="dg2" propertyName="horizontalScrollPolicy" value="off" /> |
| <SetProperty target="dg2" propertyName="verticalScrollPolicy" value="off" /> |
| <SetProperty target="dg2" propertyName="showHeaders" value="false" /> |
| <SetProperty target="dg2" propertyName="editable" value="true" /> |
| <RunCode code="application.setDataProvider(application.dg2)" waitTarget="dg2" waitEvent="updateComplete" /> |
| </setup> |
| <body> |
| <DispatchMouseClickEvent target="dg2.mx_internal:rendererArray.1.0" localX="2" localY="2" /> |
| <WaitForEffectsToEnd /> |
| <AssertNoEvent target="dg2" eventName="itemFocusIn" eventClass="mx.events::FlexEvent" /> |
| <AssertPropertyValue target="dg2" propertyName="itemEditorInstance" value="null" /> |
| </body> |
| </TestCase> |
| |
| <TestCase testID="isItemEditable_true_halo" keywords="[DataGrid,properties,isItemEditable]"> |
| <setup> |
| <ResetComponent target="dg2" className="comps.SubclassedDataGrid" waitEvent="updateComplete" /> |
| <SetProperty target="dg2" propertyName="isItemEditableRetVal" value="true" /> |
| <RunCode code="application.setColumnConfig3(application.dg2)" /> |
| <SetProperty target="dg2" propertyName="width" value="200" /> |
| <SetProperty target="dg2" propertyName="height" value="50" /> |
| <SetProperty target="dg2" propertyName="horizontalScrollPolicy" value="off" /> |
| <SetProperty target="dg2" propertyName="verticalScrollPolicy" value="off" /> |
| <SetProperty target="dg2" propertyName="showHeaders" value="false" /> |
| <SetProperty target="dg2" propertyName="editable" value="true" /> |
| <RunCode code="application.setDataProvider(application.dg2)" waitTarget="dg2" waitEvent="updateComplete" /> |
| </setup> |
| <body> |
| <DispatchMouseClickEvent target="dg2.mx_internal:rendererArray.1.0" localX="2" localY="2" /> |
| <WaitForEffectsToEnd /> |
| <AssertMethodValue method="value=(application.dg2.itemEditorInstance!=null)" value="true" /> |
| </body> |
| </TestCase> |
| |
| <!-- |
| ================================================================================ |
| createItemEditor |
| ================================================================================ |
| --> |
| |
| <TestCase testID="createItemEditor_0_0_halo" keywords="[DataGrid,properties,createItemEditor]"> |
| <setup> |
| <ResetComponent target="dg1" className="mx.controls.DataGrid" waitEvent="updateComplete" /> |
| <RunCode code="application.setUpItemEditBegin(application.dg1, false, true, 0, 0)" /> |
| <RunCode code="application.setColumnConfig3(application.dg1)" /> |
| <SetProperty target="dg1" propertyName="width" value="200" /> |
| <SetProperty target="dg1" propertyName="height" value="50" /> |
| <SetProperty target="dg1" propertyName="horizontalScrollPolicy" value="off" /> |
| <SetProperty target="dg1" propertyName="verticalScrollPolicy" value="off" /> |
| <SetProperty target="dg1" propertyName="showHeaders" value="false" /> |
| <SetProperty target="dg1" propertyName="editable" value="true" /> |
| <RunCode code="application.setDataProvider(application.dg1)" waitTarget="dg1" waitEvent="updateComplete" /> |
| </setup> |
| <body> |
| <DispatchMouseClickEvent target="dg1.mx_internal:rendererArray.1.0" localX="2" localY="2" waitTarget="dg1" waitEvent="updateComplete" /> |
| <WaitForEffectsToEnd /> |
| <CompareBitmap target="dg1" url="../Methods/Baselines/createItemEditor_0_0.png" numColorVariances="2" ignoreMaxColorVariance="true"/> |
| </body> |
| </TestCase> |
| |
| <TestCase testID="createItemEditor_1_1_halo" keywords="[DataGrid,properties,createItemEditor]"> |
| <setup> |
| <ResetComponent target="dg1" className="mx.controls.DataGrid" waitEvent="updateComplete" /> |
| <RunCode code="application.setUpItemEditBegin(application.dg1, false, true, 1, 1)" /> |
| <RunCode code="application.setColumnConfig3(application.dg1)" /> |
| <SetProperty target="dg1" propertyName="width" value="200" /> |
| <SetProperty target="dg1" propertyName="height" value="50" /> |
| <SetProperty target="dg1" propertyName="horizontalScrollPolicy" value="off" /> |
| <SetProperty target="dg1" propertyName="verticalScrollPolicy" value="off" /> |
| <SetProperty target="dg1" propertyName="showHeaders" value="false" /> |
| <SetProperty target="dg1" propertyName="editable" value="true" /> |
| <RunCode code="application.setDataProvider(application.dg1)" waitTarget="dg1" waitEvent="updateComplete" /> |
| </setup> |
| <body> |
| <DispatchMouseClickEvent target="dg1.mx_internal:rendererArray.1.0" localX="2" localY="2" waitTarget="dg1" waitEvent="updateComplete" /> |
| <WaitForEffectsToEnd /> |
| <CompareBitmap target="dg1" url="../Methods/Baselines/createItemEditor_1_1.png" numColorVariances="2" ignoreMaxColorVariance="true"/> |
| </body> |
| </TestCase> |
| |
| <TestCase testID="createItemEditor_sameCell_halo" keywords="[DataGrid,properties,createItemEditor]"> |
| <setup> |
| <ResetComponent target="dg1" className="mx.controls.DataGrid" waitEvent="updateComplete" /> |
| <RunCode code="application.setUpItemEditBegin(application.dg1, false, true, 0, 0)" /> |
| <RunCode code="application.setColumnConfig3(application.dg1)" /> |
| <SetProperty target="dg1" propertyName="width" value="200" /> |
| <SetProperty target="dg1" propertyName="height" value="50" /> |
| <SetProperty target="dg1" propertyName="horizontalScrollPolicy" value="off" /> |
| <SetProperty target="dg1" propertyName="verticalScrollPolicy" value="off" /> |
| <SetProperty target="dg1" propertyName="showHeaders" value="false" /> |
| <SetProperty target="dg1" propertyName="editable" value="true" /> |
| <RunCode code="application.setDataProvider(application.dg1)" waitTarget="dg1" waitEvent="updateComplete" /> |
| </setup> |
| <body> |
| <DispatchMouseClickEvent target="dg1.mx_internal:rendererArray.1.0" localX="2" localY="2" waitTarget="dg1" waitEvent="updateComplete" /> |
| <DispatchMouseClickEvent target="dg1.mx_internal:rendererArray.2.0" localX="2" localY="2" waitTarget="dg1" waitEvent="updateComplete" /> |
| <WaitForEffectsToEnd /> |
| <CompareBitmap target="dg1" url="../Methods/Baselines/createItemEditor_sameCell.png" numColorVariances="2" ignoreMaxColorVariance="true"/> |
| </body> |
| </TestCase> |
| |
| <TestCase testID="createItemEditor_changeColumn_halo" keywords="[DataGrid,properties,createItemEditor]"> |
| <setup> |
| <ResetComponent target="dg1" className="mx.controls.DataGrid" waitEvent="updateComplete" /> |
| <RunCode code="application.setUpItemEditBegin(application.dg1, false, true, 0, 0)" /> |
| <RunCode code="application.setColumnConfig3(application.dg1)" /> |
| <SetProperty target="dg1" propertyName="width" value="200" /> |
| <SetProperty target="dg1" propertyName="height" value="50" /> |
| <SetProperty target="dg1" propertyName="horizontalScrollPolicy" value="off" /> |
| <SetProperty target="dg1" propertyName="verticalScrollPolicy" value="off" /> |
| <SetProperty target="dg1" propertyName="showHeaders" value="false" /> |
| <SetProperty target="dg1" propertyName="editable" value="true" /> |
| <RunCode code="application.setDataProvider(application.dg1)" waitTarget="dg1" waitEvent="updateComplete" /> |
| </setup> |
| <body> |
| <DispatchMouseClickEvent target="dg1.mx_internal:rendererArray.1.0" localX="2" localY="2" waitTarget="dg1" waitEvent="updateComplete" /> |
| <RunCode code="application.setUpItemEditBegin(application.dg1, false, true, 1, 0)" /> |
| <DispatchMouseClickEvent target="dg1.mx_internal:rendererArray.2.0" localX="2" localY="2" waitTarget="dg1" waitEvent="updateComplete" /> |
| <WaitForEffectsToEnd /> |
| <CompareBitmap target="dg1" url="../Methods/Baselines/createItemEditor_changeColumn.png" numColorVariances="2" ignoreMaxColorVariance="true"/> |
| </body> |
| </TestCase> |
| |
| <TestCase testID="createItemEditor_changeRow_halo" keywords="[DataGrid,properties,createItemEditor]"> |
| <setup> |
| <ResetComponent target="dg1" className="mx.controls.DataGrid" waitEvent="updateComplete" /> |
| <RunCode code="application.setUpItemEditBegin(application.dg1, false, true, 0, 0)" /> |
| <RunCode code="application.setColumnConfig3(application.dg1)" /> |
| <SetProperty target="dg1" propertyName="width" value="200" /> |
| <SetProperty target="dg1" propertyName="height" value="50" /> |
| <SetProperty target="dg1" propertyName="horizontalScrollPolicy" value="off" /> |
| <SetProperty target="dg1" propertyName="verticalScrollPolicy" value="off" /> |
| <SetProperty target="dg1" propertyName="showHeaders" value="false" /> |
| <SetProperty target="dg1" propertyName="editable" value="true" /> |
| <RunCode code="application.setDataProvider(application.dg1)" waitTarget="dg1" waitEvent="updateComplete" /> |
| </setup> |
| <body> |
| <DispatchMouseClickEvent target="dg1.mx_internal:rendererArray.1.0" localX="2" localY="2" waitTarget="dg1" waitEvent="updateComplete" /> |
| <RunCode code="application.setUpItemEditBegin(application.dg1, false, true, 0, 1)" /> |
| <DispatchMouseClickEvent target="dg1.mx_internal:rendererArray.2.0" localX="2" localY="2" waitTarget="dg1" waitEvent="updateComplete" /> |
| <WaitForEffectsToEnd /> |
| <CompareBitmap target="dg1" url="../Methods/Baselines/createItemEditor_changeRow.png" numColorVariances="2" ignoreMaxColorVariance="true"/> |
| </body> |
| </TestCase> |
| |
| <TestCase testID="createItemEditor_customEditor_halo" keywords="[DataGrid,properties,createItemEditor]"> |
| <setup> |
| <ResetComponent target="dg1" className="mx.controls.DataGrid" waitEvent="updateComplete" /> |
| <RunCode code="application.setUpItemEditBegin(application.dg1, true)" /> |
| <RunCode code="application.setColumnConfig3(application.dg1)" /> |
| <SetProperty target="dg1" propertyName="width" value="200" /> |
| <SetProperty target="dg1" propertyName="height" value="50" /> |
| <SetProperty target="dg1" propertyName="horizontalScrollPolicy" value="off" /> |
| <SetProperty target="dg1" propertyName="verticalScrollPolicy" value="off" /> |
| <SetProperty target="dg1" propertyName="showHeaders" value="false" /> |
| <SetProperty target="dg1" propertyName="editable" value="true" /> |
| <RunCode code="application.setDataProvider(application.dg1)" waitTarget="dg1" waitEvent="updateComplete" /> |
| </setup> |
| <body> |
| <DispatchMouseClickEvent target="dg1.mx_internal:rendererArray.1.0" localX="2" localY="2" waitTarget="dg1" waitEvent="updateComplete" /> |
| <WaitForEffectsToEnd /> |
| <CompareBitmap target="dg1" url="../Methods/Baselines/createItemEditor_customEditor.png" numColorVariances="2" ignoreMaxColorVariance="true"/> |
| </body> |
| </TestCase> |
| <!-- |
| ================================================================================ |
| destroyItemEditor |
| destroyItemEditor_noEditorPresent: I'm not sure what exactly to look for here, |
| but at least I'm calling it with no editor present in hopes that something truly |
| terrible might be caught. |
| ================================================================================ |
| --> |
| |
| <TestCase testID="destroyItemEditor_callDirectly_halo" keywords="[DataGrid,properties,destroyItemEditor]"> |
| <setup> |
| <ResetComponent target="dg1" className="mx.controls.DataGrid" waitEvent="updateComplete" /> |
| <RunCode code="application.setColumnConfig3(application.dg1)" /> |
| <SetProperty target="dg1" propertyName="width" value="200" /> |
| <SetProperty target="dg1" propertyName="height" value="50" /> |
| <SetProperty target="dg1" propertyName="horizontalScrollPolicy" value="off" /> |
| <SetProperty target="dg1" propertyName="verticalScrollPolicy" value="off" /> |
| <SetProperty target="dg1" propertyName="showHeaders" value="false" /> |
| <SetProperty target="dg1" propertyName="editable" value="true" /> |
| <RunCode code="application.setDataProvider(application.dg1)" waitTarget="dg1" waitEvent="updateComplete" /> |
| </setup> |
| <body> |
| <DispatchMouseClickEvent target="dg1.mx_internal:rendererArray.1.0" localX="2" localY="2" waitTarget="dg1" waitEvent="updateComplete" /> |
| <RunCode code="application.dg1.destroyItemEditor()" waitTarget="dg1" waitEvent="itemFocusOut" /> |
| <AssertPropertyValue target="dg1" propertyName="itemEditorInstance" value="null" /> |
| </body> |
| </TestCase> |
| |
| <TestCase testID="destroyItemEditor_noEditorPresent_halo" keywords="[DataGrid,properties,destroyItemEditor]"> |
| <setup> |
| <ResetComponent target="dg1" className="mx.controls.DataGrid" waitEvent="updateComplete" /> |
| <RunCode code="application.setColumnConfig3(application.dg1)" /> |
| <SetProperty target="dg1" propertyName="width" value="200" /> |
| <SetProperty target="dg1" propertyName="height" value="50" /> |
| <SetProperty target="dg1" propertyName="horizontalScrollPolicy" value="off" /> |
| <SetProperty target="dg1" propertyName="verticalScrollPolicy" value="off" /> |
| <SetProperty target="dg1" propertyName="showHeaders" value="false" /> |
| <SetProperty target="dg1" propertyName="editable" value="true" /> |
| <RunCode code="application.setDataProvider(application.dg1)" waitTarget="dg1" waitEvent="updateComplete" /> |
| </setup> |
| <body> |
| <RunCode code="application.dg1.destroyItemEditor()" /> |
| <AssertNoEvent target="dg1" eventName="itemFocusOut" eventClass="mx.events::FlexEvent" /> |
| </body> |
| </TestCase> |
| |
| <TestCase testID="destroyItemEditor_itemEditEnd_halo" keywords="[DataGrid,properties,destroyItemEditor]"> |
| <setup> |
| <ResetComponent target="dg1" className="mx.controls.DataGrid" waitEvent="updateComplete" /> |
| <RunCode code="application.setUpItemEditEnd(application.dg1)" /> |
| <RunCode code="application.setColumnConfig3(application.dg1)" /> |
| <SetProperty target="dg1" propertyName="width" value="200" /> |
| <SetProperty target="dg1" propertyName="height" value="50" /> |
| <SetProperty target="dg1" propertyName="horizontalScrollPolicy" value="off" /> |
| <SetProperty target="dg1" propertyName="verticalScrollPolicy" value="off" /> |
| <SetProperty target="dg1" propertyName="showHeaders" value="false" /> |
| <SetProperty target="dg1" propertyName="editable" value="true" /> |
| <RunCode code="application.setDataProvider(application.dg1)" waitTarget="dg1" waitEvent="updateComplete" /> |
| </setup> |
| <body> |
| <DispatchMouseClickEvent target="dg1.mx_internal:rendererArray.1.0" localX="2" localY="2" waitTarget="dg1" waitEvent="updateComplete" /> |
| <DispatchKeyEvent key="TAB" waitTarget="dg1" waitEvent="itemFocusOut" /> |
| <AssertPropertyValue target="dg1" propertyName="itemEditorInstance" value="null" /> |
| </body> |
| </TestCase> |
| |
| </testCases> |
| </UnitTester> |