> OK, but given that we trans-compile AS to JS and your test language is ES-
> like, there is no way to wrap things so they work?

I don't think so. The problem is that tests on Flex apps compiled to SWF use
action names specific to each component (usually corresponding to
appropriate Flex event names) as defined by Flex Automation framework. For
example to open a ComboBox and select an item you do something like this in
RIATest:

FlexComboBox("myCB").open();
FlexComboBox("myCB ").select("Some item");

The open() and select() actions are handled by the automation delegate for
mx.controls.ComboBox component.

On the contrary the same application compiled to JS will not only know
nothing about FlexComboBox (which could be solved by my earlier suggestion),
it also does not use open() and select() actions, it uses either low-level
mouse events dispatched directly to HTML DOM elements, or HTML element
specific events. In this case the correct action will be change():

HtmlSelect("myCB").change("Some item");

Note that we do not even have an action corresponding to open(). We could do
click() but it does not have exact same effect.

In some other cases a sequence of Flex-specific actions can be replaced by
mouse events. For example Flex Automation Framework uses itemOpen() action
to expand an item of  mx.controls.Tree, however this must be likely
simulated using simple click() action on the relevant DOM element in the JS
version of the test.

So, generally there is no match between the actions that one needs to
simulate on the SWF output and the actions that must be simulated on the JS
output to have the exact same effect. The names of the actions, the
parameters and the sequence, everything can be different. This unfortunately
means it is not possible to have a single uniform test script that can act
on both output versions the same way.

Tigran.

Reply via email to