This is an automated email from the ASF dual-hosted git repository. gregdove pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 3b82478c52cde2979054ba6562cda5b66ab163a0 Author: greg-dove <[email protected]> AuthorDate: Wed Aug 7 09:29:36 2019 +1200 Aligning Language tests between manualtests project and RoyaleUnit --- .../language/LanguageTesterIntUint.as | 22 +++++++++++++++ .../flexUnitTests/language/LanguageTesterTestIs.as | 31 ++++++++++++++++++++++ .../language/LanguageTesterTestVector.as | 24 ++++++++++++++++- .../language/LanguageTesterIntUint.as | 12 +++------ .../language/LanguageTesterTestClass.as | 10 +++---- .../flexUnitTests/language/LanguageTesterTestIs.as | 12 +++------ .../language/LanguageTesterTestVector.as | 10 +++---- 7 files changed, 90 insertions(+), 31 deletions(-) diff --git a/frameworks/projects/Core/src/test/royale/flexUnitTests/language/LanguageTesterIntUint.as b/frameworks/projects/Core/src/test/royale/flexUnitTests/language/LanguageTesterIntUint.as index 4d5d1cc..da3c82d 100644 --- a/frameworks/projects/Core/src/test/royale/flexUnitTests/language/LanguageTesterIntUint.as +++ b/frameworks/projects/Core/src/test/royale/flexUnitTests/language/LanguageTesterIntUint.as @@ -159,6 +159,28 @@ package flexUnitTests.language assertTrue( untyped === 31.5,'Unexpected Number check'); } + + + [Test] + //[TestVariance(variance="JS", description="Variance in js implementation with @royalesuppressresolveuncertain, strict equality can fail")] + /** + * @royalesuppressresolveuncertain c + */ + public function testNoResolveUncertain():void + { + + var c:Class = int; + var untyped:* = new c(30); + var expected:Boolean = isJS ? false : true; + assertEquals( expected, untyped === 30,'Unexpected int check'); + // b does not have suppression, only c does above (via @royalesuppressresolveuncertain c) + expected = true; + var b:Class = String; + // c = String; + untyped = new b(30); + assertEquals(expected, untyped === '30', 'Unexpected String check'); + + } } } diff --git a/frameworks/projects/Core/src/test/royale/flexUnitTests/language/LanguageTesterTestIs.as b/frameworks/projects/Core/src/test/royale/flexUnitTests/language/LanguageTesterTestIs.as index f17203e..4e5b82d 100644 --- a/frameworks/projects/Core/src/test/royale/flexUnitTests/language/LanguageTesterTestIs.as +++ b/frameworks/projects/Core/src/test/royale/flexUnitTests/language/LanguageTesterTestIs.as @@ -220,6 +220,37 @@ package flexUnitTests.language assertTrue( caughtError,'Unexpected coercion check'); assertTrue( testClass3 == null,'Unexpected coercion check'); } + + + [Test] + //[TestVariance(variance="JS",description="Variance in js implementation with @royalesuppresscompleximplicitcoercion, outcome can be wrong")] + /** + * @royalesuppresscompleximplicitcoercion true + */ + public function testImplicitCoercionAvoided():void + { + var testclass2Class:Class = TestClass2; + var testClass3:TestClass3; + var something:* = new testclass2Class(); + var caughtError:Boolean; + try + { + caughtError = false; + testClass3 = something; + } catch (e:Error) + { + caughtError = e is TypeError + } + + if (isJS) { + assertFalse( caughtError, 'Unexpected coercion check'); + assertFalse(testClass3 == null, 'Unexpected coercion check'); + } else { + assertTrue(caughtError, 'Unexpected coercion check'); + assertTrue(testClass3 == null, 'Unexpected coercion check'); + } + + } [Test] public function testNullUndefined():void diff --git a/frameworks/projects/Core/src/test/royale/flexUnitTests/language/LanguageTesterTestVector.as b/frameworks/projects/Core/src/test/royale/flexUnitTests/language/LanguageTesterTestVector.as index 62d3990..933f173 100644 --- a/frameworks/projects/Core/src/test/royale/flexUnitTests/language/LanguageTesterTestVector.as +++ b/frameworks/projects/Core/src/test/royale/flexUnitTests/language/LanguageTesterTestVector.as @@ -819,6 +819,28 @@ package flexUnitTests.language const expected:Class = isJS ? Vector.<String> : Vector.<*>; assertTrue( vs['constructor'] === expected,'Unexpected Vector check'); } + + [Test] + public function testVectorRemoveAtType():void{ + if (hasInsertAtRemoveAt()) { + var customClasses:Array = [null, new TestClass2(), undefined, new TestClass1()]; + + var vcustom:Vector.<TestClass1> = Vector.<TestClass1>(customClasses); + + COMPILE::SWF{ + var tc1:TestClass1 = vcustom['removeAt'](1); + } + COMPILE::JS{ + var tc1:TestClass1 = vcustom.removeAt(1); + } + assertTrue(tc1 != null, 'Unexpected Vector check'); + assertTrue(tc1 is TestClass1, 'Unexpected Vector check'); + assertTrue(tc1 is TestClass2, 'Unexpected Vector check'); + } else { + assertTrue(true); + } + + } private var _viTest:Vector.<int>; @@ -1397,10 +1419,10 @@ package flexUnitTests.language } - } } + class PrivateClass { public function PrivateClass(){ diff --git a/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterIntUint.as b/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterIntUint.as index 61e1375..3ef7135 100644 --- a/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterIntUint.as +++ b/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterIntUint.as @@ -29,17 +29,13 @@ package flexUnitTests.language */ public class LanguageTesterIntUint { - - public static var isJS:Boolean; - + + public static var isJS:Boolean = COMPILE::JS; + + [BeforeClass] public static function setUpBeforeClass():void { - var js:Boolean; - COMPILE::JS { - js = true; - } - isJS = js; } [AfterClass] diff --git a/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterTestClass.as b/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterTestClass.as index 6d046a1..7714092 100644 --- a/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterTestClass.as +++ b/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterTestClass.as @@ -29,17 +29,13 @@ package flexUnitTests.language */ public class LanguageTesterTestClass { - - public static var isJS:Boolean; + + public static var isJS:Boolean = COMPILE::JS; [BeforeClass] public static function setUpBeforeClass():void { - var js:Boolean; - COMPILE::JS { - js = true; - } - isJS = js; + } [AfterClass] diff --git a/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterTestIs.as b/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterTestIs.as index ab0c287..dec5d85 100644 --- a/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterTestIs.as +++ b/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterTestIs.as @@ -29,17 +29,13 @@ package flexUnitTests.language */ public class LanguageTesterTestIs { - - public static var isJS:Boolean; + + public static var isJS:Boolean = COMPILE::JS; [BeforeClass] public static function setUpBeforeClass():void { - var js:Boolean; - COMPILE::JS { - js = true; - } - isJS = js; + } [AfterClass] @@ -253,7 +249,7 @@ package flexUnitTests.language Assert.assertTrue('Unexpected coercion check', caughtError); Assert.assertTrue('Unexpected coercion check', testClass3 == null); } - + } [Test] diff --git a/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterTestVector.as b/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterTestVector.as index 52c6d4c..aa53c61 100644 --- a/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterTestVector.as +++ b/manualtests/UnitTests/src/main/royale/flexUnitTests/language/LanguageTesterTestVector.as @@ -29,8 +29,8 @@ package flexUnitTests.language */ public class LanguageTesterTestVector { - - public static var isJS:Boolean; + + public static var isJS:Boolean = COMPILE::JS; public static function hasInsertAtRemoveAt():Boolean{ @@ -49,11 +49,6 @@ package flexUnitTests.language [BeforeClass] public static function setUpBeforeClass():void { - var js:Boolean; - COMPILE::JS { - js = true; - } - isJS = js; } [AfterClass] @@ -1411,6 +1406,7 @@ package flexUnitTests.language Assert.assertTrue('Unexpected Vector check', v[0] is PrivateClass); } + } }
