Add another test for locale-specific shaping
https://bugs.webkit.org/show_bug.cgi?id=235558

Reviewed by Darin Adler.

Thanks so much to Just van Rossum for contributing the test font!!!

.:

* metadata/contributors.json:

LayoutTests:

This test makes sure the LOCL lookup works correctly, even without font-feature-settings.

* fast/text/locale-shaping-2-expected.html: Added.
* fast/text/locale-shaping-2.html: Added.
* fast/text/locale-shaping-3-expected.html: Added.
* fast/text/locale-shaping-3.html: Added.
* fast/text/resources/langlocatest_cjk/LICENSE: Added.
* fast/text/resources/langlocatest_cjk/langlocatest_cjk.ttf: Added.
* platform/gtk/TestExpectations:
* platform/ios/TestExpectations:
* platform/mac/TestExpectations:
* platform/win/TestExpectations:
* platform/wpe/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@288585 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/ChangeLog b/ChangeLog
index 1e3e09b..8d333f4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2022-01-25  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        Add another test for locale-specific shaping
+        https://bugs.webkit.org/show_bug.cgi?id=235558
+
+        Reviewed by Darin Adler.
+
+        Thanks so much to Just van Rossum for contributing the test font!!!
+
+        * metadata/contributors.json:
+
 2022-01-20  Elliott Williams  <emw@apple.com>
 
         [XCBuild] Build via the workspace with USE_WORKSPACE=YES
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 2ec6090..786eed7 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,26 @@
+2022-01-25  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        Add another test for locale-specific shaping
+        https://bugs.webkit.org/show_bug.cgi?id=235558
+
+        Reviewed by Darin Adler.
+
+        Thanks so much to Just van Rossum for contributing the test font!!!
+
+        This test makes sure the LOCL lookup works correctly, even without font-feature-settings.
+
+        * fast/text/locale-shaping-2-expected.html: Added.
+        * fast/text/locale-shaping-2.html: Added.
+        * fast/text/locale-shaping-3-expected.html: Added.
+        * fast/text/locale-shaping-3.html: Added.
+        * fast/text/resources/langlocatest_cjk/LICENSE: Added.
+        * fast/text/resources/langlocatest_cjk/langlocatest_cjk.ttf: Added.
+        * platform/gtk/TestExpectations:
+        * platform/ios/TestExpectations:
+        * platform/mac/TestExpectations:
+        * platform/win/TestExpectations:
+        * platform/wpe/TestExpectations:
+
 2022-01-25  Ryan Haddad  <ryanhaddad@apple.com>
 
         [macOS arm64] fast/scrolling/mac/j-shaped-scroll-rubberband.html is consistently failing
diff --git a/LayoutTests/fast/text/locale-shaping-2-expected.html b/LayoutTests/fast/text/locale-shaping-2-expected.html
new file mode 100644
index 0000000..c5673af
--- /dev/null
+++ b/LayoutTests/fast/text/locale-shaping-2-expected.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<style>
+@font-face {
+    font-family: "CJKLoclTest";
+    src: url("resources/langlocatest_cjk/langlocatest_cjk.ttf") format('truetype');
+}
+
+.locl-test {
+    display: inline-block;
+    font-family: "CJKLoclTest";
+    font-size: 3rem;
+}
+
+.locl-on {
+    font-family: "CJKLoclTest";
+    font-feature-settings: "locl" 1;
+}
+
+.locl-off {
+    font-family: "CJKLoclTest";
+    font-feature-settings: "locl" 0;
+}
+</style>
+</head>
+<body>
+<div>This test makes sure that shaping is locale-specific. The test passes if the big text below doesn't all say ZHS.</div>
+<div class="locl-test">
+<div lang="zh-Hans">雕</div>
+<div lang="zh-Hant">雕</div>
+<div lang="zh-HK">雕</div>
+<div lang="ja-JP">雕</div>
+<div lang="ko-KR">雕</div>
+</div>
+</body>
+</html>
diff --git a/LayoutTests/fast/text/locale-shaping-2.html b/LayoutTests/fast/text/locale-shaping-2.html
new file mode 100644
index 0000000..9f1e120
--- /dev/null
+++ b/LayoutTests/fast/text/locale-shaping-2.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<style>
+@font-face {
+    font-family: "CJKLoclTest";
+    src: url("resources/langlocatest_cjk/langlocatest_cjk.ttf") format('truetype');
+}
+
+.locl-test {
+    display: inline-block;
+    font-family: "CJKLoclTest";
+    font-size: 3rem;
+}
+
+.locl-on {
+    font-family: "CJKLoclTest";
+    font-feature-settings: "locl" 1;
+}
+
+.locl-off {
+    font-family: "CJKLoclTest";
+    font-feature-settings: "locl" 0;
+}
+</style>
+</head>
+<body>
+<div>This test makes sure that shaping is locale-specific. The test passes if the big text below doesn't all say ZHS.</div>
+<div class="locl-test locl-on">
+<div lang="zh-Hans">雕</div>
+<div lang="zh-Hant">雕</div>
+<div lang="zh-HK">雕</div>
+<div lang="ja-JP">雕</div>
+<div lang="ko-KR">雕</div>
+</div>
+</body>
+</html>
diff --git a/LayoutTests/fast/text/locale-shaping-3-expected.html b/LayoutTests/fast/text/locale-shaping-3-expected.html
new file mode 100644
index 0000000..c5673af
--- /dev/null
+++ b/LayoutTests/fast/text/locale-shaping-3-expected.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<style>
+@font-face {
+    font-family: "CJKLoclTest";
+    src: url("resources/langlocatest_cjk/langlocatest_cjk.ttf") format('truetype');
+}
+
+.locl-test {
+    display: inline-block;
+    font-family: "CJKLoclTest";
+    font-size: 3rem;
+}
+
+.locl-on {
+    font-family: "CJKLoclTest";
+    font-feature-settings: "locl" 1;
+}
+
+.locl-off {
+    font-family: "CJKLoclTest";
+    font-feature-settings: "locl" 0;
+}
+</style>
+</head>
+<body>
+<div>This test makes sure that shaping is locale-specific. The test passes if the big text below doesn't all say ZHS.</div>
+<div class="locl-test">
+<div lang="zh-Hans">雕</div>
+<div lang="zh-Hant">雕</div>
+<div lang="zh-HK">雕</div>
+<div lang="ja-JP">雕</div>
+<div lang="ko-KR">雕</div>
+</div>
+</body>
+</html>
diff --git a/LayoutTests/fast/text/locale-shaping-3.html b/LayoutTests/fast/text/locale-shaping-3.html
new file mode 100644
index 0000000..6246574
--- /dev/null
+++ b/LayoutTests/fast/text/locale-shaping-3.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<style>
+@font-face {
+    font-family: "CJKLoclTest";
+    src: url("resources/langlocatest_cjk/langlocatest_cjk.ttf") format('truetype');
+}
+
+.locl-test {
+    display: inline-block;
+    font-family: "CJKLoclTest";
+    font-size: 3rem;
+}
+
+.locl-on {
+    font-family: "CJKLoclTest";
+    font-feature-settings: "locl" 1;
+}
+
+.locl-off {
+    font-family: "CJKLoclTest";
+    font-feature-settings: "locl" 0;
+}
+</style>
+</head>
+<body>
+<div>This test makes sure that shaping is locale-specific. The test passes if the big text below doesn't all say ZHS.</div>
+<div class="locl-test locl-off">
+<div lang="zh-Hans">雕</div>
+<div lang="zh-Hant">雕</div>
+<div lang="zh-HK">雕</div>
+<div lang="ja-JP">雕</div>
+<div lang="ko-KR">雕</div>
+</div>
+</body>
+</html>
diff --git a/LayoutTests/fast/text/resources/langlocatest_cjk/LICENSE b/LayoutTests/fast/text/resources/langlocatest_cjk/LICENSE
new file mode 100644
index 0000000..7db55b3
--- /dev/null
+++ b/LayoutTests/fast/text/resources/langlocatest_cjk/LICENSE
@@ -0,0 +1,3 @@
+Glyphs derived from IBM Plex, which are Copyright 2019 IBM Corp. All rights reserved. Licensed under the SIL Open Font License, Version 1.1.
+
+Very kindly provided by Just van Rossum <justvanrossum@gmail.com>.
diff --git a/LayoutTests/fast/text/resources/langlocatest_cjk/langlocatest_cjk.ttf b/LayoutTests/fast/text/resources/langlocatest_cjk/langlocatest_cjk.ttf
new file mode 100644
index 0000000..9a05cca
--- /dev/null
+++ b/LayoutTests/fast/text/resources/langlocatest_cjk/langlocatest_cjk.ttf
Binary files differ
diff --git a/LayoutTests/platform/gtk/TestExpectations b/LayoutTests/platform/gtk/TestExpectations
index c44b8a7..12f368c 100644
--- a/LayoutTests/platform/gtk/TestExpectations
+++ b/LayoutTests/platform/gtk/TestExpectations
@@ -2047,3 +2047,7 @@
 #////////////////////////////////////////////////////////////////////////////////////////
 # UNSORTED Expectations. When in doubt, put it here.
 #////////////////////////////////////////////////////////////////////////////////////////
+
+# These tests require platform support.
+fast/text/locale-shaping-2.html [ ImageOnlyFailure ]
+fast/text/locale-shaping-3.html [ ImageOnlyFailure ]
diff --git a/LayoutTests/platform/ios/TestExpectations b/LayoutTests/platform/ios/TestExpectations
index 159fedc..c101fb7 100644
--- a/LayoutTests/platform/ios/TestExpectations
+++ b/LayoutTests/platform/ios/TestExpectations
@@ -3435,3 +3435,8 @@
 imported/w3c/web-platform-tests/css/css-pseudo/selection-originating-decoration-color.html [ ImageOnlyFailure ]
 imported/w3c/web-platform-tests/css/css-pseudo/selection-originating-underline-order.html [ ImageOnlyFailure ]
 imported/w3c/web-platform-tests/css/css-pseudo/target-text-007.html [ Failure ]
+
+# These tests require platform support.
+# <rdar://problem/87944426>
+fast/text/locale-shaping-2.html [ Pass ImageOnlyFailure ]
+fast/text/locale-shaping-3.html [ Pass ImageOnlyFailure ]
diff --git a/LayoutTests/platform/mac/TestExpectations b/LayoutTests/platform/mac/TestExpectations
index 04fe53c..7bc1b9b 100644
--- a/LayoutTests/platform/mac/TestExpectations
+++ b/LayoutTests/platform/mac/TestExpectations
@@ -2433,3 +2433,8 @@
 
 # This test is specific to Core Text.
 fast/text/font-lookup-dot-prefix-case-sensitive.html [ Pass ]
+
+# These tests require platform support.
+# <rdar://problem/87944426>
+[ Catalina BigSur Monterey ] fast/text/locale-shaping-2.html [ Pass ImageOnlyFailure ]
+[ Catalina BigSur Monterey ] fast/text/locale-shaping-3.html [ Pass ImageOnlyFailure ]
diff --git a/LayoutTests/platform/win/TestExpectations b/LayoutTests/platform/win/TestExpectations
index 64c2c8a..1399de8 100644
--- a/LayoutTests/platform/win/TestExpectations
+++ b/LayoutTests/platform/win/TestExpectations
@@ -4800,3 +4800,7 @@
 
 # LinearSRGB color space is not supported on Windows.
 css3/filters/reference-filter-color-space.html [ Skip ]
+
+# These tests require platform support.
+fast/text/locale-shaping-2.html [ ImageOnlyFailure ]
+fast/text/locale-shaping-3.html [ ImageOnlyFailure ]
diff --git a/LayoutTests/platform/wpe/TestExpectations b/LayoutTests/platform/wpe/TestExpectations
index d783c44..b489e21 100644
--- a/LayoutTests/platform/wpe/TestExpectations
+++ b/LayoutTests/platform/wpe/TestExpectations
@@ -1367,3 +1367,7 @@
 #////////////////////////////////////////////////////////////////////////////////////////
 # UNSORTED Expectations. When in doubt, put it here.
 #////////////////////////////////////////////////////////////////////////////////////////
+
+# These tests require platform support.
+fast/text/locale-shaping-2.html [ ImageOnlyFailure ]
+fast/text/locale-shaping-3.html [ ImageOnlyFailure ]
diff --git a/metadata/contributors.json b/metadata/contributors.json
index a21e0e8..fbffbd7 100644
--- a/metadata/contributors.json
+++ b/metadata/contributors.json
@@ -3768,6 +3768,13 @@
    },
    {
       "emails" : [
+         "justvanrossum@gmail.com"
+      ],
+      "expertise" : "Text and Fonts",
+      "name" : "Just van Rossum"
+   },
+   {
+      "emails" : [
          "justin_fan@apple.com"
       ],
       "expertise" : "WebGL, Canvas",