from __future__ import print_function, absolute_import
from fontTools.misc.py23 import *
from fontTools import ttLib
import unittest
from fontTools.ttLib.tables._k_e_r_n import KernTable_format_0

class MockFont(object):

        def getGlyphOrder(self):
                return ["glyph00000", "glyph00001", "glyph00002", "glyph00003"]

        def getGlyphName(self, glyphID):
                return "glyph%.5d" % glyphID

class KernTable_format_0_Test(unittest.TestCase):

        def test_decompileBadGlyphId(self):
                subtable = KernTable_format_0()
                subtable.apple = False
                subtable.decompile(  b'\x00' * 6
                                   + b'\x00' + b'\x02' + b'\x00' * 6
                                   + b'\x00' + b'\x01' + b'\x00' + b'\x03' + b'\x00' + b'\x01'
                                   + b'\x00' + b'\x01' + b'\xFF' + b'\xFF' + b'\x00' + b'\x02',
                                   MockFont())
                self.assertEqual(subtable[("glyph00001", "glyph00003")], 1)
                self.assertEqual(subtable[("glyph00001", "glyph65535")], 2)

if __name__ == "__main__":
        import sys
        sys.exit(unittest.main())
