//# ==++== //# //# //# Copyright (c) 2002 Microsoft Corporation. All rights reserved. //# //# The use and distribution terms for this software are contained in the file //# named license.txt, which can be found in the root of this distribution. //# By using this software in any fashion, you are agreeing to be bound by the //# terms of this license. //# //# You must not remove this notice, or any other, from this software. //# //# //# ==--== //#################################################################################### @cc_on import System; var NULL_DISPATCH = null; var apGlobalObj; var apPlatform; var lFailCount; var iTestID = 193764; // ----------------------------------------------------------------------- var actual = 0; var expected = 0; var exceptionThrown = false; var expectedError = ""; var actualError = ""; var globalCtr = 0; // ----------------------------------------------------------------------- var exceptionThrown19_1 = false; var actualError19_1 = ""; var expectedError19_1 = "ReferenceError: 'Alpha19_1' is not accessible from this scope"; try { eval (" class Alpha19_1 " + " { " + " protected function Alpha19_1() " + " { } " + " } " + " var alpha19_1: Alpha19_1 = new Alpha19_1(); ", "unsafe"); } catch (error) { exceptionThrown19_1 = true; actualError19_1 = error; } // ----------------------------------------------------------------------- class Alpha19_2 { public var value: String = "none"; protected function Alpha19_2() { value = "one"; } } class Beta19_2 extends Alpha19_2 { } // ----------------------------------------------------------------------- var exceptionThrown19_3 = false; var actualError19_3 = ""; var expectedError19_3 = "ReferenceError: 'Beta19_3' is not accessible from this scope"; try { eval (" class Alpha19_3 " + " { " + " } " + " class Beta19_3 extends Alpha19_3 " + " { " + " protected function Beta19_3() " + " { " + " } " + " } " + " var beta19_3: Beta19_3 = new Beta19_3(); ", "unsafe"); } catch (error) { exceptionThrown19_3 = true; actualError19_3 = error; } // ----------------------------------------------------------------------- var exceptionThrown19_4 = false; var actualError19_4 = ""; var expectedError19_4 = "ReferenceError: 'Charlie19_4' is not accessible from this scope"; try { eval (" class Alpha19_4 " + " { } " + " class Beta19_4 extends Alpha19_4 " + " { } " + " class Charlie19_4 extends Beta19_4 " + " { " + " protected function Charlie19_4() " + " { } " + " } " + " var charlie19_4: Charlie19_4 = new Charlie19_4(); ", "unsafe"); } catch (error) { exceptionThrown19_4 = true; actualError19_4 = error; } // ----------------------------------------------------------------------- var exceptionThrown19_5 = false; var actualError19_5 = ""; var expectedError19_5 = "ReferenceError: 'Beta19_5' is not accessible from this scope"; try { eval (" class Alpha19_5 " + " { " + " protected function Alpha19_5() " + " { } " + " } " + " class Beta19_5 extends Alpha19_5 " + " { " + " protected function Beta19_5() " + " { } " + " } " + " var beta19_5: Beta19_5 = new Beta19_5(); ", "unsafe"); } catch (error) { exceptionThrown19_5 = true; actualError19_5 = error; } // ----------------------------------------------------------------------- class Alpha19_6 { protected function Alpha19_6 (x: boolean, y: String) { } } // ----------------------------------------------------------------------- class Alpha19_7 { public var value: String = "none"; protected function Alpha19_7 (x: int, y: boolean) { value = "five"; } } class Beta19_7 extends Alpha19_7 { } // ----------------------------------------------------------------------- class Alpha19_8 { } class Beta19_8 extends Alpha19_8 { protected function Beta19_8 (x: boolean, y: double) { } } // ----------------------------------------------------------------------- class Alpha19_9 { } class Beta19_9 extends Alpha19_9 { } class Charlie19_9 extends Beta19_9 { protected function Charlie19_9 (x: double, y: boolean, z: String) { } } // ----------------------------------------------------------------------- class Alpha19_10 { protected function Alpha19_10 (x: String, y: boolean, z: int) { } } class Beta19_10 extends Alpha19_10 { protected function Beta19_10 (x: int, y: String, z: Boolean) { } } // ----------------------------------------------------------------------- class Alpha19_11_1 { public var value: String = "none"; protected function Alpha19_11_1() { value = "one"; } protected function Alpha19_11_1 (x: int, y: boolean) { value = "two"; } } class Beta19_11_1 extends Alpha19_11_1 { public function Beta19_11_1 (x: int, y: boolean) { super (x, y); } } // ----------------------------------------------------------------------- class Alpha19_11_2 { public var value: String = "none"; protected function Alpha19_11_2() { value = "one"; } protected function Alpha19_11_2 (x: int, y: boolean) { value = "two"; } } class Beta19_11_2 extends Alpha19_11_2 { public function Beta19_11_2 (x: int, y: boolean) { } } // ----------------------------------------------------------------------- class Alpha20_1 { public var value: String = "none"; internal function Alpha20_1() { value = "one"; } } // ----------------------------------------------------------------------- class Alpha20_2 { public var value: String = ""; internal function Alpha20_2() { value = "six"; } } class Beta20_2 extends Alpha20_2 { } // ----------------------------------------------------------------------- class Alpha20_3 { public var value: String = "none"; } class Beta20_3 extends Alpha20_3 { internal function Beta20_3() { value = "nine"; } } // ----------------------------------------------------------------------- class Alpha20_4 { public var value: String = "none"; } class Beta20_4 extends Alpha20_4 { } class Charlie20_4 extends Beta20_4 { internal function Charlie20_4() { value = "two"; } } // ----------------------------------------------------------------------- class Alpha20_5 { public var value: String = "none"; internal function Alpha20_5() { value = "five"; } } class Beta20_5 extends Alpha20_5 { internal function Beta20_5() { } } // ----------------------------------------------------------------------- class Alpha20_6 { public var value: String = ""; internal function Alpha20_6 (x: boolean, y: String) { value = "seven"; } } // ----------------------------------------------------------------------- class Alpha20_7 { public var value: String = "none"; internal function Alpha20_7 (x: int, y: boolean) { value = "ten"; } } class Beta20_7 extends Alpha20_7 { } // ----------------------------------------------------------------------- class Alpha20_8 { public var value: String = "none"; } class Beta20_8 extends Alpha20_8 { internal function Beta20_8 (x: boolean, y: double) { value = "six"; } } // ----------------------------------------------------------------------- class Alpha20_9 { public var value: String = "none"; } class Beta20_9 extends Alpha20_9 { } class Charlie20_9 extends Beta20_9 { internal function Charlie20_9 (x: double, y: boolean, z: String) { value = "eight"; } } // ----------------------------------------------------------------------- class Alpha20_10 { public var value: String = "none"; internal function Alpha20_10 (x: String, y: boolean, z: int) { value = "three"; } } class Beta20_10 extends Alpha20_10 { internal function Beta20_10 (x: int, y: String, z: Boolean) { } } // ----------------------------------------------------------------------- class Alpha20_11_1 { public var value: String = "none"; internal function Alpha20_11_1() { value = "one"; } internal function Alpha20_11_1 (x: int, y: boolean) { value = "two"; } } class Beta20_11_1 extends Alpha20_11_1 { public function Beta20_11_1 (x: int, y: boolean) { super (x, y); } } // ----------------------------------------------------------------------- class Alpha20_11_2 { public var value: String = "none"; internal function Alpha20_11_2() { value = "one"; } internal function Alpha20_11_2 (x: int, y: boolean) { value = "two"; } } class Beta20_11_2 extends Alpha20_11_2 { public function Beta20_11_2 (x: int, y: boolean) { } } // ----------------------------------------------------------------------- class Alpha21_1 { public var value: String = "none"; private function Alpha21_1() { value = "one"; } public function Alpha21_1 (x: String) { value = "two"; } } // ----------------------------------------------------------------------- class Alpha21_2 { private function Alpha21_2() { } static public var value: String = "three"; } // ----------------------------------------------------------------------- class Alpha21_3 { private function Alpha21_3() { } static public function Bar(): String { return "seven"; } } // ----------------------------------------------------------------------- class Alpha21_4 { public var value: String = "none"; private function Alpha21_4() { value = "one"; } public function Alpha21_4 (x: String) { value = "two"; } } // ----------------------------------------------------------------------- class Alpha21_5 { public var value: String = "none"; private function Alpha21_5() { value = "one"; } public function Alpha21_5 (x: String) { value = "two"; } public function Bar() { return value; } } // ----------------------------------------------------------------------- class Alpha22_1 { public var value: String = "none"; protected function Alpha22_1() { value = "one"; } public function Alpha22_1 (x: String) { value = "two"; } } // ----------------------------------------------------------------------- class Alpha22_2 { protected function Alpha22_2() { } static public var value: String = "three"; } // ----------------------------------------------------------------------- class Alpha22_3 { protected function Alpha22_3() { } static public function Bar(): String { return "seven"; } } // ----------------------------------------------------------------------- class Alpha22_4 { public var value: String = "none"; protected function Alpha22_4() { value = "one"; } public function Alpha22_4 (x: String) { value = "two"; } } // ----------------------------------------------------------------------- class Alpha22_5 { public var value: String = "none"; protected function Alpha22_5() { value = "one"; } public function Alpha22_5 (x: String) { value = "two"; } public function Bar(): String { value = "three"; return value; } } // ----------------------------------------------------------------------- class Alpha23_1 { public var value: String = "none"; internal function Alpha23_1() { value = "one"; } public function Alpha23_1 (x: String) { value = "two"; } } // ----------------------------------------------------------------------- class Alpha23_2 { internal function Alpha23_2() { } static public var value: String = "ten"; } // ----------------------------------------------------------------------- class Alpha23_3 { internal function Alpha23_3() { } static public function Bar(): String { return "twelve"; } } // ----------------------------------------------------------------------- class Alpha23_4 { public var value: String = "none"; internal function Alpha23_4() { value = "five"; } public function Alpha23_4 (x: String) { value = "six"; } } // ----------------------------------------------------------------------- class Alpha23_5 { public var value: String = "none"; internal function Alpha23_5() { value = "ten"; } public function Alpha23_5 (x: String) { value = "eleven"; } public function Bar(): String { value = "twelve"; return value; } } // ----------------------------------------------------------------------- var exceptionThrown24_1 = false; var actualError24_1 = ""; var expectedError24_1 = "Error: Not valid for a constructor"; try { eval (" class Alpha24_1 " + " { " + " static public function Alpha24_1() " + " { } " + " } ", "unsafe"); } catch (error) { exceptionThrown24_1 = true; actualError24_1 = error } // ----------------------------------------------------------------------- var exceptionThrown24_2 = false; var actualError24_2 = ""; var expectedError24_2 = "Error: Not valid for a constructor"; try { eval (" class Alpha24_2 " + " { " + " static public function Alpha24_2 (x: String) " + " { } " + " } ", "unsafe"); } catch (error) { exceptionThrown24_2 = true; actualError24_2 = error } // ----------------------------------------------------------------------- var exceptionThrown25_1 = false; var actualError25_1 = ""; var expectedError25_1 = "Error: Not valid for a constructor"; try { eval (" abstract class Alpha25_1 " + " { " + " abstract public function Alpha25_1(); " + " } ", "unsafe"); } catch (error) { exceptionThrown25_1 = true; actualError25_1 = error } // ----------------------------------------------------------------------- var exceptionThrown25_2 = false; var actualError25_2 = ""; var expectedError25_2 = "Error: Not valid for a constructor"; try { eval (" abstract class Alpha25_2 " + " { " + " abstract public function Alpha25_2 (x: String); " + " } ", "unsafe"); } catch (error) { exceptionThrown25_2 = true; actualError25_2 = error } // ----------------------------------------------------------------------- class Alpha26_1 { public var value: String = "none"; public function Alpha26_1() { value = "one"; } } class Beta26_1 extends Alpha26_1 { public function Alpha26_1() { value = "two"; } } // ----------------------------------------------------------------------- class Alpha26_2 { public var value: String = "none"; public function Alpha26_2() { value = "three"; } } class Beta26_2 extends Alpha26_2 { public function Alpha26_2() { value = "four"; } } class Charlie26_2 extends Beta26_2 { public function Alpha26_2() { value = "five"; } } // ----------------------------------------------------------------------- class Alpha26_3 { public var value: String = "none"; public function Alpha26_3 (x: double) { value = "ten"; } } class Beta26_3 extends Alpha26_3 { public function Alpha26_3 (x: double) { value = "eleven"; } } // ----------------------------------------------------------------------- class Alpha26_4 { public var value: String = "none"; public function Alpha26_4 (x: double) { value = "five"; } } class Beta26_4 extends Alpha26_4 { public function Alpha26_4 (x: double) { value = "six"; } } class Charlie26_4 extends Beta26_4 { public function Alpha26_4 (x: double) { value = "seven"; } } // ----------------------------------------------------------------------- class Alpha27_1 { public var value: String = "zero"; public function Alpha27_1 (x: int, y: double) { value = "three"; } } class Beta27_1 extends Alpha27_1 { public function Alpha27_1 (x: boolean, y: String) { value = "four"; } } // ----------------------------------------------------------------------- class Alpha27_2 { public var value: String = "zero"; public function Alpha27_2 (x: int, y: double) { value = "five"; } } class Beta27_2 extends Alpha27_2 { public function Alpha27_2 (x: boolean, y: String) { value = "six"; } } class Charlie27_2 extends Beta27_2 { public function Alpha27_2 (x: String, y: int) { value = "seven"; } } // ----------------------------------------------------------------------- class Alpha28_1 { public var value: String = "none"; public function Alpha28_1() { value = "one"; } public function Alpha28_1 (x: int, y: boolean) { value = "two"; } } // ----------------------------------------------------------------------- class Alpha28_2 { public var value: String = "none"; public function Alpha28_2() { value = "one"; } public function Alpha28_2 (x: int, y: boolean) { value = "two"; } } class Beta28_2 extends Alpha28_2 { } // ----------------------------------------------------------------------- var exceptionThrown29 = false; var actualError29 = ""; var expectedError29 = "ReferenceError: More than one constructor matches this argument list"; try { eval (" class Alpha29 " + " { " + " public function Alpha29 (x: int) " + " { " + " } " + " public function Alpha29 (x: boolean)" + " { " + " } " + " } " + " class Beta29 extends Alpha29 " + " { " + " public function Beta29 () " + " { " + " } " + " } ", "unsafe"); } catch (error) { exceptionThrown29 = true; actualError29 = error; } // ----------------------------------------------------------------------- class Alpha30_1 { public var value: String = "none"; public function Alpha30_1 () { this (false); } public function Alpha30_1 (x: boolean) { value = "three"; } } // ----------------------------------------------------------------------- class Alpha30_2 { public var value: String = "none"; public function Alpha30_2 (x: String) { value = "eleven"; } public function Alpha30_2 (x: int) { this ("hello"); } } // ----------------------------------------------------------------------- class Alpha30_3 { public var value: String = "none"; public function Alpha30_3 (x: String) { this (23, false); } public function Alpha30_3 (x: int, y: boolean) { value = "twelve"; } } // ----------------------------------------------------------------------- function constructors10() { apInitTest ("Constructors10"); // ----------------------------------------------------------------------- apInitScenario ("19.1 Protected constructor -- Simple class with protected default constructor"); if (exceptionThrown19_1 == false) apLogFailInfo ("No compile error in 19.1", "Should give a compile error", exceptionThrown19_1, ""); if (actualError19_1 != expectedError19_1) apLogFailInfo ("Wrong compile error in 19.1", expectedError19_1, actualError19_1, ""); // ----------------------------------------------------------------------- apInitScenario ("19.2 Protected constructor -- Superclass with protected default constructor"); var beta19_2: Beta19_2 = new Beta19_2(); expected = "one"; actual = ""; actual = beta19_2.value; if (actual != expected) apLogFailInfo ("Error", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("19.3 Protected constructor -- Subclass with protected default constructor"); if (exceptionThrown19_3 == false) apLogFailInfo ("No compile error in 19.3", "Should give a compile error", exceptionThrown19_3, ""); if (actualError19_3 != expectedError19_3) apLogFailInfo ("Wrong compile error in 19.3", expectedError19_3, actualError19_3, ""); // ----------------------------------------------------------------------- apInitScenario ("19.4 Protected constructor -- Sub-subclass with protected default constructor"); if (exceptionThrown19_4 == false) apLogFailInfo ("No compile error in 19.4", "Should give a compile error", exceptionThrown19_4, ""); if (actualError19_4 != expectedError19_4) apLogFailInfo ("Wrong compile error in 19.4", expectedError19_4, actualError19_4, ""); // ----------------------------------------------------------------------- apInitScenario ("19.5 Protected constructor -- Superclass and subclass with protected default constructors"); if (exceptionThrown19_5 == false) apLogFailInfo ("No compile error in 19.5", "Should give a compile error", exceptionThrown19_5, ""); if (actualError19_5 != expectedError19_5) apLogFailInfo ("Wrong compile error in 19.5", expectedError19_5, actualError19_5, ""); // ----------------------------------------------------------------------- apInitScenario ("19.6 Protected constructor -- Simple class with protected constructor w/ parameters"); exceptionThrown = false; actualError = ""; expectedError = "TypeError: No such constructor"; try { eval ("var alpha19_6: Alpha19_6 = new Alpha19_6 (true, \"hello\");"); } catch (error) { exceptionThrown = true; actualError = error; } if (exceptionThrown == false) apLogFailInfo ("No compile error", "Should give a compile error", exceptionThrown, ""); if (actualError != expectedError) apLogFailInfo ("Wrong compile error", expectedError, actualError, ""); // ----------------------------------------------------------------------- apInitScenario ("19.7 Protected constructor -- Superclass with protected constructor w/ parameters"); var beta19_7: Beta19_7 = new Beta19_7(); expected = "five"; actual = ""; actual = beta19_7.value; if (actual != expected) apLogFailInfo ("Error in 19.7", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("19.8 Protected constructor -- Subclass with protected constructor w/ parameters"); exceptionThrown = false; actualError = ""; expectedError = "TypeError: No such constructor"; try { eval ("var beta19_8: Beta19_8 = new Beta19_8();"); } catch (error) { exceptionThrown = true; actualError = error; } if (exceptionThrown == false) apLogFailInfo ("No compile error", "Should give a compile error", exceptionThrown, ""); if (actualError != expectedError) apLogFailInfo ("Wrong compile error", expectedError, actualError, ""); // ----------------------------------------------------------------------- apInitScenario ("19.9 Protected constructor -- Sub-subclass with protected constructor w/ parameters"); exceptionThrown = false; actualError = ""; expectedError = "TypeError: No such constructor"; try { eval ("var charlie19_9: Charlie19_9 = new Charlie19_9 (20, false, \"Microsoft\");"); } catch (error) { exceptionThrown = true; actualError = error; } if (exceptionThrown == false) apLogFailInfo ("No compile error", "Should give a compile error", exceptionThrown, ""); if (actualError != expectedError) apLogFailInfo ("Wrong compile error", expectedError, actualError, ""); // ----------------------------------------------------------------------- apInitScenario ("19.10 Protected constructor -- Superclass and subclass with protected constructor w/ parameters"); exceptionThrown = false; actualError = ""; expectedError = "TypeError: No such constructor"; try { eval ("var beta19_10: Beta19_10 = new Beta19_10 (5, \"five\", true);"); } catch (error) { exceptionThrown = true; actualError = error; } if (exceptionThrown == false) apLogFailInfo ("No compile error", "Should give a compile error", exceptionThrown, ""); if (actualError != expectedError) apLogFailInfo ("Wrong compile error", expectedError, actualError, ""); // ----------------------------------------------------------------------- apInitScenario ("19.11.1 Protected constructor -- \n " + " Superclass with protected default constructor and protected constructor w/ parameters \n" + " Subclass constructor calls superclass' constructor w/ parameters using super (…)"); var beta19_11_1: Beta19_11_1 = new Beta19_11_1 (20, false); expected = "two"; actual = ""; actual = beta19_11_1.value; if (actual != expected) apLogFailInfo ("Error in 19.11.1", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("19.11.2 Protected constructor -- \n " + " Superclass with protected default constructor and protected constructor w/ parameters \n" + " Subclass constructor does not call any superclass constructor"); var beta19_11_2: Beta19_11_2 = new Beta19_11_2 (10, true); expected = "one"; actual = ""; actual = beta19_11_2.value; if (actual != expected) apLogFailInfo ("Error in 19.11.2", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("20.1 Internal constructor -- Simple class with internal default constructor"); var alpha20_1: Alpha20_1 = new Alpha20_1(); expected = "one"; actual = ""; actual = alpha20_1.value; if (actual != expected) apLogFailInfo ("Error in 20.1", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("20.2 Internal constructor -- Superclass with internal default constructor"); var beta20_2: Beta20_2 = new Beta20_2(); expected = "six"; actual = ""; actual = beta20_2.value; if (actual != expected) apLogFailInfo ("Error in 20.2", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("20.3 Internal constructor -- Subclass with internal default constructor"); var beta20_3: Beta20_3 = new Beta20_3(); expected = "nine"; actual = ""; actual = beta20_3.value; if (actual != expected) apLogFailInfo ("Error in 20.3", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("20.4 Internal constructor -- Sub-subclass with internal default constructor"); var charlie20_4: Charlie20_4 = new Charlie20_4(); expected = "two"; actual = ""; actual = charlie20_4.value; if (actual != expected) apLogFailInfo ("Error in 20.4", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("20.5 Internal constructor -- Superclass and subclass with internal default constructors"); var beta20_5: Beta20_5 = new Beta20_5(); expected = "five"; actual = ""; actual = beta20_5.value; if (actual != expected) apLogFailInfo ("Error in 20.5", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("20.6 Internal constructor -- Simple class with internal constructor w/ parameters"); var alpha20_6: Alpha20_6 = new Alpha20_6 (false, "something"); expected = "seven"; actual = ""; actual = alpha20_6.value; if (actual != expected) apLogFailInfo ("Error in 20.6", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("20.7 Internal constructor -- Superclass with internal constructor w/ parameters"); var beta20_7: Beta20_7 = new Beta20_7(); expected = "ten"; actual = ""; actual = beta20_7.value; if (actual != expected) apLogFailInfo ("Error in 20.7", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("20.8 Internal constructor -- Subclass with internal constructor w/ parameters"); var beta20_8: Beta20_8 = new Beta20_8 (false, 23); expected = "six"; actual = ""; actual = beta20_8.value; if (actual != expected) apLogFailInfo ("Error in 20.8", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("20.9 Internal constructor -- Sub-subclass with internal constructor w/ parameters"); var charlie20_9: Charlie20_9 = new Charlie20_9 (20, false, "something"); expected = "eight"; actual = ""; actual = charlie20_9.value; if (actual != expected) apLogFailInfo ("Error in 20.9", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("20.10 Internal constructor -- Superclass and subclass with internal constructor w/ parameters"); var beta20_10: Beta20_10 = new Beta20_10 (5, "five", false); expected = "three"; actual = ""; actual = beta20_10.value; if (actual != expected) apLogFailInfo ("Error in 20.10", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("20.11.1 Internal constructor -- \n " + " Superclass with internal default constructor and internal constructor w/ parameters \n" + " Subclass constructor calls superclass' constructor w/ parameters using super (…)"); var beta20_11_1: Beta20_11_1 = new Beta20_11_1 (25, true); expected = "two"; actual = ""; actual = beta20_11_1.value; if (actual != expected) apLogFailInfo ("Error in 20.11.1", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("20.11.2 Internal constructor -- \n " + " Superclass with internal default constructor and internal constructor w/ parameters \n" + " Subclass constructor does not call any superclass constructor"); var beta20_11_2: Beta20_11_2 = new Beta20_11_2 (21, true); expected = "one"; actual = ""; actual = beta20_11_2.value; if (actual != expected) apLogFailInfo ("Error in 20.11.2", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("21.1 Private default constructor and public non-default constructor"); var alpha21_1: Alpha21_1 = new Alpha21_1 ("something"); expected = "two"; actual = ""; actual = alpha21_1.value; if (actual != expected) apLogFailInfo ("Error in 21.1", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("21.2 Private default constructor and static field"); expected = "three"; actual = ""; actual = Alpha21_2.value; if (actual != expected) apLogFailInfo ("Error", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("21.3 Private default constructor and static method"); expected = "seven"; actual = ""; actual = Alpha21_3.Bar(); if (actual != expected) apLogFailInfo ("Error", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("21.4 Private default constructor and non-static field"); var alpha21_4: Alpha21_4 = new Alpha21_4 ("something"); expected = "two"; actual = ""; actual = alpha21_4.value; if (actual != expected) apLogFailInfo ("Error in 21.4", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("21.5 Private default constructor and non-static method"); var alpha21_5: Alpha21_5 = new Alpha21_5 ("something"); expected = "two"; actual = ""; actual = alpha21_5.Bar(); if (actual != expected) apLogFailInfo ("Error in 21.5", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("22.1 Protected default constructor and public non-default constructor"); var alpha22_1: Alpha22_1 = new Alpha22_1 ("something"); expected = "two"; actual = ""; actual = alpha22_1.value; if (actual != expected) apLogFailInfo ("Error in 22.1", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("22.2 Protected default constructor and static field"); expected = "three"; actual = ""; actual = Alpha22_2.value; if (actual != expected) apLogFailInfo ("Error in 22.2", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("22.3 Protected default constructor and static method"); expected = "seven"; actual = ""; actual = Alpha22_3.Bar(); if (actual != expected) apLogFailInfo ("Error in 22.3", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("22.4 Protected default constructor and non-static field"); var alpha22_4: Alpha22_4 = new Alpha22_4 ("something"); expected = "two"; actual = ""; actual = alpha22_4.value; if (actual != expected) apLogFailInfo ("Error in 22.4", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("22.5 Protected default constructor and non-static method"); var alpha22_5: Alpha22_5 = new Alpha22_5 ("something"); expected = "three"; actual = ""; actual = alpha22_5.Bar(); if (actual != expected) apLogFailInfo ("Error in 22.5", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("23.1 Internal default constructor and public non-default constructor"); var alpha23_1: Alpha23_1 = new Alpha23_1 ("something"); expected = "two"; actual = ""; actual = alpha23_1.value; if (actual != expected) apLogFailInfo ("Error in 23.1", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("23.2 Internal default constructor and static field"); expected = "ten"; actual = ""; actual = Alpha23_2.value; if (actual != expected) apLogFailInfo ("Error in 23.2", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("23.3 Internal default constructor and static method"); expected = "twelve"; actual = ""; actual = Alpha23_3.Bar(); if (actual != expected) apLogFailInfo ("Error in 23.3", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("23.4 Internal default constructor and non-static field"); var alpha23_4: Alpha23_4 = new Alpha23_4 ("something"); expected = "six"; actual = ""; actual = alpha23_4.value; if (actual != expected) apLogFailInfo ("Error in 23.4", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("23.5 Internal default constructor and non-static method"); var alpha23_5: Alpha23_5 = new Alpha23_5 ("something"); expected = "twelve"; actual = ""; actual = alpha23_5.Bar(); if (actual != expected) apLogFailInfo ("Error in 23.5", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("24.1 Static default constructor"); // compile error if (exceptionThrown24_1 == false) apLogFailInfo ("No compile error in 24.1", "Should give a compile error", exceptionThrown24_1, ""); if (actualError24_1 != expectedError24_1) apLogFailInfo ("Wrong compile error in 24.1", expectedError24_1, actualError24_1, ""); // ----------------------------------------------------------------------- apInitScenario ("24.2 Static non-default constructor"); // compile error if (exceptionThrown24_2 == false) apLogFailInfo ("No compile error in 24.2", "Should give a compile error", exceptionThrown24_2, ""); if (actualError24_2 != expectedError24_2) apLogFailInfo ("Wrong compile error in 24.2", expectedError24_2, actualError24_2, ""); // ----------------------------------------------------------------------- apInitScenario ("25.1 Abstract default constructor"); // compile error if (exceptionThrown25_1 == false) apLogFailInfo ("No compile error in 25.1", "Should give a compile error", exceptionThrown25_1, ""); if (actualError25_1 != expectedError25_1) apLogFailInfo ("Wrong compile error in 25.1", expectedError25_1, actualError25_1, ""); // ----------------------------------------------------------------------- apInitScenario ("25.2 Abstract non-default constructor"); // compile error if (exceptionThrown25_2 == false) apLogFailInfo ("No compile error in 25.2", "Should give a compile error", exceptionThrown25_2, ""); if (actualError25_2 != expectedError25_2) apLogFailInfo ("Wrong compile error in 25.2", expectedError25_2, actualError25_2, ""); // ----------------------------------------------------------------------- apInitScenario ("26.1 Overriding the constructor of a base class -- default constructor; 2 levels of inheritance"); var beta26_1: Beta26_1 = new Beta26_1(); expected = "one"; actual = ""; actual = beta26_1.value; if (actual != expected) apLogFailInfo ("Error in 26.1 (1)", expected, actual, ""); expected = "two"; actual = ""; beta26_1.Alpha26_1(); actual = beta26_1.value; if (actual != expected) apLogFailInfo ("Error in 26.1 (2)", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("26.2 Overriding the constructor of a base class -- default constructor; 3 levels of inheritance"); var charlie26_2: Charlie26_2 = new Charlie26_2(); expected = "three"; actual = ""; actual = charlie26_2.value; if (actual != expected) apLogFailInfo ("Error in 26.2 (1)", expected, actual, ""); expected = "five"; actual = ""; charlie26_2.Alpha26_2(); actual = charlie26_2.value; if (actual != expected) apLogFailInfo ("Error in 26.2 (2)", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("26.3 Overriding the constructor of a base class -- non-default constructor; 2 levels of inheritance"); var beta26_3: Beta26_3 = new Beta26_3(); expected = "ten"; actual = ""; actual = beta26_3.value; if (actual != expected) apLogFailInfo ("Error in 26.3 (1)", expected, actual, ""); expected = "eleven"; actual = ""; beta26_3.Alpha26_3 (25); actual = beta26_3.value; if (actual != expected) apLogFailInfo ("Error in 26.3 (2)", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("26.4 Overriding the constructor of a base class -- non-default constructor; 3 levels of inheritance"); var charlie26_4: Charlie26_4 = new Charlie26_4(); expected = "five"; actual = ""; actual = charlie26_4.value; if (actual != expected) apLogFailInfo ("Error in 26.4 (1)", expected, actual, ""); expected = "seven"; actual = ""; charlie26_4.Alpha26_4 (25); actual = charlie26_4.value; if (actual != expected) apLogFailInfo ("Error in 26.4 (2)", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("27.1 Overloading the constructor of a base class -- non-default constructor; 2 levels of inheritance"); var beta27_1: Beta27_1 = new Beta27_1(); expected = "three"; actual = ""; actual = beta27_1.value; if (actual != expected) apLogFailInfo ("Error in 27.1 (1)", expected, actual, ""); expected = "four"; actual = ""; beta27_1.Alpha27_1 (true, "hello"); actual = beta27_1.value; if (actual != expected) apLogFailInfo ("Error in 27.1 (2)", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("27.2 Overloading the constructor of a base class -- non-default constructor; 3 levels of inheritance"); var charlie27_2: Charlie27_2 = new Charlie27_2(); expected = "five"; actual = ""; actual = charlie27_2.value; if (actual != expected) apLogFailInfo ("Error in 27.2 (1)", expected, actual, ""); expected = "seven"; actual = ""; charlie27_2.Alpha27_2 ("hello", 25); actual = charlie27_2.value; if (actual != expected) apLogFailInfo ("Error in 27.2 (2)", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("28.1 Can the constructor be explicitly called? -- from the base class instance"); var alpha28_1: Alpha28_1 = new Alpha28_1(); exceptionThrown = false; expectedError = "ReferenceError: Objects of type 'Alpha28_1' do not have such a member"; actualError = ""; try { eval ("alpha28_1.Alpha();"); } catch (error) { exceptionThrown = true; actualError = error; } if (exceptionThrown == false) apLogFailInfo ("No compile error in 28.1 (1)", "Should give a compile error", exceptionThrown, ""); if (actualError != expectedError) apLogFailInfo ("Wrong compile error in 28.1 (1)", expectedError, actualError, ""); exceptionThrown = false; expectedError = "ReferenceError: Objects of type 'Alpha28_1' do not have such a member"; actualError = ""; try { eval ("alpha28_1.Alpha (23, false);"); } catch (error) { exceptionThrown = true; actualError = error; } if (exceptionThrown == false) apLogFailInfo ("No compile error in 28.1 (2)", "Should give a compile error", exceptionThrown, ""); if (actualError != expectedError) apLogFailInfo ("Wrong compile error in 28.1 (2)", expectedError, actualError, ""); // ----------------------------------------------------------------------- apInitScenario ("28.2 Can the constructor be explicitly called? -- from the subclass instance"); var beta28_2: Beta28_2 = new Beta28_2(); exceptionThrown = false; actualError = ""; expectedError = "ReferenceError: Objects of type 'Beta28_2' do not have such a member"; try { eval ("beta28_2.Alpha28_2();"); } catch (error) { exceptionThrown = true; actualError = error; } if (exceptionThrown == false) apLogFailInfo ("No compile error in 28.2 (1)", "Should give a compile error", exceptionThrown, ""); if (actualError != expectedError) apLogFailInfo ("Wrong compile error in 28.2 (1)", expectedError, actualError, ""); exceptionThrown = false; actualError = ""; expectedError = "ReferenceError: Objects of type 'Beta28_2' do not have such a member"; try { eval ("beta28_2.Alpha28_2 (21, false);"); } catch (error) { exceptionThrown = true; actualError = error; } if (exceptionThrown == false) apLogFailInfo ("No compile error in 28.2 (2)", "Should give a compile error", exceptionThrown, ""); if (actualError != expectedError) apLogFailInfo ("Wrong compile error in 28.2 (2)", expectedError, actualError, ""); // ----------------------------------------------------------------------- apInitScenario ("29. Base class doesn't have a default constructor and" + " has 2 non-default constructors that conflict. Subclass doesn't make an explicit call"); if (exceptionThrown29 == false) apLogFailInfo ("No compile error in 29", "Should give a compile error", exceptionThrown29, ""); if (actualError29 != expectedError29) apLogFailInfo ("Wrong compile error in 29", expectedError29, actualError29, ""); // ----------------------------------------------------------------------- apInitScenario ("30.1 Calling other constructors using 'this'. " + "Default constructor calls non-default constructor with boolean parameter"); var alpha30_1: Alpha30_1 = new Alpha30_1(); expected = "three"; actual = ""; actual = alpha30_1.value; if (actual != expected) apLogFailInfo ("Error in 30.1", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("30.2 Calling other constructors using 'this'. " + "Alpha (int) calls Alpha (String) using 'this'"); var alpha30_2: Alpha30_2 = new Alpha30_2 (25); expected = "eleven"; actual = ""; actual = alpha30_2.value; if (actual != expected) apLogFailInfo ("Error in 30.2", expected, actual, ""); // ----------------------------------------------------------------------- apInitScenario ("30.3 Calling other constructors using 'this'. " + "Alpha (String) calls Alpha (int, boolean) using 'this'"); var alpha30_3: Alpha30_3 = new Alpha30_3 ("hello"); expected = "twelve"; actual = ""; actual = alpha30_3.value; if (actual != expected) apLogFailInfo ("Error in 30.3", expected, actual, ""); apEndTest(); } constructors10(); if(lFailCount >= 0) System.Environment.ExitCode = lFailCount; else System.Environment.ExitCode = 1; function apInitTest(stTestName) { lFailCount = 0; apGlobalObj = new Object(); apGlobalObj.apGetPlatform = function Funca() { return "Rotor" } apGlobalObj.LangHost = function Funcb() { return 1033;} apGlobalObj.apGetLangExt = function Funcc(num) { return "EN"; } apPlatform = apGlobalObj.apGetPlatform(); var sVer = "1.0"; //navigator.appVersion.toUpperCase().charAt(navigator.appVersion.toUpperCase().indexOf("MSIE")+5); apGlobalObj.apGetHost = function Funcp() { return "Rotor " + sVer; } print ("apInitTest: " + stTestName); } function apInitScenario(stScenarioName) {print( "\tapInitScenario: " + stScenarioName);} function apLogFailInfo(stMessage, stExpected, stActual, stBugNum) { lFailCount = lFailCount + 1; print ("***** FAILED:"); print ("\t\t" + stMessage); print ("\t\tExpected: " + stExpected); print ("\t\tActual: " + stActual); } function apGetLocale(){ return 1033; } function apWriteDebug(s) { print("dbg ---> " + s) } function apEndTest() {}