diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
commit | 43a97878ce14b72f0981164f87f2e35e14151312 (patch) | |
tree | 620249daf56c0258faa40cbdcf9cfba06de2a846 /testing/web-platform/tests/css/css-text/text-encoding | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/css-text/text-encoding')
13 files changed, 681 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-text/text-encoding/reference/shaping-join-001-ref.html b/testing/web-platform/tests/css/css-text/text-encoding/reference/shaping-join-001-ref.html new file mode 100644 index 0000000000..1baeea5b0b --- /dev/null +++ b/testing/web-platform/tests/css/css-text/text-encoding/reference/shaping-join-001-ref.html @@ -0,0 +1,42 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text level 3 Test reference</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<style> + table { + font-size: 3em; + border-spacing: 0 3px; + } + td { + padding: 0 0.5ch; + line-height: 1; + border: 1px solid; + } + @font-face { + font-family: 'csstest_noto'; + src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2'); + } + table { + font-family: 'csstest_noto'; + } +</style> + +<p>Test passes if both halves of each of the pairs below are identical: + +<table dir=rtl> +<tr><!-- alef, final form as it doesn't have a medial form --> + <td>ﺎ + <td>ﺎ +<tr><!-- alef, final form --> + <td>ﺎ + <td>ﺎ +<tr><!-- beh, initial form --> + <td>ﺑ + <td>ﺑ +<tr><!-- beh, medial form --> + <td>ﺒ + <td>ﺒ +<tr><!-- beh, final form --> + <td>ﺐ + <td>ﺐ +</table> diff --git a/testing/web-platform/tests/css/css-text/text-encoding/reference/shaping-no-join-001-ref.html b/testing/web-platform/tests/css/css-text/text-encoding/reference/shaping-no-join-001-ref.html new file mode 100644 index 0000000000..4bf1b4aed7 --- /dev/null +++ b/testing/web-platform/tests/css/css-text/text-encoding/reference/shaping-no-join-001-ref.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text level 3 Test test</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<style> + table { + font-size: 3em; + border-spacing: 0 3px; + } + td { + padding: 0 0.5ch; + line-height: 1; + border: 1px solid; + } + @font-face { + font-family: 'csstest_noto'; + src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2'); + font-weight: normal; + font-style: normal; + } + table { + font-family: 'csstest_noto'; + } +</style> + +<p>Test passes if both halves of each of the pairs below are identical: + +<table dir=rtl lang=ar> +<tr><!-- alef, isolated rather than final --> + <td>ـﺍ + <td>ـﺍ +<tr><!-- beh, isolated rather than initial --> + <td>ﺏـ + <td>ﺏـ +<tr><!-- beh, final rather than medial --> + <td>ـﺐـ + <td>ـﺐـ +<tr><!-- beh, isolated rather than medial --> + <td>ـﺏـ + <td>ـﺏـ +<tr><!-- beh, initial rather than medial --> + <td>ـﺑـ + <td>ـﺑـ +<tr><!-- beh, isolated rather than final --> + <td>ـﺏ + <td>ـﺏ +</table> diff --git a/testing/web-platform/tests/css/css-text/text-encoding/reference/shaping-tatweel-001-ref.html b/testing/web-platform/tests/css/css-text/text-encoding/reference/shaping-tatweel-001-ref.html new file mode 100644 index 0000000000..87880e666a --- /dev/null +++ b/testing/web-platform/tests/css/css-text/text-encoding/reference/shaping-tatweel-001-ref.html @@ -0,0 +1,44 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text level 3 Test reference</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<style> + table { + font-size: 3em; + border-spacing: 0 3px; + } + td { + padding: 0 0.5ch; + line-height: 1; + border: 1px solid; + } + @font-face { + font-family: 'csstest_noto'; + src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2'); + font-weight: normal; + font-style: normal; + } + table { + font-family: 'csstest_noto'; + } +</style> + +<p>Test passes if both halves of each of the pairs below are identical: + +<table dir=rtl lang=ar> +<tr><!-- alef, final form as it doesn't have a medial form --> + <td>ـﺎـ + <td>ـﺎـ +<tr><!-- alef, final form --> + <td>ـﺎ + <td>ـﺎ +<tr><!-- beh, initial form --> + <td>ﺑـ + <td>ﺑـ +<tr><!-- beh, medial form --> + <td>ـﺒـ + <td>ـﺒـ +<tr><!-- beh, final form --> + <td>ـﺐ + <td>ـﺐ +</table> diff --git a/testing/web-platform/tests/css/css-text/text-encoding/reference/shaping-tatweel-002-ref.html b/testing/web-platform/tests/css/css-text/text-encoding/reference/shaping-tatweel-002-ref.html new file mode 100644 index 0000000000..4393172ac2 --- /dev/null +++ b/testing/web-platform/tests/css/css-text/text-encoding/reference/shaping-tatweel-002-ref.html @@ -0,0 +1,50 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text level 3 Test reference</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<style> + table { + font-size: 3em; + border-spacing: 0 3px; + } + td { + padding: 0 0.5ch; + line-height: 1; + border: 1px solid; + } + @font-face { + font-family: 'tatweel'; + src: url('/fonts/Scheherazade-Regular.woff') format('woff'); + } + @font-face { + font-family: 'csstest_noto'; + src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2'); + } + span { + font-family: 'tatweel'; + line-height: 0; + } + table { + font-family: 'csstest_noto'; + } +</style> + +<p>Test passes if both halves of each of the pairs below are identical: + +<table dir=rtl lang=ar> +<tr><!-- alef, final form as it doesn't have a medial form --> + <td><span>ـ</span>ﺎ<span>ـ</span> + <td><span>ـ</span>ﺎ<span>ـ</span> +<tr><!-- alef, final form --> + <td><span>ـ</span>ﺎ + <td><span>ـ</span>ﺎ +<tr><!-- beh, initial form --> + <td>ﺑ<span>ـ</span> + <td>ﺑ<span>ـ</span> +<tr><!-- beh, medial form --> + <td><span>ـ</span>ﺒ<span>ـ</span> + <td><span>ـ</span>ﺒ<span>ـ</span> +<tr><!-- beh, final form --> + <td><span>ـ</span>ﺐ + <td><span>ـ</span>ﺐ +</table> diff --git a/testing/web-platform/tests/css/css-text/text-encoding/shaping-join-001.html b/testing/web-platform/tests/css/css-text/text-encoding/shaping-join-001.html new file mode 100644 index 0000000000..c4a4d00c92 --- /dev/null +++ b/testing/web-platform/tests/css/css-text/text-encoding/shaping-join-001.html @@ -0,0 +1,48 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text level 3 Test: zwj and text-shaping</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<link rel="help" href="https://drafts.csswg.org/css-text-3/#text-encoding"> +<link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch23.pdf"> +<link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch09.pdf"> +<link rel="help" href="https://www.w3.org/TR/alreq/#h_joining_enforcement"> +<link rel="match" href="reference/shaping-join-001-ref.html"> +<meta name="assert" content="Arabic characters next to a ZERO WIDTH JOINER character must take their correct positional form."> +<style> + table { + font-size: 3em; + border-spacing: 0 3px; + } + td { + padding: 0 0.5ch; + line-height: 1; + border: 1px solid; + } + @font-face { + font-family: 'csstest_noto'; + src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2'); + } + table { + font-family: 'csstest_noto'; + } +</style> + +<p>Test passes if both halves of each of the pairs below are identical: + +<table dir=rtl> +<tr><!-- alef, final form as it doesn't have a medial form --> + <td>‍ا‍ + <td>ﺎ +<tr><!-- alef, final form --> + <td>‍ا + <td>ﺎ +<tr><!-- beh, initial form --> + <td>ب‍ + <td>ﺑ +<tr><!-- beh, medial form --> + <td>‍ب‍ + <td>ﺒ +<tr><!-- beh, final form --> + <td>‍ب + <td>ﺐ +</table> diff --git a/testing/web-platform/tests/css/css-text/text-encoding/shaping-join-002.html b/testing/web-platform/tests/css/css-text/text-encoding/shaping-join-002.html new file mode 100644 index 0000000000..1e4eaf7fe9 --- /dev/null +++ b/testing/web-platform/tests/css/css-text/text-encoding/shaping-join-002.html @@ -0,0 +1,59 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text level 3 Test: zwj and text-shaping, cross font, fallback</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<link rel="help" href="https://drafts.csswg.org/css-text-3/#text-encoding"> +<link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch23.pdf"> +<link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch09.pdf"> +<link rel="help" href="https://www.w3.org/TR/alreq/#h_joining_enforcement"> +<link rel="match" href="reference/shaping-join-001-ref.html"> +<meta name="assert" content="Arabic characters next to a ZERO WIDTH JOINER character must take their correct positional form, even if the ZWJ comes from a differnt font due to font fallback."> +<style> + table { + font-size: 3em; + border-spacing: 0 3px; + } + td { + padding: 0 0.5ch; + line-height: 1; + border: 1px solid; + } + @font-face { + font-family: 'primary'; + src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2'); + unicode-range: U+20; + } + @font-face { + font-family: 'joiners'; + src: url('/fonts/noto/noto-sans-v8-latin-regular.woff') format('woff'); + unicode-range: U+200C-200D; + } + @font-face { + font-family: 'csstest_noto'; + src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2'); + } + table { + /*using a primary font with just U+20 (space) to get the baseline right*/ + font-family: 'primary', 'joiners', 'csstest_noto'; + } +</style> + +<p>Test passes if both halves of each of the pairs below are identical: + +<table dir=rtl> +<tr><!-- alef, final form as it doesn't have a medial form --> + <td>‍ا‍ + <td>ﺎ +<tr><!-- alef, final form --> + <td>‍ا + <td>ﺎ +<tr><!-- beh, initial form --> + <td>ب‍ + <td>ﺑ +<tr><!-- beh, medial form --> + <td>‍ب‍ + <td>ﺒ +<tr><!-- beh, final form --> + <td>‍ب + <td>ﺐ +</table> diff --git a/testing/web-platform/tests/css/css-text/text-encoding/shaping-join-003.html b/testing/web-platform/tests/css/css-text/text-encoding/shaping-join-003.html new file mode 100644 index 0000000000..71459335d4 --- /dev/null +++ b/testing/web-platform/tests/css/css-text/text-encoding/shaping-join-003.html @@ -0,0 +1,56 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text level 3 Test: zwj and text-shaping, cross font, explicit</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<link rel="help" href="https://drafts.csswg.org/css-text-3/#text-encoding"> +<link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch23.pdf"> +<link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch09.pdf"> +<link rel="help" href="https://www.w3.org/TR/alreq/#h_joining_enforcement"> +<link rel="match" href="reference/shaping-join-001-ref.html"> +<meta name="assert" content="Arabic characters next to a ZERO WIDTH JOINER character must take their correct positional form, even if the ZWJ comes from a differnt font due to being in a different element with an explicit different font."> +<style> + table { + font-size: 3em; + border-spacing: 0 3px; + } + td { + padding: 0 0.5ch; + line-height: 1; + border: 1px solid; + } + @font-face { + font-family: 'joiners'; + src: url('/fonts/noto/noto-sans-v8-latin-regular.woff') format('woff'); + } + @font-face { + font-family: 'csstest_noto'; + src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2'); + } + span { + font-family: 'joiners'; + line-height: 0; + } + table { + font-family: 'csstest_noto'; + } +</style> + +<p>Test passes if both halves of each of the pairs below are identical: + +<table dir=rtl> +<tr><!-- alef, final form as it doesn't have a medial form --> + <td><span>‍</span>ا<span>‍</span> + <td>ﺎ +<tr><!-- alef, final form --> + <td><span>‍</span>ا + <td>ﺎ +<tr><!-- beh, initial form --> + <td>ب<span>‍</span> + <td>ﺑ +<tr><!-- beh, medial form --> + <td><span>‍</span>ب<span>‍</span> + <td>ﺒ +<tr><!-- beh, final form --> + <td><span>‍</span>ب + <td>ﺐ +</table> diff --git a/testing/web-platform/tests/css/css-text/text-encoding/shaping-no-join-001.html b/testing/web-platform/tests/css/css-text/text-encoding/shaping-no-join-001.html new file mode 100644 index 0000000000..738189d3a3 --- /dev/null +++ b/testing/web-platform/tests/css/css-text/text-encoding/shaping-no-join-001.html @@ -0,0 +1,52 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text level 3 Test: zwnj and text-shaping</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<link rel="help" href="https://drafts.csswg.org/css-text-3/#text-encoding"> +<link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch23.pdf"> +<link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch09.pdf"> +<link rel="help" href="https://www.w3.org/TR/alreq/#h_disjoining_enforcement"> +<link rel="help" href="https://www.w3.org/TR/alreq/#h_joining_enforcement"> +<link rel="match" href="reference/shaping-no-join-001-ref.html"> +<meta name="assert" content="Arabic characters next to a ZERO WIDTH NON JOINER character must not take their positional form. "> +<style> + table { + font-size: 3em; + border-spacing: 0 3px; + } + td { + padding: 0 0.5ch; + line-height: 1; + border: 1px solid; + } + @font-face { + font-family: 'csstest_noto'; + src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2'); + } + table { + font-family: 'csstest_noto'; + } +</style> + +<p>Test passes if both halves of each of the pairs below are identical: + +<table dir=rtl lang=ar> +<tr><!-- alef, isolated rather than final --> + <td>ـ‌ا + <td>ـﺍ +<tr><!-- beh, isolated rather than initial --> + <td>ب‌ـ + <td>ﺏـ +<tr><!-- beh, final rather than medial --> + <td>ـب‌ـ + <td>ـﺐـ +<tr><!-- beh, isolated rather than medial --> + <td>ـ‌ب‌ـ + <td>ـﺏـ +<tr><!-- beh, initial rather than medial --> + <td>ـ‌بـ + <td>ـﺑـ +<tr><!-- beh, isolated rather than final --> + <td>ـ‌ب + <td>ـﺏ +</table> diff --git a/testing/web-platform/tests/css/css-text/text-encoding/shaping-no-join-002.html b/testing/web-platform/tests/css/css-text/text-encoding/shaping-no-join-002.html new file mode 100644 index 0000000000..14fa73ed85 --- /dev/null +++ b/testing/web-platform/tests/css/css-text/text-encoding/shaping-no-join-002.html @@ -0,0 +1,63 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text level 3 Test: zwnj and text-shaping, cross font, fallback</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<link rel="help" href="https://drafts.csswg.org/css-text-3/#text-encoding"> +<link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch23.pdf"> +<link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch09.pdf"> +<link rel="help" href="https://www.w3.org/TR/alreq/#h_disjoining_enforcement"> +<link rel="help" href="https://www.w3.org/TR/alreq/#h_joining_enforcement"> +<link rel="match" href="reference/shaping-no-join-001-ref.html"> +<meta name="assert" content="Arabic characters next to a ZERO WIDTH NON JOINER character must not take their positional form, even if the ZWNJ comes from a differnt font due to font fallback."> +<style> + table { + font-size: 3em; + border-spacing: 0 3px; + } + td { + padding: 0 0.5ch; + line-height: 1; + border: 1px solid; + } + @font-face { + font-family: 'primary'; + src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2'); + unicode-range: U+20; + } + @font-face { + font-family: 'joiners'; + src: url('/fonts/noto/noto-sans-v8-latin-regular.woff') format('woff'); + unicode-range: U+200C-200D; + } + @font-face { + font-family: 'csstest_noto'; + src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2'); + } + table { + /*using a primary font with just U+20 (space) to get the baseline right*/ + font-family: 'primary', 'joiners', 'csstest_noto'; + } +</style> + +<p>Test passes if both halves of each of the pairs below are identical: + +<table dir=rtl lang=ar> +<tr><!-- alef, isolated rather than final --> + <td>ـ‌ا + <td>ـﺍ +<tr><!-- beh, isolated rather than initial --> + <td>ب‌ـ + <td>ﺏـ +<tr><!-- beh, final rather than medial --> + <td>ـب‌ـ + <td>ـﺐـ +<tr><!-- beh, isolated rather than medial --> + <td>ـ‌ب‌ـ + <td>ـﺏـ +<tr><!-- beh, initial rather than medial --> + <td>ـ‌بـ + <td>ـﺑـ +<tr><!-- beh, isolated rather than final --> + <td>ـ‌ب + <td>ـﺏ +</table> diff --git a/testing/web-platform/tests/css/css-text/text-encoding/shaping-no-join-003.html b/testing/web-platform/tests/css/css-text/text-encoding/shaping-no-join-003.html new file mode 100644 index 0000000000..e7d8c85701 --- /dev/null +++ b/testing/web-platform/tests/css/css-text/text-encoding/shaping-no-join-003.html @@ -0,0 +1,60 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text level 3 Test: zwnj and text-shaping, cross font, explicit</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<link rel="help" href="https://drafts.csswg.org/css-text-3/#text-encoding"> +<link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch23.pdf"> +<link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch09.pdf"> +<link rel="help" href="https://www.w3.org/TR/alreq/#h_disjoining_enforcement"> +<link rel="help" href="https://www.w3.org/TR/alreq/#h_joining_enforcement"> +<link rel="match" href="reference/shaping-no-join-001-ref.html"> +<meta name="assert" content="Arabic characters next to a ZERO WIDTH NON JOINER character must not take their positional form, even if the ZWNJ comes from a differnt font due to being in a different element with an explicit different font."> +<style> + table { + font-size: 3em; + border-spacing: 0 3px; + } + td { + padding: 0 0.5ch; + line-height: 1; + border: 1px solid; + } + @font-face { + font-family: 'joiners'; + src: url('/fonts/noto/noto-sans-v8-latin-regular.woff') format('woff'); + } + @font-face { + font-family: 'csstest_noto'; + src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2'); + } + span { + font-family: 'joiners'; + line-height: 0; + } + table { + font-family: 'csstest_noto'; + } +</style> + +<p>Test passes if both halves of each of the pairs below are identical: + +<table dir=rtl lang=ar> +<tr><!-- alef, isolated rather than final --> + <td>ـ<span>‌</span>ا + <td>ـﺍ +<tr><!-- beh, isolated rather than initial --> + <td>ب<span>‌</span>ـ + <td>ﺏـ +<tr><!-- beh, final rather than medial --> + <td>ـب<span>‌</span>ـ + <td>ـﺐـ +<tr><!-- beh, isolated rather than medial --> + <td>ـ<span>‌</span>ب<span>‌</span>ـ + <td>ـﺏـ +<tr><!-- beh, initial rather than medial --> + <td>ـ<span>‌</span>بـ + <td>ـﺑـ +<tr><!-- beh, isolated rather than final --> + <td>ـ<span>‌</span>ب + <td>ـﺏ +</table> diff --git a/testing/web-platform/tests/css/css-text/text-encoding/shaping-tatweel-001.html b/testing/web-platform/tests/css/css-text/text-encoding/shaping-tatweel-001.html new file mode 100644 index 0000000000..eaf5c9d338 --- /dev/null +++ b/testing/web-platform/tests/css/css-text/text-encoding/shaping-tatweel-001.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text level 3 Test: tatweel and text-shaping</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<link rel="help" href="https://drafts.csswg.org/css-text-3/#text-encoding"> +<link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch09.pdf"> +<link rel="help" href="https://www.w3.org/TR/alreq/#h_joining_enforcement"> +<link rel="match" href="reference/shaping-tatweel-001-ref.html"> +<meta name="assert" content="Arabic characters next to a U+0640 ARABIC TATWEEL character must take their correct positional form."> +<style> + table { + font-size: 3em; + border-spacing: 0 3px; + } + td { + padding: 0 0.5ch; + line-height: 1; + border: 1px solid; + } + @font-face { + font-family: 'csstest_noto'; + src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2'); + } + table { + font-family: 'csstest_noto'; + } +</style> + +<p>Test passes if both halves of each of the pairs below are identical: + +<table dir=rtl lang=ar> +<tr><!-- alef, final form as it doesn't have a medial form --> + <td>ـاـ + <td>ـﺎـ +<tr><!-- alef, final form --> + <td>ـا + <td>ـﺎ +<tr><!-- beh, initial form --> + <td>بـ + <td>ﺑـ +<tr><!-- beh, medial form --> + <td>ـبـ + <td>ـﺒـ +<tr><!-- beh, final form --> + <td>ـب + <td>ـﺐ +</table> diff --git a/testing/web-platform/tests/css/css-text/text-encoding/shaping-tatweel-002.html b/testing/web-platform/tests/css/css-text/text-encoding/shaping-tatweel-002.html new file mode 100644 index 0000000000..f6878efe70 --- /dev/null +++ b/testing/web-platform/tests/css/css-text/text-encoding/shaping-tatweel-002.html @@ -0,0 +1,58 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text level 3 Test: tatweel and text-shaping, cross font, fallback</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<link rel="help" href="https://drafts.csswg.org/css-text-3/#text-encoding"> +<link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch09.pdf"> +<link rel="help" href="https://www.w3.org/TR/alreq/#h_joining_enforcement"> +<link rel="match" href="reference/shaping-tatweel-002-ref.html"> +<meta name="assert" content="Arabic characters next to a U+0640 ARABIC TATWEEL character must take their correct positional form, even if the tatweel comes from a differnt font via font due to font fallback."> +<style> + table { + font-size: 3em; + border-spacing: 0 3px; + } + td { + padding: 0 0.5ch; + line-height: 1; + border: 1px solid; + } + @font-face { + font-family: 'primary'; + src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2'); + unicode-range: U+20; + } + @font-face { + font-family: 'tatweel'; + src: url('/fonts/Scheherazade-Regular.woff') format('woff'); + unicode-range: U+0640; + } + @font-face { + font-family: 'csstest_noto'; + src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2'); + } + table { + /*using a primary font with just U+20 (space) to get the baseline right*/ + font-family: 'primary', 'tatweel', 'csstest_noto'; + } +</style> + +<p>Test passes if both halves of each of the pairs below are identical: + +<table dir=rtl lang=ar> +<tr><!-- alef, final form as it doesn't have a medial form --> + <td>ـاـ + <td>ـﺎـ +<tr><!-- alef, final form --> + <td>ـا + <td>ـﺎ +<tr><!-- beh, initial form --> + <td>بـ + <td>ﺑـ +<tr><!-- beh, medial form --> + <td>ـبـ + <td>ـﺒـ +<tr><!-- beh, final form --> + <td>ـب + <td>ـﺐ +</table> diff --git a/testing/web-platform/tests/css/css-text/text-encoding/shaping-tatweel-003.html b/testing/web-platform/tests/css/css-text/text-encoding/shaping-tatweel-003.html new file mode 100644 index 0000000000..7e7107bc73 --- /dev/null +++ b/testing/web-platform/tests/css/css-text/text-encoding/shaping-tatweel-003.html @@ -0,0 +1,55 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text level 3 Test: tatweel and text-shaping, cross font, explicit</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<link rel="help" href="https://drafts.csswg.org/css-text-3/#text-encoding"> +<link rel="help" href="https://www.unicode.org/versions/Unicode11.0.0/ch09.pdf"> +<link rel="help" href="https://www.w3.org/TR/alreq/#h_joining_enforcement"> +<link rel="match" href="reference/shaping-tatweel-002-ref.html"> +<meta name="assert" content="Arabic characters next to a U+0640 ARABIC TATWEEL character must take their correct positional form, even if the tatweel comes from a differnt font due to being in a different element with an explicit different font."> +<style> + table { + font-size: 3em; + border-spacing: 0 3px; + } + td { + padding: 0 0.5ch; + line-height: 1; + border: 1px solid; + } + @font-face { + font-family: 'tatweel'; + src: url('/fonts/Scheherazade-Regular.woff') format('woff'); + } + @font-face { + font-family: 'csstest_noto'; + src: url('/fonts/noto/NotoNaskhArabic-regular.woff2') format('woff2'); + } + span { + font-family: 'tatweel'; + line-height: 0; + } + table { + font-family: 'csstest_noto'; + } +</style> + +<p>Test passes if both halves of each of the pairs below are identical: + +<table dir=rtl lang=ar> +<tr><!-- alef, final form as it doesn't have a medial form --> + <td><span>ـ</span>ا<span>ـ</span> + <td><span>ـ</span>ﺎ<span>ـ</span> +<tr><!-- alef, final form --> + <td><span>ـ</span>ا + <td><span>ـ</span>ﺎ +<tr><!-- beh, initial form --> + <td>ب<span>ـ</span> + <td>ﺑ<span>ـ</span> +<tr><!-- beh, medial form --> + <td><span>ـ</span>ب<span>ـ</span> + <td><span>ـ</span>ﺒ<span>ـ</span> +<tr><!-- beh, final form --> + <td><span>ـ</span>ب + <td><span>ـ</span>ﺐ +</table> |