15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#!/usr/bin/env python 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Copyright (c) 2012 The Chromium Authors. All rights reserved. 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# found in the LICENSE file. 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import unittest 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)from cpp_util import ( 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Classname, CloseNamespace, GenerateIfndefName, OpenNamespace) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class CppUtilTest(unittest.TestCase): 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) def testClassname(self): 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) self.assertEquals('Permissions', Classname('permissions')) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) self.assertEquals('UpdateAllTheThings', 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Classname('updateAllTheThings')) 16868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) self.assertEquals('Aa_Bb_Cc', Classname('aa.bb.cc')) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) def testNamespaceDeclaration(self): 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) self.assertEquals('namespace foo {', 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OpenNamespace('foo').Render()) 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) self.assertEquals('} // namespace foo', 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) CloseNamespace('foo').Render()) 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) self.assertEquals( 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'namespace extensions {\n' 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'namespace foo {', 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OpenNamespace('extensions::foo').Render()) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) self.assertEquals( 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) '} // namespace foo\n' 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) '} // namespace extensions', 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) CloseNamespace('extensions::foo').Render()) 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) self.assertEquals( 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'namespace extensions {\n' 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'namespace gen {\n' 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 'namespace api {', 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) OpenNamespace('extensions::gen::api').Render()) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) self.assertEquals( 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) '} // namespace api\n' 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) '} // namespace gen\n' 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) '} // namespace extensions', 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CloseNamespace('extensions::gen::api').Render()) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) self.assertEquals( 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'namespace extensions {\n' 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'namespace gen {\n' 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 'namespace api {\n' 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'namespace foo {', 49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) OpenNamespace('extensions::gen::api::foo').Render()) 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) self.assertEquals( 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) '} // namespace foo\n' 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) '} // namespace api\n' 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) '} // namespace gen\n' 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) '} // namespace extensions', 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CloseNamespace('extensions::gen::api::foo').Render()) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) def testGenerateIfndefName(self): 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) self.assertEquals('FOO_BAR_BAZ_H__', GenerateIfndefName('foo\\bar\\baz.h')) 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) self.assertEquals('FOO_BAR_BAZ_H__', GenerateIfndefName('foo/bar/baz.h')) 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if __name__ == '__main__': 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unittest.main() 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)