2015-09-11 17:11:25 +02:00
|
|
|
from fontTools.misc.testTools import parseXML
|
2015-04-14 23:00:11 -07:00
|
|
|
from fontTools.misc.xmlWriter import XMLWriter
|
2021-03-29 11:45:58 +02:00
|
|
|
from io import BytesIO
|
2015-04-14 23:00:11 -07:00
|
|
|
import struct
|
|
|
|
import unittest
|
2017-04-18 12:02:42 +02:00
|
|
|
from fontTools.ttLib import newTable
|
|
|
|
|
2015-04-14 23:00:11 -07:00
|
|
|
|
|
|
|
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
|
|
|
)
|
2015-04-14 23:00:11 -07:00
|
|
|
TAGS_ = ["en", "zh-Hant", "zh"]
|
2022-12-13 11:26:36 +00:00
|
|
|
|
2017-04-18 12:02:42 +02: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
|
|
|
|
2015-04-14 23:00:11 -07:00
|
|
|
def test_decompile_compile(self):
|
2017-04-18 12:02:42 +02:00
|
|
|
table = newTable("ltag")
|
2015-04-14 23:00:11 -07:00
|
|
|
table.decompile(self.DATA_, ttFont=None)
|
2015-06-25 10:08:10 +02:00
|
|
|
self.assertEqual(1, table.version)
|
|
|
|
self.assertEqual(0, table.flags)
|
|
|
|
self.assertEqual(self.TAGS_, table.tags)
|
2015-09-09 20:24:08 +02:00
|
|
|
compiled = table.compile(ttFont=None)
|
|
|
|
self.assertEqual(self.DATA_, compiled)
|
|
|
|
self.assertIsInstance(compiled, bytes)
|
2022-12-13 11:26:36 +00:00
|
|
|
|
2015-04-14 23:00:11 -07:00
|
|
|
def test_fromXML(self):
|
2017-04-18 12:02:42 +02:00
|
|
|
table = newTable("ltag")
|
2015-09-11 17:11:25 +02:00
|
|
|
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)
|
2015-06-25 10:08:10 +02:00
|
|
|
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
|
|
|
|
2015-04-14 23:00:11 -07:00
|
|
|
def test_toXML(self):
|
2015-08-07 16:16:49 +01:00
|
|
|
writer = XMLWriter(BytesIO())
|
2017-04-18 12:02:42 +02:00
|
|
|
table = newTable("ltag")
|
2015-04-14 23:00:11 -07:00
|
|
|
table.decompile(self.DATA_, ttFont=None)
|
|
|
|
table.toXML(writer, ttFont=None)
|
2021-07-30 03:58:20 +02:00
|
|
|
expected = (
|
|
|
|
"\n".join(
|
|
|
|
[
|
2015-04-21 11:07:48 -07:00
|
|
|
'<?xml version="1.0" encoding="UTF-8"?>',
|
2015-04-14 23:00:11 -07:00
|
|
|
'<version value="1"/>',
|
|
|
|
'<flags value="0"/>',
|
|
|
|
'<LanguageTag tag="en"/>',
|
|
|
|
'<LanguageTag tag="zh-Hant"/>',
|
|
|
|
'<LanguageTag tag="zh"/>',
|
2021-07-30 03:58:20 +02:00
|
|
|
]
|
|
|
|
)
|
|
|
|
+ "\n"
|
2022-12-13 11:26:36 +00:00
|
|
|
)
|
2015-06-25 10:08:10 +02:00
|
|
|
self.assertEqual(expected.encode("utf_8"), writer.file.getvalue())
|
2022-12-13 11:26:36 +00:00
|
|
|
|
|
|
|
|
2015-04-14 23:00:11 -07:00
|
|
|
if __name__ == "__main__":
|
2017-01-11 13:05:35 +00:00
|
|
|
import sys
|
2022-12-13 11:26:36 +00:00
|
|
|
|
2017-01-11 13:05:35 +00:00
|
|
|
sys.exit(unittest.main())
|