summaryrefslogtreecommitdiff
path: root/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py
diff options
context:
space:
mode:
Diffstat (limited to 'utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py')
-rw-r--r--utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py
new file mode 100644
index 00000000..32c884a8
--- /dev/null
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py
@@ -0,0 +1,74 @@
+# Copyright 2014 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.
+
+import imp
+import os.path
+import sys
+import unittest
+
+
+def _GetDirAbove(dirname):
+ """Returns the directory "above" this file containing |dirname| (which must
+ also be "above" this file)."""
+ path = os.path.abspath(__file__)
+ while True:
+ path, tail = os.path.split(path)
+ assert tail
+ if tail == dirname:
+ return path
+
+
+try:
+ imp.find_module("mojom")
+except ImportError:
+ sys.path.append(os.path.join(_GetDirAbove("pylib"), "pylib"))
+from mojom.generate import generator
+
+
+class StringManipulationTest(unittest.TestCase):
+ """generator contains some string utilities, this tests only those."""
+
+ def testSplitCamelCase(self):
+ self.assertEquals(["camel", "case"], generator.SplitCamelCase("CamelCase"))
+ self.assertEquals(["url", "loader", "factory"],
+ generator.SplitCamelCase('URLLoaderFactory'))
+ self.assertEquals(["get99", "entries"],
+ generator.SplitCamelCase('Get99Entries'))
+ self.assertEquals(["get99entries"],
+ generator.SplitCamelCase('Get99entries'))
+
+ def testToCamel(self):
+ self.assertEquals("CamelCase", generator.ToCamel("camel_case"))
+ self.assertEquals("CAMELCASE", generator.ToCamel("CAMEL_CASE"))
+ self.assertEquals("camelCase",
+ generator.ToCamel("camel_case", lower_initial=True))
+ self.assertEquals("CamelCase", generator.ToCamel(
+ "camel case", delimiter=' '))
+ self.assertEquals("CaMelCaSe", generator.ToCamel("caMel_caSe"))
+ self.assertEquals("L2Tp", generator.ToCamel("l2tp", digits_split=True))
+ self.assertEquals("l2tp", generator.ToCamel("l2tp", lower_initial=True))
+
+ def testToSnakeCase(self):
+ self.assertEquals("snake_case", generator.ToLowerSnakeCase("SnakeCase"))
+ self.assertEquals("snake_case", generator.ToLowerSnakeCase("snakeCase"))
+ self.assertEquals("snake_case", generator.ToLowerSnakeCase("SnakeCASE"))
+ self.assertEquals("snake_d3d11_case",
+ generator.ToLowerSnakeCase("SnakeD3D11Case"))
+ self.assertEquals("snake_d3d11_case",
+ generator.ToLowerSnakeCase("SnakeD3d11Case"))
+ self.assertEquals("snake_d3d11_case",
+ generator.ToLowerSnakeCase("snakeD3d11Case"))
+ self.assertEquals("SNAKE_CASE", generator.ToUpperSnakeCase("SnakeCase"))
+ self.assertEquals("SNAKE_CASE", generator.ToUpperSnakeCase("snakeCase"))
+ self.assertEquals("SNAKE_CASE", generator.ToUpperSnakeCase("SnakeCASE"))
+ self.assertEquals("SNAKE_D3D11_CASE",
+ generator.ToUpperSnakeCase("SnakeD3D11Case"))
+ self.assertEquals("SNAKE_D3D11_CASE",
+ generator.ToUpperSnakeCase("SnakeD3d11Case"))
+ self.assertEquals("SNAKE_D3D11_CASE",
+ generator.ToUpperSnakeCase("snakeD3d11Case"))
+
+
+if __name__ == "__main__":
+ unittest.main()