| OLD | NEW |
| (Empty) | |
| 1 # Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. |
| 4 |
| 5 # pylint: disable=import-error,print-statement,relative-import,protected-access |
| 6 |
| 7 """Unit tests for name_style_converter.py.""" |
| 8 |
| 9 import unittest |
| 10 |
| 11 from name_style_converter import NameStyleConverter |
| 12 from name_style_converter import SmartTokenizer |
| 13 |
| 14 |
| 15 class SmartTokenizerTest(unittest.TestCase): |
| 16 def test_simple_cases(self): |
| 17 tokenizer = SmartTokenizer('foo') |
| 18 self.assertEqual(tokenizer.tokenize(), ['foo']) |
| 19 |
| 20 tokenizer = SmartTokenizer('fooBar') |
| 21 self.assertEqual(tokenizer.tokenize(), ['foo', 'Bar']) |
| 22 |
| 23 tokenizer = SmartTokenizer('fooBarBaz') |
| 24 self.assertEqual(tokenizer.tokenize(), ['foo', 'Bar', 'Baz']) |
| 25 |
| 26 tokenizer = SmartTokenizer('Baz') |
| 27 self.assertEqual(tokenizer.tokenize(), ['Baz']) |
| 28 |
| 29 tokenizer = SmartTokenizer('') |
| 30 self.assertEqual(tokenizer.tokenize(), []) |
| 31 |
| 32 tokenizer = SmartTokenizer('FOO') |
| 33 self.assertEqual(tokenizer.tokenize(), ['FOO']) |
| 34 |
| 35 tokenizer = SmartTokenizer('foo2') |
| 36 self.assertEqual(tokenizer.tokenize(), ['foo', '2']) |
| 37 |
| 38 def test_tricky_cases(self): |
| 39 tokenizer = SmartTokenizer('XMLHttpRequest') |
| 40 self.assertEqual(tokenizer.tokenize(), ['XML', 'Http', 'Request']) |
| 41 |
| 42 tokenizer = SmartTokenizer('HTMLElement') |
| 43 self.assertEqual(tokenizer.tokenize(), ['HTML', 'Element']) |
| 44 |
| 45 tokenizer = SmartTokenizer('WebGLRenderingContext') |
| 46 self.assertEqual(tokenizer.tokenize(), |
| 47 ['WebGL', 'Rendering', 'Context']) |
| 48 |
| 49 tokenizer = SmartTokenizer('CanvasRenderingContext2D') |
| 50 self.assertEqual(tokenizer.tokenize(), |
| 51 ['Canvas', 'Rendering', 'Context', '2D']) |
| 52 |
| 53 tokenizer = SmartTokenizer('SVGSVGElement') |
| 54 self.assertEqual(tokenizer.tokenize(), ['SVG', 'SVG', 'Element']) |
| 55 |
| 56 |
| 57 class NameStyleConverterTest(unittest.TestCase): |
| 58 def test_snake_case(self): |
| 59 converter = NameStyleConverter('HTMLElement') |
| 60 self.assertEqual(converter.to_snake_case(), 'html_element') |
| 61 |
| 62 def test_upper_camel_case(self): |
| 63 converter = NameStyleConverter('someSuperThing') |
| 64 self.assertEqual(converter.to_upper_camel_case(), 'SomeSuperThing') |
| 65 |
| 66 converter = NameStyleConverter('SVGElement') |
| 67 self.assertEqual(converter.to_upper_camel_case(), 'SVGElement') |
| 68 |
| 69 def test_macro_case(self): |
| 70 converter = NameStyleConverter('WebGLBaz2D') |
| 71 self.assertEqual(converter.to_macro_case(), 'WEBGL_BAZ_2D') |
| 72 |
| 73 def test_all_cases(self): |
| 74 converter = NameStyleConverter('SVGScriptElement') |
| 75 self.assertEqual(converter.to_all_cases(), { |
| 76 'snake_case': 'svg_script_element', |
| 77 'upper_camel_case': 'SVGScriptElement', |
| 78 'macro_case': 'SVG_SCRIPT_ELEMENT', |
| 79 }) |
| OLD | NEW |