| Index: third_party/WebKit/Source/bindings/scripts/name_style_converer_test.py
|
| diff --git a/third_party/WebKit/Source/bindings/scripts/name_style_converer_test.py b/third_party/WebKit/Source/bindings/scripts/name_style_converer_test.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3018b32847e0ccadfddb29db363c5b66d110faa5
|
| --- /dev/null
|
| +++ b/third_party/WebKit/Source/bindings/scripts/name_style_converer_test.py
|
| @@ -0,0 +1,79 @@
|
| +# Copyright 2017 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +# pylint: disable=import-error,print-statement,relative-import,protected-access
|
| +
|
| +"""Unit tests for name_style_converter.py."""
|
| +
|
| +import unittest
|
| +
|
| +from name_style_converter import NameStyleConverter
|
| +from name_style_converter import SmartTokenizer
|
| +
|
| +
|
| +class SmartTokenizerTest(unittest.TestCase):
|
| + def test_simple_cases(self):
|
| + tokenizer = SmartTokenizer('foo')
|
| + self.assertEqual(tokenizer.tokenize(), ['foo'])
|
| +
|
| + tokenizer = SmartTokenizer('fooBar')
|
| + self.assertEqual(tokenizer.tokenize(), ['foo', 'Bar'])
|
| +
|
| + tokenizer = SmartTokenizer('fooBarBaz')
|
| + self.assertEqual(tokenizer.tokenize(), ['foo', 'Bar', 'Baz'])
|
| +
|
| + tokenizer = SmartTokenizer('Baz')
|
| + self.assertEqual(tokenizer.tokenize(), ['Baz'])
|
| +
|
| + tokenizer = SmartTokenizer('')
|
| + self.assertEqual(tokenizer.tokenize(), [])
|
| +
|
| + tokenizer = SmartTokenizer('FOO')
|
| + self.assertEqual(tokenizer.tokenize(), ['FOO'])
|
| +
|
| + tokenizer = SmartTokenizer('foo2')
|
| + self.assertEqual(tokenizer.tokenize(), ['foo', '2'])
|
| +
|
| + def test_tricky_cases(self):
|
| + tokenizer = SmartTokenizer('XMLHttpRequest')
|
| + self.assertEqual(tokenizer.tokenize(), ['XML', 'Http', 'Request'])
|
| +
|
| + tokenizer = SmartTokenizer('HTMLElement')
|
| + self.assertEqual(tokenizer.tokenize(), ['HTML', 'Element'])
|
| +
|
| + tokenizer = SmartTokenizer('WebGLRenderingContext')
|
| + self.assertEqual(tokenizer.tokenize(),
|
| + ['WebGL', 'Rendering', 'Context'])
|
| +
|
| + tokenizer = SmartTokenizer('CanvasRenderingContext2D')
|
| + self.assertEqual(tokenizer.tokenize(),
|
| + ['Canvas', 'Rendering', 'Context', '2D'])
|
| +
|
| + tokenizer = SmartTokenizer('SVGSVGElement')
|
| + self.assertEqual(tokenizer.tokenize(), ['SVG', 'SVG', 'Element'])
|
| +
|
| +
|
| +class NameStyleConverterTest(unittest.TestCase):
|
| + def test_hacker_case(self):
|
| + converter = NameStyleConverter('HTMLElement')
|
| + self.assertEqual(converter.to_hacker_case(), 'html_element')
|
| +
|
| + def test_pascal_case(self):
|
| + converter = NameStyleConverter('someSuperThing')
|
| + self.assertEqual(converter.to_pascal_case(), 'SomeSuperThing')
|
| +
|
| + converter = NameStyleConverter('SVGElement')
|
| + self.assertEqual(converter.to_pascal_case(), 'SVGElement')
|
| +
|
| + def test_macro_case(self):
|
| + converter = NameStyleConverter('WebGLBaz2D')
|
| + self.assertEqual(converter.to_macro_case(), 'WEBGL_BAZ_2D')
|
| +
|
| + def test_all_cases(self):
|
| + converter = NameStyleConverter('SVGScriptElement')
|
| + self.assertEqual(converter.to_all_cases(), {
|
| + 'hacker': 'svg_script_element',
|
| + 'pascal': 'SVGScriptElement',
|
| + 'macro': 'SVG_SCRIPT_ELEMENT',
|
| + })
|
|
|