fonttools/Tests/ttLib/tables/_l_t_a_g_test.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

71 lines
2.2 KiB
Python
Raw Normal View History

from fontTools.misc.testTools import parseXML
from fontTools.misc.xmlWriter import XMLWriter
from io import BytesIO
import struct
import unittest
from fontTools.ttLib import newTable
class Test_l_t_a_g(unittest.TestCase):
DATA_ = (
struct.pack(b">LLLHHHHHH", 1, 0, 3, 24 + 0, 2, 24 + 2, 7, 24 + 2, 2)
+ b"enzh-Hant"
2022-12-13 11:26:36 +00:00
)
TAGS_ = ["en", "zh-Hant", "zh"]
2022-12-13 11:26:36 +00:00
def test_addTag(self):
table = newTable("ltag")
self.assertEqual(table.addTag("de-CH"), 0)
self.assertEqual(table.addTag("gsw-LI"), 1)
self.assertEqual(table.addTag("de-CH"), 0)
self.assertEqual(table.tags, ["de-CH", "gsw-LI"])
2022-12-13 11:26:36 +00:00
def test_decompile_compile(self):
table = newTable("ltag")
table.decompile(self.DATA_, ttFont=None)
self.assertEqual(1, table.version)
self.assertEqual(0, table.flags)
self.assertEqual(self.TAGS_, table.tags)
compiled = table.compile(ttFont=None)
self.assertEqual(self.DATA_, compiled)
self.assertIsInstance(compiled, bytes)
2022-12-13 11:26:36 +00:00
def test_fromXML(self):
table = newTable("ltag")
for name, attrs, content in parseXML(
'<version value="1"/>'
'<flags value="777"/>'
'<LanguageTag tag="sr-Latn"/>'
'<LanguageTag tag="fa"/>'
):
table.fromXML(name, attrs, content, ttFont=None)
self.assertEqual(1, table.version)
self.assertEqual(777, table.flags)
self.assertEqual(["sr-Latn", "fa"], table.tags)
2022-12-13 11:26:36 +00:00
def test_toXML(self):
2015-08-07 16:16:49 +01:00
writer = XMLWriter(BytesIO())
table = newTable("ltag")
table.decompile(self.DATA_, ttFont=None)
table.toXML(writer, ttFont=None)
expected = (
"\n".join(
[
'<?xml version="1.0" encoding="UTF-8"?>',
'<version value="1"/>',
'<flags value="0"/>',
'<LanguageTag tag="en"/>',
'<LanguageTag tag="zh-Hant"/>',
'<LanguageTag tag="zh"/>',
]
)
+ "\n"
2022-12-13 11:26:36 +00:00
)
self.assertEqual(expected.encode("utf_8"), writer.file.getvalue())
2022-12-13 11:26:36 +00:00
if __name__ == "__main__":
import sys
2022-12-13 11:26:36 +00:00
sys.exit(unittest.main())