def test_simple_cases(self): self.assertEqual(tokenize_name('foo'), ['foo']) self.assertEqual(tokenize_name('fooBar'), ['foo', 'Bar']) self.assertEqual(tokenize_name('fooBarBaz'), ['foo', 'Bar', 'Baz']) self.assertEqual(tokenize_name('Baz'), ['Baz']) self.assertEqual(tokenize_name(''), []) self.assertEqual(tokenize_name('FOO'), ['FOO']) self.assertEqual(tokenize_name('foo2'), ['foo', '2'])
def test_tricky_cases(self): self.assertEqual(tokenize_name('XMLHttpRequest'), ['XML', 'Http', 'Request']) self.assertEqual(tokenize_name('HTMLElement'), ['HTML', 'Element']) self.assertEqual(tokenize_name('WebGLRenderingContext'), ['WebGL', 'Rendering', 'Context']) self.assertEqual(tokenize_name('CanvasRenderingContext2D'), ['Canvas', 'Rendering', 'Context', '2D']) self.assertEqual( tokenize_name('CanvasRenderingContext2DAPITest'), ['Canvas', 'Rendering', 'Context', '2D', 'API', 'Test']) self.assertEqual(tokenize_name('SVGSVGElement'), ['SVG', 'SVG', 'Element']) self.assertEqual(tokenize_name('CanvasRenderingContext2D'), ['Canvas', 'Rendering', 'Context', '2D']) self.assertEqual(tokenize_name('CSSURLImageValue'), ['CSS', 'URL', 'Image', 'Value']) self.assertEqual(tokenize_name('CSSPropertyAPID'), ['CSS', 'Property', 'API', 'D']) self.assertEqual(tokenize_name('AXARIAGridCell'), ['AX', 'ARIA', 'Grid', 'Cell']) self.assertEqual(tokenize_name('CDATASection'), ['CDATA', 'Section']) self.assertEqual(tokenize_name('ASCIICType'), ['ASCII', 'CType']) self.assertEqual(tokenize_name('CString'), ['CString']) self.assertEqual(tokenize_name('HTMLDListElement'), ['HTML', 'DList', 'Element']) self.assertEqual(tokenize_name('HTMLOListElement'), ['HTML', 'OList', 'Element']) self.assertEqual(tokenize_name('HTMLIFrameElement'), ['HTML', 'IFrame', 'Element']) self.assertEqual(tokenize_name('HTMLPlugInElement'), ['HTML', 'PlugIn', 'Element']) # No special handling for OptGroup, FieldSet, and TextArea. self.assertEqual(tokenize_name('HTMLOptGroupElement'), ['HTML', 'Opt', 'Group', 'Element']) self.assertEqual(tokenize_name('HTMLFieldSetElement'), ['HTML', 'Field', 'Set', 'Element']) self.assertEqual(tokenize_name('HTMLTextAreaElement'), ['HTML', 'Text', 'Area', 'Element']) self.assertEqual(tokenize_name('Path2D'), ['Path', '2D']) self.assertEqual(tokenize_name('Point2D'), ['Point', '2D']) self.assertEqual(tokenize_name('CanvasRenderingContext2DState'), ['Canvas', 'Rendering', 'Context', '2D', 'State']) self.assertEqual(tokenize_name('Accelerated2dCanvas'), ['Accelerated', '2d', 'Canvas']) self.assertEqual(tokenize_name('RTCDTMFSender'), ['RTC', 'DTMF', 'Sender']) self.assertEqual(tokenize_name('WebGLCompressedTextureS3TCsRGB'), ['WebGL', 'Compressed', 'Texture', 'S3TC', 'sRGB']) self.assertEqual(tokenize_name('WebGL2CompressedTextureETC1'), ['WebGL2', 'Compressed', 'Texture', 'ETC1']) self.assertEqual(tokenize_name('EXTsRGB'), ['EXT', 'sRGB']) # 'PVRTC' contains a special token 'RTC', but it should be a # single token. self.assertEqual(tokenize_name('WebGLCompressedTexturePVRTC'), ['WebGL', 'Compressed', 'Texture', 'PVRTC']) self.assertEqual(tokenize_name('SVGFEBlendElement'), ['SVG', 'FE', 'Blend', 'Element']) self.assertEqual(tokenize_name('SVGMPathElement'), ['SVG', 'MPath', 'Element']) self.assertEqual(tokenize_name('SVGTSpanElement'), ['SVG', 'TSpan', 'Element']) self.assertEqual(tokenize_name('SVGURIReference'), ['SVG', 'URI', 'Reference']) self.assertEqual(tokenize_name('UTF16TextIterator'), ['UTF16', 'Text', 'Iterator']) self.assertEqual(tokenize_name('UTF8Decoder'), ['UTF8', 'Decoder']) self.assertEqual(tokenize_name('Uint8Array'), ['Uint8', 'Array']) self.assertEqual(tokenize_name('DOMWindowBase64'), ['DOM', 'Window', 'Base64']) self.assertEqual(tokenize_name('TextCodecLatin1'), ['Text', 'Codec', 'Latin1']) self.assertEqual(tokenize_name('V8BindingForCore'), ['V8', 'Binding', 'For', 'Core']) self.assertEqual(tokenize_name('V8DOMRect'), ['V8', 'DOM', 'Rect']) self.assertEqual(tokenize_name('String16MojomTraits'), ['String16', 'Mojom', 'Traits']) self.assertEqual(tokenize_name('V0InsertionPoint'), ['V0', 'Insertion', 'Point']) self.assertEqual(tokenize_name('ShadowDOMV0Test'), ['Shadow', 'DOM', 'V0', 'Test']) self.assertEqual(tokenize_name('ElementShadowV0'), ['Element', 'Shadow', 'V0']) self.assertEqual(tokenize_name('StubChromeClientForSPv2'), ['Stub', 'Chrome', 'Client', 'For', 'SPv2']) self.assertEqual(tokenize_name('SQLiteAuthorizer'), ['SQLite', 'Authorizer']) self.assertEqual(tokenize_name('XPathEvaluator'), ['XPath', 'Evaluator']) self.assertEqual(tokenize_name('IsXHTMLDocument'), ['Is', 'XHTML', 'Document']) self.assertEqual(tokenize_name('isHTMLDocument'), ['is', 'HTML', 'Document']) self.assertEqual(tokenize_name('matrix3d'), ['matrix', '3d']) self.assertEqual(tokenize_name('uint8ArrayMember'), ['uint8', 'Array', 'Member']) self.assertEqual(tokenize_name('webgl2Element'), ['webgl2', 'Element']) self.assertEqual(tokenize_name('webGL2Element'), ['webGL2', 'Element']) self.assertEqual(tokenize_name('xssError'), ['xss', 'Error']) self.assertEqual(tokenize_name('FileURLs'), ['File', 'URLs'])
def test_ignoring_characters(self): self.assertEqual(tokenize_name('Animation.idl'), ['Animation', 'idl']) self.assertEqual(tokenize_name('-webkit-appearance'), ['webkit', 'appearance']) self.assertEqual(tokenize_name(' foo_bar!#"$'), ['foo', 'bar'])