• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1from __future__ import print_function, division, absolute_import, unicode_literals
2from fontTools.misc.py23 import *
3import unittest
4from fontTools.misc.encodingTools import getEncoding
5
6class EncodingTest(unittest.TestCase):
7
8	def test_encoding_unicode(self):
9
10		self.assertEqual(getEncoding(3, 0, None), "utf_16_be") # MS Symbol is Unicode as well
11		self.assertEqual(getEncoding(3, 1, None), "utf_16_be")
12		self.assertEqual(getEncoding(3, 10, None), "utf_16_be")
13		self.assertEqual(getEncoding(0, 3, None), "utf_16_be")
14
15	def test_encoding_macroman_misc(self):
16		self.assertEqual(getEncoding(1, 0, 17), "mac_turkish")
17		self.assertEqual(getEncoding(1, 0, 37), "mac_romanian")
18		self.assertEqual(getEncoding(1, 0, 45), "mac_roman")
19
20	def test_extended_mac_encodings(self):
21		encoding = getEncoding(1, 1, 0) # Mac Japanese
22		decoded = b'\xfe'.decode(encoding)
23		self.assertEqual(decoded, unichr(0x2122))
24
25	def test_extended_unknown(self):
26		self.assertEqual(getEncoding(10, 11, 12), None)
27		self.assertEqual(getEncoding(10, 11, 12, "ascii"), "ascii")
28		self.assertEqual(getEncoding(10, 11, 12, default="ascii"), "ascii")
29
30if __name__ == "__main__":
31	import sys
32	sys.exit(unittest.main())
33