//# ==++== //# //# //# 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 = 65391; function FuncRetStr() { return "function returning string"; } function myObjStr() { return "my object string"; } @if(!@aspx) function myObject() { this.toString = myObjStr; } @else expando function myObject() { this.toString = myObjStr; } @end function string04() { var tmp,res,expected,emptyVar; apInitTest("string04"); var myStr = new String("Apple Core"); var myDate = new Date(); myDate.setTime(0); // this is Wed Dec 31 16:00:00 PST 1969 myDate.setTime(Date.UTC(70,0,1,0) + myDate.getTimezoneOffset() * 60000 - 28800000); var numvar = 4321; var strvar = "Hippopotamus"; var ary = new Array(); ary[2] = "zero"; ary[3] = "albatross"; ary[4] = "what flavor is it?"; var myObj = new myObject(); var crlf = unescape("%0d%0a"); var lf = unescape("%0a"); // LF @if (@_win16) var FRScode =lf+"function FuncRetStr() {"+lf+" [native code]"+lf+"}"+lf; var FRScode2="error"; var FRScode3="error"; @else //crlf = unescape("%0d%0a"); crlf = Environment.NewLine; var cr = unescape("%0d"); var FRScode = "function FuncRetStr() {" + crlf + ' return "function returning string";' + crlf + "}"; var FRScode2 = "function FuncRetStr() {" + cr + ' return "function returning string";' + cr + "}"; var FRScode3 = "function FuncRetStr() {" + crlf + 'return "function returning string";' + crlf + "}"; @end var Mathcode = "[object Math]"; apInitScenario("add function returning string to string object"); res = FuncRetStr() + myStr; expected = "function returning stringApple Core"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } if( new Date("12/25/2002 12:00:00 PST").getTimezoneOffset()/60 == 8) { apInitScenario("add function returning string to date (coerced to string)"); res = FuncRetStr() + ("" + myDate); expected = "function returning stringWed Dec 31 16:00:00 PST 1969"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } apInitScenario("add function returning string to date.toString()"); res = FuncRetStr() + (myDate.toString()); expected = "function returning stringWed Dec 31 16:00:00 PST 1969"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } } apInitScenario("add function returning string to function returning string"); res = FuncRetStr() + FuncRetStr(); expected = "function returning stringfunction returning string"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } apInitScenario("add function returning string to null"); res = FuncRetStr() + null; expected = "function returning stringnull"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } apInitScenario("add function returning string to null string"); res = FuncRetStr() + ""; expected = "function returning string"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } apInitScenario("add function returning string to coerced numeric constant"); res = FuncRetStr() + ("" + 1234); expected = "function returning string1234"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } apInitScenario("add function returning string to numeric constant"); res = FuncRetStr() + 1234; expected = "function returning string1234"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } apInitScenario("add function returning string to exp numeric constant"); res = FuncRetStr() + 3e300; expected = "function returning string3e+300"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } apInitScenario("add function returning string to fp numeric constant"); res = FuncRetStr() + 1234.56; expected = "function returning string1234.56"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } apInitScenario("add function returning string to numeric variable"); res = FuncRetStr() + numvar; expected = "function returning string4321"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } apInitScenario("add function returning string to string constant"); res = FuncRetStr() + "Bernoulli"; expected = "function returning stringBernoulli"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } apInitScenario("add function returning string to string expression"); res = FuncRetStr() + ("abc" + "def"); expected = "function returning stringabcdef"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } apInitScenario("add function returning string to string variable"); res = FuncRetStr() + strvar; expected = "function returning stringHippopotamus"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } apInitScenario("add function returning string to string array element"); res = FuncRetStr() + ary[3]; expected = "function returning stringalbatross"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } apInitScenario("add function returning string to eval string"); res = FuncRetStr() + eval("\"boingo\""); expected = "function returning stringboingo"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } apInitScenario("add function returning string to empty variable"); res = FuncRetStr() + emptyVar; expected = "function returning stringundefined"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } apInitScenario("add function returning string to user-defined object member"); res = FuncRetStr() + myObj.toString(); expected = "function returning stringmy object string"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } apInitScenario("add function returning string to string.toString"); res = FuncRetStr() + "Horse".toString(); expected = "function returning stringHorse"; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } apInitScenario("add function returning string to Math.toString"); res = FuncRetStr() + Math.toString(); expected = "function returning string" + Mathcode; if (res != expected) { apLogFailInfo("wrong result",expected,res,""); } if (typeof(res) != "string") { apLogFailInfo("result had wrong type","string",typeof(res),""); } apEndTest(); } string04(); 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() {}