diff options
Diffstat (limited to 'tools/grit/grit/format/c_format_unittest.py')
-rwxr-xr-x | tools/grit/grit/format/c_format_unittest.py | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/tools/grit/grit/format/c_format_unittest.py b/tools/grit/grit/format/c_format_unittest.py new file mode 100755 index 0000000..ba1c5c7 --- /dev/null +++ b/tools/grit/grit/format/c_format_unittest.py @@ -0,0 +1,78 @@ +#!/usr/bin/env python +# Copyright (c) 2012 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. + +"""Unittest for c_format.py. +""" + +import os +import sys +if __name__ == '__main__': + sys.path.append(os.path.join(os.path.dirname(__file__), '../..')) + +import unittest +import StringIO + +from grit import util +from grit.tool import build + + +class CFormatUnittest(unittest.TestCase): + + def testMessages(self): + root = util.ParseGrdForUnittest(""" + <messages> + <message name="IDS_QUESTIONS">Do you want to play questions?</message> + <message name="IDS_QUOTES"> + "What's in a name, <ph name="NAME">%s<ex>Brandon</ex></ph>?" + </message> + <message name="IDS_LINE_BREAKS"> + Was that rhetoric? +No. +Statement. Two all. Game point. +</message> + <message name="IDS_NON_ASCII"> + \xc3\xb5\\xc2\\xa4\\\xc2\xa4\\\\xc3\\xb5\xe4\xa4\xa4 + </message> + </messages> + """) + + buf = StringIO.StringIO() + build.RcBuilder.ProcessNode(root, DummyOutput('c_format', 'en'), buf) + output = util.StripBlankLinesAndComments(buf.getvalue()) + self.assertEqual(u"""\ +#include "resource.h" +const char* GetString(int id) { + switch (id) { + case IDS_QUESTIONS: + return "Do you want to play questions?"; + case IDS_QUOTES: + return "\\"What\\'s in a name, %s?\\""; + case IDS_LINE_BREAKS: + return "Was that rhetoric?\\nNo.\\nStatement. Two all. Game point."; + case IDS_NON_ASCII: + return "\\303\\265\\xc2\\xa4\\\\302\\244\\\\xc3\\xb5\\344\\244\\244"; + default: + return 0; + } +}""", output) + + +class DummyOutput(object): + + def __init__(self, type, language): + self.type = type + self.language = language + + def GetType(self): + return self.type + + def GetLanguage(self): + return self.language + + def GetOutputFilename(self): + return 'hello.gif' + +if __name__ == '__main__': + unittest.main() |