Index: test/intl/general/case-mapping.js |
diff --git a/test/intl/general/case-mapping.js b/test/intl/general/case-mapping.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f52fd64bcfff5b8ab8212451337115e9fbf5d463 |
--- /dev/null |
+++ b/test/intl/general/case-mapping.js |
@@ -0,0 +1,36 @@ |
+// Copyright 2015 the V8 project authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// Some edge cases that unibrow got wrong |
+ |
+assertEquals("𐐘", "𐑀".toUpperCase()); |
+assertEquals("𐑀", "𐐘".toLowerCase()); |
+assertEquals("σ", "Σ".toLowerCase()); |
+ |
+ |
+// Some different paths in the ICU case conversion fastpath |
+ |
+assertEquals("σς", "\u03A3\u03A3".toLowerCase()); |
+// Expand sharp s in latin1 fastpath |
+assertEquals("ASSB", "A\u00DFB".toUpperCase()); |
+assertEquals("AB", "Ab".toUpperCase()); |
+// Find first upper case in fastpath |
+assertEquals("ab", "aB".toLowerCase()); |
+assertEquals("AÜ", "aü".toUpperCase()); |
+assertEquals("AÜ", "AÜ".toUpperCase()); |
+assertEquals("aü", "aü".toLowerCase()); |
+assertEquals("aü", "AÜ".toLowerCase()); |
+assertEquals("aü", "AÜ".toLowerCase()); |
+// Buffer size increase |
+assertEquals("CSSBẶ", "c\u00DFbặ".toUpperCase()); |
+assertEquals("FIFLFFIFFL", "\uFB01\uFB02\uFB03\uFB04".toUpperCase()); |
+// Plane 1; Deseret and Warang Citi Script. |
+assertEquals("\u{10400}\u{118A0}", "\u{10428}\u{118C0}".toUpperCase()); |
+assertEquals("\u{10428}\u{118C0}", "\u{10400}\u{118A0}".toLowerCase()); |
+// Mathematical Bold {Capital, Small} Letter A do not change. |
+assertEquals("\u{1D400}\u{1D41A}", "\u{1D400}\u{1D41A}".toUpperCase()); |
+assertEquals("\u{1D400}\u{1D41A}", "\u{1D400}\u{1D41A}".toLowerCase()); |
+// Plane 1; New characters in Unicode 8.0 |
+//assertEquals("\u{10C80}", "\u{10CC0}".toUpperCase()); |
+//assertEquals("\u{10CC0}", "\u{10C80}".toLowerCase()); |