mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-13 05:15:45 +00:00
Bug 1129920 - Separate String.prototype.normalize test into small parts. r=Waldo
This commit is contained in:
parent
af2bbac201
commit
8db771ea29
22
js/src/tests/ecma_6/String/normalize-generateddata-part0.js
Normal file
22
js/src/tests/ecma_6/String/normalize-generateddata-part0.js
Normal file
@ -0,0 +1,22 @@
|
||||
// |reftest| skip-if(!xulRuntime.shell) -- uses shell load() function
|
||||
|
||||
var BUGNUMBER = 918987;
|
||||
var summary = 'String.prototype.normalize - part0';
|
||||
|
||||
print(BUGNUMBER + ": " + summary);
|
||||
|
||||
function test() {
|
||||
load('ecma_6/String/normalize-generateddata-input.js');
|
||||
|
||||
for (var test0 of tests_part0) {
|
||||
runNormalizeTest(test0);
|
||||
}
|
||||
}
|
||||
|
||||
if ("normalize" in String.prototype) {
|
||||
// String.prototype.normalize is not enabled in all builds.
|
||||
test();
|
||||
}
|
||||
|
||||
if (typeof reportCompare === "function")
|
||||
reportCompare(true, true);
|
@ -0,0 +1,38 @@
|
||||
// |reftest| skip-if(!xulRuntime.shell) -- uses shell load() function
|
||||
|
||||
var BUGNUMBER = 918987;
|
||||
var summary = 'String.prototype.normalize - not listed in part1';
|
||||
|
||||
print(BUGNUMBER + ": " + summary);
|
||||
|
||||
function test() {
|
||||
load('ecma_6/String/normalize-generateddata-input.js');
|
||||
|
||||
var part1 = new Set();
|
||||
for (var test1 of tests_part1) {
|
||||
part1.add(test1.source[0]);
|
||||
}
|
||||
|
||||
/* not listed in Part 1 */
|
||||
for (var x = 0; x <= 0x2FFFF; x++) {
|
||||
if (part1.has(x)) {
|
||||
continue;
|
||||
}
|
||||
var xstr = x.toString(16);
|
||||
var c = String.fromCodePoint(x);
|
||||
assertEq(c.normalize(), c, "NFC of " + xstr);
|
||||
assertEq(c.normalize(undefined), c, "NFC of " + xstr);
|
||||
assertEq(c.normalize("NFC"), c, "NFC of " + xstr);
|
||||
assertEq(c.normalize("NFD"), c, "NFD of " + xstr);
|
||||
assertEq(c.normalize("NFKC"), c, "NFKC of " + xstr);
|
||||
assertEq(c.normalize("NFKD"), c, "NFKD of " + xstr);
|
||||
}
|
||||
}
|
||||
|
||||
if ("normalize" in String.prototype) {
|
||||
// String.prototype.normalize is not enabled in all builds.
|
||||
test();
|
||||
}
|
||||
|
||||
if (typeof reportCompare === "function")
|
||||
reportCompare(true, true);
|
22
js/src/tests/ecma_6/String/normalize-generateddata-part1.js
Normal file
22
js/src/tests/ecma_6/String/normalize-generateddata-part1.js
Normal file
@ -0,0 +1,22 @@
|
||||
// |reftest| skip-if(!xulRuntime.shell) -- uses shell load() function
|
||||
|
||||
var BUGNUMBER = 918987;
|
||||
var summary = 'String.prototype.normalize - part1';
|
||||
|
||||
print(BUGNUMBER + ": " + summary);
|
||||
|
||||
function test() {
|
||||
load('ecma_6/String/normalize-generateddata-input.js');
|
||||
|
||||
for (var test1 of tests_part1) {
|
||||
runNormalizeTest(test1);
|
||||
}
|
||||
}
|
||||
|
||||
if ("normalize" in String.prototype) {
|
||||
// String.prototype.normalize is not enabled in all builds.
|
||||
test();
|
||||
}
|
||||
|
||||
if (typeof reportCompare === "function")
|
||||
reportCompare(true, true);
|
22
js/src/tests/ecma_6/String/normalize-generateddata-part2.js
Normal file
22
js/src/tests/ecma_6/String/normalize-generateddata-part2.js
Normal file
@ -0,0 +1,22 @@
|
||||
// |reftest| skip-if(!xulRuntime.shell) -- uses shell load() function
|
||||
|
||||
var BUGNUMBER = 918987;
|
||||
var summary = 'String.prototype.normalize - part2';
|
||||
|
||||
print(BUGNUMBER + ": " + summary);
|
||||
|
||||
function test() {
|
||||
load('ecma_6/String/normalize-generateddata-input.js');
|
||||
|
||||
for (var test2 of tests_part2) {
|
||||
runNormalizeTest(test2);
|
||||
}
|
||||
}
|
||||
|
||||
if ("normalize" in String.prototype) {
|
||||
// String.prototype.normalize is not enabled in all builds.
|
||||
test();
|
||||
}
|
||||
|
||||
if (typeof reportCompare === "function")
|
||||
reportCompare(true, true);
|
22
js/src/tests/ecma_6/String/normalize-generateddata-part3.js
Normal file
22
js/src/tests/ecma_6/String/normalize-generateddata-part3.js
Normal file
@ -0,0 +1,22 @@
|
||||
// |reftest| skip-if(!xulRuntime.shell) -- uses shell load() function
|
||||
|
||||
var BUGNUMBER = 918987;
|
||||
var summary = 'String.prototype.normalize - part3';
|
||||
|
||||
print(BUGNUMBER + ": " + summary);
|
||||
|
||||
function test() {
|
||||
load('ecma_6/String/normalize-generateddata-input.js');
|
||||
|
||||
for (var test3 of tests_part3) {
|
||||
runNormalizeTest(test3);
|
||||
}
|
||||
}
|
||||
|
||||
if ("normalize" in String.prototype) {
|
||||
// String.prototype.normalize is not enabled in all builds.
|
||||
test();
|
||||
}
|
||||
|
||||
if (typeof reportCompare === "function")
|
||||
reportCompare(true, true);
|
@ -1,126 +0,0 @@
|
||||
// |reftest| skip-if(!xulRuntime.shell||!("normalize"in(String.prototype))) -- uses shell load() function, String.prototype.normalize is not enabled in all builds
|
||||
var BUGNUMBER = 918987;
|
||||
var summary = 'String.prototype.normalize';
|
||||
|
||||
print(BUGNUMBER + ": " + summary);
|
||||
|
||||
/**************
|
||||
* BEGIN TEST *
|
||||
**************/
|
||||
|
||||
load('ecma_6/String/normalize-generateddata-input.js');
|
||||
|
||||
function codePointsToString(points) {
|
||||
return points.map(x => String.fromCodePoint(x)).join("");
|
||||
}
|
||||
function stringify(points) {
|
||||
return points.map(x => x.toString(16)).join();
|
||||
}
|
||||
|
||||
function runTest(test) {
|
||||
var source = codePointsToString(test.source);
|
||||
var NFC = codePointsToString(test.NFC);
|
||||
var NFD = codePointsToString(test.NFD);
|
||||
var NFKC = codePointsToString(test.NFKC);
|
||||
var NFKD = codePointsToString(test.NFKD);
|
||||
var sourceStr = stringify(test.source);
|
||||
var nfcStr = stringify(test.NFC);
|
||||
var nfdStr = stringify(test.NFD);
|
||||
var nfkcStr = stringify(test.NFKC);
|
||||
var nfkdStr = stringify(test.NFKD);
|
||||
|
||||
/* NFC */
|
||||
assertEq(source.normalize(), NFC, "NFC of " + sourceStr);
|
||||
assertEq(NFC.normalize(), NFC, "NFC of " + nfcStr);
|
||||
assertEq(NFD.normalize(), NFC, "NFC of " + nfdStr);
|
||||
assertEq(NFKC.normalize(), NFKC, "NFC of " + nfkcStr);
|
||||
assertEq(NFKD.normalize(), NFKC, "NFC of " + nfkdStr);
|
||||
|
||||
assertEq(source.normalize(undefined), NFC, "NFC of " + sourceStr);
|
||||
assertEq(NFC.normalize(undefined), NFC, "NFC of " + nfcStr);
|
||||
assertEq(NFD.normalize(undefined), NFC, "NFC of " + nfdStr);
|
||||
assertEq(NFKC.normalize(undefined), NFKC, "NFC of " + nfkcStr);
|
||||
assertEq(NFKD.normalize(undefined), NFKC, "NFC of " + nfkdStr);
|
||||
|
||||
assertEq(source.normalize("NFC"), NFC, "NFC of " + sourceStr);
|
||||
assertEq(NFC.normalize("NFC"), NFC, "NFC of " + nfcStr);
|
||||
assertEq(NFD.normalize("NFC"), NFC, "NFC of " + nfdStr);
|
||||
assertEq(NFKC.normalize("NFC"), NFKC, "NFC of " + nfkcStr);
|
||||
assertEq(NFKD.normalize("NFC"), NFKC, "NFC of " + nfkdStr);
|
||||
|
||||
/* NFD */
|
||||
assertEq(source.normalize("NFD"), NFD, "NFD of " + sourceStr);
|
||||
assertEq(NFC.normalize("NFD"), NFD, "NFD of " + nfcStr);
|
||||
assertEq(NFD.normalize("NFD"), NFD, "NFD of " + nfdStr);
|
||||
assertEq(NFKC.normalize("NFD"), NFKD, "NFD of " + nfkcStr);
|
||||
assertEq(NFKD.normalize("NFD"), NFKD, "NFD of " + nfkdStr);
|
||||
|
||||
/* NFKC */
|
||||
assertEq(source.normalize("NFKC"), NFKC, "NFKC of " + sourceStr);
|
||||
assertEq(NFC.normalize("NFKC"), NFKC, "NFKC of " + nfcStr);
|
||||
assertEq(NFD.normalize("NFKC"), NFKC, "NFKC of " + nfdStr);
|
||||
assertEq(NFKC.normalize("NFKC"), NFKC, "NFKC of " + nfkcStr);
|
||||
assertEq(NFKD.normalize("NFKC"), NFKC, "NFKC of " + nfkdStr);
|
||||
|
||||
/* NFKD */
|
||||
assertEq(source.normalize("NFKD"), NFKD, "NFKD of " + sourceStr);
|
||||
assertEq(NFC.normalize("NFKD"), NFKD, "NFKD of " + nfcStr);
|
||||
assertEq(NFD.normalize("NFKD"), NFKD, "NFKD of " + nfdStr);
|
||||
assertEq(NFKC.normalize("NFKD"), NFKD, "NFKD of " + nfkcStr);
|
||||
assertEq(NFKD.normalize("NFKD"), NFKD, "NFKD of " + nfkdStr);
|
||||
}
|
||||
|
||||
for (var test0 of tests_part0) {
|
||||
runTest(test0);
|
||||
}
|
||||
var part1 = new Set();
|
||||
for (var test1 of tests_part1) {
|
||||
part1.add(test1.source[0]);
|
||||
runTest(test1);
|
||||
}
|
||||
for (var test2 of tests_part2) {
|
||||
runTest(test2);
|
||||
}
|
||||
for (var test3 of tests_part3) {
|
||||
runTest(test3);
|
||||
}
|
||||
|
||||
/* not listed in Part 1 */
|
||||
for (var x = 0; x <= 0x2FFFF; x++) {
|
||||
if (part1.has(x)) {
|
||||
continue;
|
||||
}
|
||||
var xstr = x.toString(16);
|
||||
var c = String.fromCodePoint(x);
|
||||
assertEq(c.normalize(), c, "NFC of " + xstr);
|
||||
assertEq(c.normalize(undefined), c, "NFC of " + xstr);
|
||||
assertEq(c.normalize("NFC"), c, "NFC of " + xstr);
|
||||
assertEq(c.normalize("NFD"), c, "NFD of " + xstr);
|
||||
assertEq(c.normalize("NFKC"), c, "NFKC of " + xstr);
|
||||
assertEq(c.normalize("NFKD"), c, "NFKD of " + xstr);
|
||||
}
|
||||
|
||||
var myobj = {toString : (function () "a\u0301"), normalize : String.prototype.normalize};
|
||||
assertEq(myobj.normalize(), "\u00E1");
|
||||
|
||||
assertThrowsInstanceOf(function() {
|
||||
"abc".normalize("NFE");
|
||||
}, RangeError,
|
||||
"String.prototype.normalize should raise RangeError on invalid form");
|
||||
|
||||
assertEq("".normalize(), "");
|
||||
|
||||
/* JSRope test */
|
||||
var a = "";
|
||||
var b = "";
|
||||
for (var i = 0; i < 100; i++) {
|
||||
a += "\u0100";
|
||||
b += "\u0041\u0304";
|
||||
}
|
||||
assertEq(a.normalize("NFD"), b);
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
if (typeof reportCompare === "function")
|
||||
reportCompare(true, true);
|
||||
print("Tests complete");
|
20
js/src/tests/ecma_6/String/normalize-generic.js
Normal file
20
js/src/tests/ecma_6/String/normalize-generic.js
Normal file
@ -0,0 +1,20 @@
|
||||
var BUGNUMBER = 918987;
|
||||
var summary = 'String.prototype.normalize - normalize no String object';
|
||||
|
||||
print(BUGNUMBER + ": " + summary);
|
||||
|
||||
function test() {
|
||||
var myobj = {
|
||||
toString: () => "a\u0301",
|
||||
normalize: String.prototype.normalize
|
||||
};
|
||||
assertEq(myobj.normalize(), "\u00E1");
|
||||
}
|
||||
|
||||
if ("normalize" in String.prototype) {
|
||||
// String.prototype.normalize is not enabled in all builds.
|
||||
test();
|
||||
}
|
||||
|
||||
if (typeof reportCompare === "function")
|
||||
reportCompare(true, true);
|
19
js/src/tests/ecma_6/String/normalize-parameter.js
Normal file
19
js/src/tests/ecma_6/String/normalize-parameter.js
Normal file
@ -0,0 +1,19 @@
|
||||
var BUGNUMBER = 918987;
|
||||
var summary = 'String.prototype.normalize - passing wrong parameter';
|
||||
|
||||
print(BUGNUMBER + ": " + summary);
|
||||
|
||||
function test() {
|
||||
assertThrowsInstanceOf(() => "abc".normalize("NFE"), RangeError,
|
||||
"String.prototype.normalize should raise RangeError on invalid form");
|
||||
|
||||
assertEq("".normalize(), "");
|
||||
}
|
||||
|
||||
if ("normalize" in String.prototype) {
|
||||
// String.prototype.normalize is not enabled in all builds.
|
||||
test();
|
||||
}
|
||||
|
||||
if (typeof reportCompare === "function")
|
||||
reportCompare(true, true);
|
23
js/src/tests/ecma_6/String/normalize-rope.js
Normal file
23
js/src/tests/ecma_6/String/normalize-rope.js
Normal file
@ -0,0 +1,23 @@
|
||||
var BUGNUMBER = 918987;
|
||||
var summary = 'String.prototype.normalize - normalize rope string';
|
||||
|
||||
print(BUGNUMBER + ": " + summary);
|
||||
|
||||
function test() {
|
||||
/* JSRope test */
|
||||
var a = "";
|
||||
var b = "";
|
||||
for (var i = 0; i < 100; i++) {
|
||||
a += "\u0100";
|
||||
b += "\u0041\u0304";
|
||||
}
|
||||
assertEq(a.normalize("NFD"), b);
|
||||
}
|
||||
|
||||
if ("normalize" in String.prototype) {
|
||||
// String.prototype.normalize is not enabled in all builds.
|
||||
test();
|
||||
}
|
||||
|
||||
if (typeof reportCompare === "function")
|
||||
reportCompare(true, true);
|
@ -0,0 +1,59 @@
|
||||
function runNormalizeTest(test) {
|
||||
function codePointsToString(points) {
|
||||
return points.map(x => String.fromCodePoint(x)).join("");
|
||||
}
|
||||
function stringify(points) {
|
||||
return points.map(x => x.toString(16)).join();
|
||||
}
|
||||
|
||||
var source = codePointsToString(test.source);
|
||||
var NFC = codePointsToString(test.NFC);
|
||||
var NFD = codePointsToString(test.NFD);
|
||||
var NFKC = codePointsToString(test.NFKC);
|
||||
var NFKD = codePointsToString(test.NFKD);
|
||||
var sourceStr = stringify(test.source);
|
||||
var nfcStr = stringify(test.NFC);
|
||||
var nfdStr = stringify(test.NFD);
|
||||
var nfkcStr = stringify(test.NFKC);
|
||||
var nfkdStr = stringify(test.NFKD);
|
||||
|
||||
/* NFC */
|
||||
assertEq(source.normalize(), NFC, "NFC of " + sourceStr);
|
||||
assertEq(NFC.normalize(), NFC, "NFC of " + nfcStr);
|
||||
assertEq(NFD.normalize(), NFC, "NFC of " + nfdStr);
|
||||
assertEq(NFKC.normalize(), NFKC, "NFC of " + nfkcStr);
|
||||
assertEq(NFKD.normalize(), NFKC, "NFC of " + nfkdStr);
|
||||
|
||||
assertEq(source.normalize(undefined), NFC, "NFC of " + sourceStr);
|
||||
assertEq(NFC.normalize(undefined), NFC, "NFC of " + nfcStr);
|
||||
assertEq(NFD.normalize(undefined), NFC, "NFC of " + nfdStr);
|
||||
assertEq(NFKC.normalize(undefined), NFKC, "NFC of " + nfkcStr);
|
||||
assertEq(NFKD.normalize(undefined), NFKC, "NFC of " + nfkdStr);
|
||||
|
||||
assertEq(source.normalize("NFC"), NFC, "NFC of " + sourceStr);
|
||||
assertEq(NFC.normalize("NFC"), NFC, "NFC of " + nfcStr);
|
||||
assertEq(NFD.normalize("NFC"), NFC, "NFC of " + nfdStr);
|
||||
assertEq(NFKC.normalize("NFC"), NFKC, "NFC of " + nfkcStr);
|
||||
assertEq(NFKD.normalize("NFC"), NFKC, "NFC of " + nfkdStr);
|
||||
|
||||
/* NFD */
|
||||
assertEq(source.normalize("NFD"), NFD, "NFD of " + sourceStr);
|
||||
assertEq(NFC.normalize("NFD"), NFD, "NFD of " + nfcStr);
|
||||
assertEq(NFD.normalize("NFD"), NFD, "NFD of " + nfdStr);
|
||||
assertEq(NFKC.normalize("NFD"), NFKD, "NFD of " + nfkcStr);
|
||||
assertEq(NFKD.normalize("NFD"), NFKD, "NFD of " + nfkdStr);
|
||||
|
||||
/* NFKC */
|
||||
assertEq(source.normalize("NFKC"), NFKC, "NFKC of " + sourceStr);
|
||||
assertEq(NFC.normalize("NFKC"), NFKC, "NFKC of " + nfcStr);
|
||||
assertEq(NFD.normalize("NFKC"), NFKC, "NFKC of " + nfdStr);
|
||||
assertEq(NFKC.normalize("NFKC"), NFKC, "NFKC of " + nfkcStr);
|
||||
assertEq(NFKD.normalize("NFKC"), NFKC, "NFKC of " + nfkdStr);
|
||||
|
||||
/* NFKD */
|
||||
assertEq(source.normalize("NFKD"), NFKD, "NFKD of " + sourceStr);
|
||||
assertEq(NFC.normalize("NFKD"), NFKD, "NFKD of " + nfcStr);
|
||||
assertEq(NFD.normalize("NFKD"), NFKD, "NFKD of " + nfdStr);
|
||||
assertEq(NFKC.normalize("NFKD"), NFKD, "NFKD of " + nfkcStr);
|
||||
assertEq(NFKD.normalize("NFKD"), NFKD, "NFKD of " + nfkdStr);
|
||||
}
|
Loading…
Reference in New Issue
Block a user