Bug 1245 - Add test for missing argument to String.prototype.localeCompare

This commit is contained in:
Norbert Lindenberg 2013-02-07 20:55:25 -08:00
parent 46359091c7
commit a2380a4257
9 changed files with 65 additions and 7 deletions

View File

@ -0,0 +1,22 @@
// Copyright 2013 Mozilla Corporation. All rights reserved.
// This code is governed by the license found in the LICENSE file.
/**
* @description Tests that String.prototype.localeCompare treats a missing
* "that" argument, undefined, and "undefined" as equivalent.
* @author Norbert Lindenberg
*/
var thisValues = ["a", "t", "u", "undefined", "UNDEFINED", "nicht definiert", "xyz", "未定义"];
var i;
for (i = 0; i < thisValues.length; i++) {
var thisValue = thisValues[i];
if (thisValue.localeCompare() !== thisValue.localeCompare(undefined)) {
$ERROR("String.prototype.localeCompare does not treat missing 'that' argument as undefined.");
}
if (thisValue.localeCompare(undefined) !== thisValue.localeCompare("undefined")) {
$ERROR("String.prototype.localeCompare does not treat undefined 'that' argument as \"undefined\".");
}
}

View File

@ -0,0 +1,22 @@
// Copyright 2013 Mozilla Corporation. All rights reserved.
// This code is governed by the license found in the LICENSE file.
/**
* @description Tests that String.prototype.localeCompare treats a missing
* "that" argument, undefined, and "undefined" as equivalent.
* @author Norbert Lindenberg
*/
var thisValues = ["a", "t", "u", "undefined", "UNDEFINED", "nicht definiert", "xyz", "未定义"];
var i;
for (i = 0; i < thisValues.length; i++) {
var thisValue = thisValues[i];
if (thisValue.localeCompare() !== thisValue.localeCompare(undefined)) {
$ERROR("String.prototype.localeCompare does not treat missing 'that' argument as undefined.");
}
if (thisValue.localeCompare(undefined) !== thisValue.localeCompare("undefined")) {
$ERROR("String.prototype.localeCompare does not treat undefined 'that' argument as \"undefined\".");
}
}

View File

@ -1,7 +1,7 @@
{
"testsCollection":{
"name":"Chapter - ch15",
"numTests":"8074",
"numTests":"8075",
"tests":[
{
"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgZ2xvYmFsIG9iamVjdCBkb2VzIG5vdCBoYXZlIGEgW1tDb25zdHJ1Y3RdXSBwcm9wZXJ0eQogKgogKiBAcGF0aCBjaDE1LzE1LjEvUzE1LjFfQTFfVDEuanMKICogQGRlc2NyaXB0aW9uIEl0IGlzIG5vdCBwb3NzaWJsZSB0byB1c2UgdGhlIGdsb2JhbCBvYmplY3QgYXMgYSBjb25zdHJ1Y3RvcgogKiB3aXRoIHRoZSBuZXcgb3BlcmF0b3IKICogQG5lZ2F0aXZlCiAqLwoKbmV3IHRoaXM7Cgo=",
@ -44021,6 +44021,13 @@
},
{
"author":"Norbert Lindenberg",
"code":"Ly8gQ29weXJpZ2h0IDIwMTMgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IFN0cmluZy5wcm90b3R5cGUubG9jYWxlQ29tcGFyZSB0cmVhdHMgYSBtaXNzaW5nCiAqICAgICAidGhhdCIgYXJndW1lbnQsIHVuZGVmaW5lZCwgYW5kICJ1bmRlZmluZWQiIGFzIGVxdWl2YWxlbnQuCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKdmFyIHRoaXNWYWx1ZXMgPSBbImEiLCAidCIsICJ1IiwgInVuZGVmaW5lZCIsICJVTkRFRklORUQiLCAibmljaHQgZGVmaW5pZXJ0IiwgInh5eiIsICLmnKrlrprkuYkiXTsKCnZhciBpOwpmb3IgKGkgPSAwOyBpIDwgdGhpc1ZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgdmFyIHRoaXNWYWx1ZSA9IHRoaXNWYWx1ZXNbaV07CiAgICBpZiAodGhpc1ZhbHVlLmxvY2FsZUNvbXBhcmUoKSAhPT0gdGhpc1ZhbHVlLmxvY2FsZUNvbXBhcmUodW5kZWZpbmVkKSkgewogICAgICAgICRFUlJPUigiU3RyaW5nLnByb3RvdHlwZS5sb2NhbGVDb21wYXJlIGRvZXMgbm90IHRyZWF0IG1pc3NpbmcgJ3RoYXQnIGFyZ3VtZW50IGFzIHVuZGVmaW5lZC4iKTsKICAgIH0KICAgIGlmICh0aGlzVmFsdWUubG9jYWxlQ29tcGFyZSh1bmRlZmluZWQpICE9PSB0aGlzVmFsdWUubG9jYWxlQ29tcGFyZSgidW5kZWZpbmVkIikpIHsKICAgICAgICAkRVJST1IoIlN0cmluZy5wcm90b3R5cGUubG9jYWxlQ29tcGFyZSBkb2VzIG5vdCB0cmVhdCB1bmRlZmluZWQgJ3RoYXQnIGFyZ3VtZW50IGFzIFwidW5kZWZpbmVkXCIuIik7CiAgICB9Cn0KCg==",
"commentary":"",
"description":"Tests that String.prototype.localeCompare treats a missing\n \"that\" argument, undefined, and \"undefined\" as equivalent.",
"path":"TestCases/ch15/15.5/15.5.4/15.5.4.9/15.5.4.9_3.js"
},
{
"author":"Norbert Lindenberg",
"code":"Ly8gQ29weXJpZ2h0IDIwMTIgTm9yYmVydCBMaW5kZW5iZXJnLiBBbGwgcmlnaHRzIHJlc2VydmVkLgovKioKICogQGRlc2NyaXB0aW9uIFRlc3RzIHRoYXQgU3RyaW5nLnByb3RvdHlwZS5sb2NhbGVDb21wYXJlCiAqICAgICByZXR1cm5zIDAgd2hlbiBjb21wYXJpbmcgU3RyaW5ncyB0aGF0IGFyZSBjb25zaWRlcmVkIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQKICogICAgIGJ5IHRoZSBVbmljb2RlIHN0YW5kYXJkLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCi8vIHBhaXJzIHdpdGggY2hhcmFjdGVycyBub3QgaW4gVW5pY29kZSAzLjAgYXJlIGNvbW1lbnRlZCBvdXQKdmFyIHBhaXJzID0gWwogICAgLy8gZXhhbXBsZSBmcm9tIFVuaWNvZGUgNS4wLCBzZWN0aW9uIDMuNywgZGVmaW5pdGlvbiBENzAKICAgIFsib1x1MDMwOCIsICLDtiJdLAogICAgLy8gZXhhbXBsZXMgZnJvbSBVbmljb2RlIDUuMCwgY2hhcHRlciAzLjExCiAgICBbIsOkXHUwMzIzIiwgImFcdTAzMjNcdTAzMDgiXSwKICAgIFsiYVx1MDMwOFx1MDMyMyIsICJhXHUwMzIzXHUwMzA4Il0sCiAgICBbIuG6oVx1MDMwOCIsICJhXHUwMzIzXHUwMzA4Il0sCiAgICBbIsOkXHUwMzA2IiwgImFcdTAzMDhcdTAzMDYiXSwKICAgIFsixINcdTAzMDgiLCAiYVx1MDMwNlx1MDMwOCJdLAogICAgLy8gZXhhbXBsZSBmcm9tIFVuaWNvZGUgNS4wLCBjaGFwdGVyIDMuMTIKICAgIFsiXHUxMTExXHUxMTcxXHUxMUI2IiwgIu2TmyJdLAogICAgLy8gZXhhbXBsZXMgZnJvbSBVVFMgMTAsIFVuaWNvZGUgQ29sbGF0aW9uIEFsZ29yaXRobQogICAgWyLihKsiLCAiw4UiXSwKICAgIFsi4oSrIiwgIkFcdTAzMEEiXSwKICAgIFsieFx1MDMxQlx1MDMyMyIsICJ4XHUwMzIzXHUwMzFCIl0sCiAgICBbIuG7sSIsICLhu6VcdTAzMUIiXSwKICAgIFsi4buxIiwgInVcdTAzMUJcdTAzMjMiXSwKICAgIFsi4buxIiwgIsawXHUwMzIzIl0sCiAgICBbIuG7sSIsICJ1XHUwMzIzXHUwMzFCIl0sCiAgICAvLyBleGFtcGxlcyBmcm9tIFVBWCAxNSwgVW5pY29kZSBOb3JtYWxpemF0aW9uIEZvcm1zCiAgICBbIsOHIiwgIkNcdTAzMjciXSwKICAgIFsicVx1MDMwN1x1MDMyMyIsICJxXHUwMzIzXHUwMzA3Il0sCiAgICBbIuqwgCIsICJcdTExMDBcdTExNjEiXSwKICAgIFsi4oSrIiwgIkFcdTAzMEEiXSwKICAgIFsi4oSmIiwgIs6pIl0sCiAgICBbIsOFIiwgIkFcdTAzMEEiXSwKICAgIFsiw7QiLCAib1x1MDMwMiJdLAogICAgWyLhuakiLCAic1x1MDMyM1x1MDMwNyJdLAogICAgWyLhuItcdTAzMjMiLCAiZFx1MDMyM1x1MDMwNyJdLAogICAgWyLhuItcdTAzMjMiLCAi4biNXHUwMzA3Il0sCiAgICBbInFcdTAzMDdcdTAzMjMiLCAicVx1MDMyM1x1MDMwNyJdLAogICAgLy8gZXhhbXBsZXMgaW52b2x2aW5nIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyBmcm9tIFVDRCBOb3JtYWxpemF0aW9uVGVzdC50eHQKLy8gIFsiXHVEODM0XHVERDVFIiwgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSJdLAovLyAgWyJcdUQ4N0VcdURDMkIiLCAi5YyXIl0KXTsKCnZhciBpOwpmb3IgKGkgPSAwOyBpIDwgcGFpcnMubGVuZ3RoOyBpKyspIHsKICAgIHZhciBwYWlyID0gcGFpcnNbaV07CiAgICBpZiAocGFpclswXS5sb2NhbGVDb21wYXJlKHBhaXJbMV0pICE9PSAwKSB7CiAgICAgICAgJEVSUk9SKCJTdHJpbmcucHJvdG90eXBlLmxvY2FsZUNvbXBhcmUgY29uc2lkZXJzICIgKyBwYWlyWzBdICsgIiAoIiArIHRvVShwYWlyWzBdKSArCiAgICAgICAgICAgICIpIOKJoCAiICsgcGFpclsxXSArICIgKCIgKyB0b1UocGFpclsxXSkgKyAiKS4iKTsKICAgIH0KfQoKZnVuY3Rpb24gdG9VKHMpIHsKICAgIHZhciByZXN1bHQgPSAiIjsKICAgIHZhciBlc2NhcGUgPSAiXFx1MDAwMCI7CiAgICB2YXIgaTsKICAgIGZvciAoaSA9IDA7IGkgPCBzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIGhleCA9IHMuY2hhckNvZGVBdChpKS50b1N0cmluZygxNik7CiAgICAgICAgcmVzdWx0ICs9IGVzY2FwZS5zdWJzdHJpbmcoMCwgZXNjYXBlLmxlbmd0aCAtIGhleC5sZW5ndGgpICsgaGV4OwogICAgfQogICAgcmV0dXJuIHJlc3VsdDsKfQoK",
"commentary":"",
"description":"Tests that String.prototype.localeCompare\n returns 0 when comparing Strings that are considered canonically equivalent\n by the Unicode standard.",

View File

@ -1,5 +1,5 @@
{
"numTests":11572,
"numTests":11573,
"testSuite":[
"json/ch06.json",
"json/ch07.json",

View File

@ -1,7 +1,7 @@
{
"testsCollection":{
"name":"Chapter - intl402",
"numTests":"141",
"numTests":"142",
"tests":[
{
"author":"Norbert Lindenberg",
@ -887,7 +887,14 @@
"code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IGxvY2FsZUNvbXBhcmUgY29lcmNlcyB0aGF0IHRvIGEgc3RyaW5nLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCnZhciB0aGlzVmFsdWVzID0gWyJ0cnVlIiwgIjUiLCAiaGVsbG8iLCAiZ29vZCBieWUiXTsKdmFyIHRoYXRWYWx1ZXMgPSBbdHJ1ZSwgNSwgImhlbGxvIiwge3RvU3RyaW5nOiBmdW5jdGlvbiAoKSB7IHJldHVybiAiZ29vZCBieWUiOyB9fV07Cgp2YXIgaTsKZm9yIChpID0gMDsgaSA8IHRoaXNWYWx1ZXMubGVuZ3RoOyBpKyspIHsKICAgIHZhciBqOwogICAgZm9yIChqID0gMDsgaiA8IHRoYXRWYWx1ZXMubGVuZ3RoOyBqKyspIHsKICAgICAgICB2YXIgcmVzdWx0ID0gU3RyaW5nLnByb3RvdHlwZS5sb2NhbGVDb21wYXJlLmNhbGwodGhpc1ZhbHVlc1tpXSwgdGhhdFZhbHVlc1tqXSk7CiAgICAgICAgaWYgKChyZXN1bHQgPT09IDApICE9PSAoaSA9PT0gaikpIHsKICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gMCkgewogICAgICAgICAgICAgICAgJEVSUk9SKCJsb2NhbGVDb21wYXJlIHRyZWF0cyAiICsgdGhpc1ZhbHVlc1tpXSArICIgYW5kICIgKyB0aGF0VmFsdWVzW2pdICsgIiBhcyBlcXVhbC4iKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRFUlJPUigibG9jYWxlQ29tcGFyZSB0cmVhdHMgIiArIHRoaXNWYWx1ZXNbaV0gKyAiIGFuZCAiICsgdGhhdFZhbHVlc1tqXSArICIgYXMgZGlmZmVyZW50LiIpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cgo=",
"commentary":"",
"description":"Tests that localeCompare coerces that to a string.",
"path":"TestCases/intl402/ch13/13.1/13.1.1_3.js"
"path":"TestCases/intl402/ch13/13.1/13.1.1_3_1.js"
},
{
"author":"Norbert Lindenberg",
"code":"Ly8gQ29weXJpZ2h0IDIwMTMgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IFN0cmluZy5wcm90b3R5cGUubG9jYWxlQ29tcGFyZSB0cmVhdHMgYSBtaXNzaW5nCiAqICAgICAidGhhdCIgYXJndW1lbnQsIHVuZGVmaW5lZCwgYW5kICJ1bmRlZmluZWQiIGFzIGVxdWl2YWxlbnQuCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKdmFyIHRoaXNWYWx1ZXMgPSBbImEiLCAidCIsICJ1IiwgInVuZGVmaW5lZCIsICJVTkRFRklORUQiLCAibmljaHQgZGVmaW5pZXJ0IiwgInh5eiIsICLmnKrlrprkuYkiXTsKCnZhciBpOwpmb3IgKGkgPSAwOyBpIDwgdGhpc1ZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgdmFyIHRoaXNWYWx1ZSA9IHRoaXNWYWx1ZXNbaV07CiAgICBpZiAodGhpc1ZhbHVlLmxvY2FsZUNvbXBhcmUoKSAhPT0gdGhpc1ZhbHVlLmxvY2FsZUNvbXBhcmUodW5kZWZpbmVkKSkgewogICAgICAgICRFUlJPUigiU3RyaW5nLnByb3RvdHlwZS5sb2NhbGVDb21wYXJlIGRvZXMgbm90IHRyZWF0IG1pc3NpbmcgJ3RoYXQnIGFyZ3VtZW50IGFzIHVuZGVmaW5lZC4iKTsKICAgIH0KICAgIGlmICh0aGlzVmFsdWUubG9jYWxlQ29tcGFyZSh1bmRlZmluZWQpICE9PSB0aGlzVmFsdWUubG9jYWxlQ29tcGFyZSgidW5kZWZpbmVkIikpIHsKICAgICAgICAkRVJST1IoIlN0cmluZy5wcm90b3R5cGUubG9jYWxlQ29tcGFyZSBkb2VzIG5vdCB0cmVhdCB1bmRlZmluZWQgJ3RoYXQnIGFyZ3VtZW50IGFzIFwidW5kZWZpbmVkXCIuIik7CiAgICB9Cn0KCg==",
"commentary":"",
"description":"Tests that String.prototype.localeCompare treats a missing\n \"that\" argument, undefined, and \"undefined\" as equivalent.",
"path":"TestCases/intl402/ch13/13.1/13.1.1_3_2.js"
},
{
"author":"Norbert Lindenberg",

View File

@ -1 +1 @@
{"date":"2012-12-17","version":"ES5.1"}
{"date":"2013-02-07","version":"ES5.1"}

View File

@ -1,5 +1,5 @@
{
"numTests":8074,
"numTests":8075,
"testSuite":[
"json/ch15.json"
]

View File

@ -1,5 +1,5 @@
{
"numTests":141,
"numTests":142,
"testSuite":[
"json/intl402.json"
]