Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(31)

Side by Side Diff: third_party/WebKit/Source/bindings/scripts/name_style_converer_test.py

Issue 2684773003: [WebAgent API]: Implement name style handling. (Closed)
Patch Set: Feedback addressed. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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 })
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698