[ 
https://issues.apache.org/jira/browse/FLEX-33242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13491940#comment-13491940
 ] 

Frédéric THOMAS edited comment on FLEX-33242 at 11/10/12 4:12 PM:
------------------------------------------------------------------

As example: 

                <TestCase frequency="all" testID="Locale_country_is_read_only" 
description="Confirm that 'country' property of Locale is read-only" 
keywords="[resources,Locale,country]">
                        <setup>
                                <RunCode code="locale = new 
Locale('fr_FR_WIN')"/>
                        </setup>
                        <body>
                                <SetProperty target="script:locale" 
propertyName="country" value="DE"/>
                                <AssertError value="ReferenceError: Error 
#1074: Illegal write to read-only property country on mx.resources.Locale."/>
                                <Pause timeout="1"/>
                        </body>
                </TestCase>

In this case, the locale is set to french but the AssertError value is expected 
to be in english, one solution could be to set the expected error value to be 
in french but we don't want test the locale capabilities here, we test 
read-only country property.

The solution would be to be able to do such:

<TestCase frequency="all" testID="Locale_country_is_read_only" 
description="Confirm that 'country' property of Locale is read-only" 
keywords="[resources,Locale,country]">
                        <setup>
                                <RunCode code="locale = new 
Locale('fr_FR_WIN')"/>
                        </setup>
                        <body>
                                <SetProperty target="script:locale" 
propertyName="country" value="DE"/>
                                <AssertError value="{['ReferenceError: Error 
#1074:', 'country', 'mx.resources.Locale']}"/>
                                <Pause timeout="1"/>
                        </body>
                </TestCase>

Doing so it means AssertError will test that the returning error message should 
contain all of the elements of the array, stripping out the french part of the 
error message.

An other one :

<TestCase testID="hostComponent_none" keywords="[States]" description="Verify 
that there is no hostComponent property in a custom skin if the skin does not 
contain that metadata.">
    <setup>
        <ResetComponent target="sc2" className="assets.SkinnedMXMLComponent2" 
waitEvent="updateComplete" />
    </setup>
    <body>
        <AssertMethodValue 
method="try{application.sc2.skin.hostComponent}catch(e:Error){value = 
e.toString()}" value="ReferenceError: Error #1069: Property hostComponent not 
found on assets.HostlessSkin and there is no default value." />
    </body>
</TestCase>

In this case no locale has been set but my computer is in french, the raised 
error will output a error mesage in french whereas an english one is expected.

This kind of tests don't work either:

<TestCase frequency="all" 
testID="RTL_Compiler_LocaleParams_1_LocaleChain_NOT_AIR_Mac" description="Be 
sure that the locale chain was set correctly." 
keywords="[Localization,Compiler,locale]" >
            <body> 
                <AssertMethodValue 
method="value=ResourceManager.getInstance().localeChain.toString()" 
value="en_US,fr_FR,ja_JP" /> 
                <Pause timeout="1" />
            </body> 
        </TestCase>  

Probably because my OS is in french, the fr_FR is return first, en_US was 
expected.



What I'm proposing is that the value could take a string as parameter and acts 
as it acts now (it should return the exact value) or could take an array (which 
means, it should contain all of the elements of the array).
                
      was (Author: doublefx):
    As example: 

                <TestCase frequency="all" testID="Locale_country_is_read_only" 
description="Confirm that 'country' property of Locale is read-only" 
keywords="[resources,Locale,country]">
                        <setup>
                                <RunCode code="locale = new 
Locale('fr_FR_WIN')"/>
                        </setup>
                        <body>
                                <SetProperty target="script:locale" 
propertyName="country" value="DE"/>
                                <AssertError value="ReferenceError: Error 
#1074: Illegal write to read-only property country on mx.resources.Locale."/>
                                <Pause timeout="1"/>
                        </body>
                </TestCase>

In this case, the locale is set to french but the AssertError value is expected 
to be in english, one solution could be to set the expected error value to be 
in french but we don't want test the locale capabilities here, we test 
read-only country property.

The solution would be to be able to do such:

<TestCase frequency="all" testID="Locale_country_is_read_only" 
description="Confirm that 'country' property of Locale is read-only" 
keywords="[resources,Locale,country]">
                        <setup>
                                <RunCode code="locale = new 
Locale('fr_FR_WIN')"/>
                        </setup>
                        <body>
                                <SetProperty target="script:locale" 
propertyName="country" value="DE"/>
                                <AssertError value="{['ReferenceError: Error 
#1074:', 'country', 'mx.resources.Locale']}"/>
                                <Pause timeout="1"/>
                        </body>
                </TestCase>

Doing so it means AssertError will test that the returning error message should 
contain all of the elements of the array, stripping out the french part of the 
error message.

An other one :

<TestCase testID="hostComponent_none" keywords="[States]" description="Verify 
that there is no hostComponent property in a custom skin if the skin does not 
contain that metadata.">
    <setup>
        <ResetComponent target="sc2" className="assets.SkinnedMXMLComponent2" 
waitEvent="updateComplete" />
    </setup>
    <body>
        <AssertMethodValue 
method="try{application.sc2.skin.hostComponent}catch(e:Error){value = 
e.toString()}" value="ReferenceError: Error #1069: Property hostComponent not 
found on assets.HostlessSkin and there is no default value." />
    </body>
</TestCase>

In this case no locale has been set but my computer is in french, the raised 
error will output a error mesage in french whereas an english one is expected.



What I'm proposing is that the value could take a string as parameter and acts 
as it acts now (it should return the exact value) or could take an array (which 
means, it should contain all of the elements of the array).
                  
> Mustella tests failed: when your computer language doesn't match the expected 
> localized error
> ---------------------------------------------------------------------------------------------
>
>                 Key: FLEX-33242
>                 URL: https://issues.apache.org/jira/browse/FLEX-33242
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: Mustella
>    Affects Versions: Apache Flex 4.9.0
>            Reporter: Frédéric THOMAS
>            Priority: Critical
>              Labels: test
>         Attachments: FLEX-33242.patch
>
>
> Mustella tests fail when your computer language doesn't match the expected 
> localized error

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to