[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    tests/khtmltests/regression/tests/js
From:       Harri Porten <porten () kde ! org>
Date:       2005-07-26 21:12:45
Message-ID: 1122412365.605341.28810.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 439012 by porten:

more detailed toString() and toLocalString() testing


 M  +39 -0     Array.js  


--- trunk/tests/khtmltests/regression/tests/js/Array.js #439011:439012
@@ -147,3 +147,42 @@
 shouldBe("propnames[0]","'0'");
 shouldBe("propnames[1]","'1'");
 shouldBe("propnames[2]","'2'");
+
+function testToString() {
+  // backup
+  var backupNumberToString = Number.prototype.toString;
+  var backupNumberToLocaleString = Number.prototype.toLocaleString;
+  var backupRegExpToString = RegExp.prototype.toString;
+  var backupRegExpToLocaleString = RegExp.prototype.toLocaleString;
+
+  // change functions
+  Number.prototype.toString = function() { return "toString"; }
+  Number.prototype.toLocaleString = function() { return "toLocaleString"; }
+  RegExp.prototype.toString = function() { return "toString2"; }
+  RegExp.prototype.toLocaleString = function() { return "toLocaleString2"; }
+
+  // the tests
+  shouldBe("[1].toString()", "'1'");
+  shouldBe("[1].toLocaleString()", "'toLocaleString'");
+  Number.prototype.toLocaleString = "invalid";
+  shouldBe("[1].toLocaleString()", "'1'");
+  shouldBe("[/r/].toString()", "'toString2'");
+  shouldBe("[/r/].toLocaleString()", "'toLocaleString2'");
+  RegExp.prototype.toLocaleString = "invalid";
+  shouldBe("[/r/].toLocaleString()", "'toString2'");
+
+  var caught = false;
+  try {
+    [{ toString : 0 }].toString();
+  } catch (e) {
+    caught = true;
+  }
+  shouldBeTrue("caught");
+
+  // restore
+  Number.prototype.toString = backupNumberToString;
+  Number.prototype.toLocaleString = backupNumberToLocaleString;
+  RegExp.prototype.toString = backupRegExpToString;
+  RegExp.prototype.toLocaleString = backupRegExpToLocaleString;
+}
+
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic