Index: grit/format/js_map_format_unittest.py |
=================================================================== |
--- grit/format/js_map_format_unittest.py (revision 0) |
+++ grit/format/js_map_format_unittest.py (revision 0) |
@@ -0,0 +1,98 @@ |
+#!/usr/bin/python2.4 |
+# |
+# Copyright (c) 2009 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 js_map_format.py. |
+""" |
+ |
+import os |
+import re |
+import sys |
+if __name__ == '__main__': |
+ sys.path.append(os.path.join(os.path.dirname(sys.argv[0]), '../..')) |
+ |
+import unittest |
+import StringIO |
+ |
+from grit import grd_reader |
+from grit import util |
+from grit.tool import build |
+ |
+ |
+class JsMapFormatUnittest(unittest.TestCase): |
+ |
+ def testMessages(self): |
+ grd_text = u""" |
+ <messages> |
+ <message name="IDS_SIMPLE_MESSAGE"> |
+ Simple message. |
+ </message> |
+ <message name="IDS_QUOTES"> |
+ element\u2019s \u201c<ph name="NAME">%s<ex>name</ex></ph>\u201d attribute |
+ </message> |
+ <message name="IDS_PLACEHOLDERS"> |
+ <ph name="ERROR_COUNT">%1$d<ex>1</ex></ph> error, <ph name="WARNING_COUNT">%2$d<ex>1</ex></ph> warning |
+ </message> |
+ <message name="IDS_STARTS_WITH_SPACE"> |
+ ''' (<ph name="COUNT">%d<ex>2</ex></ph>) |
+ </message> |
+ <message name="IDS_DOUBLE_QUOTES"> |
+ A "double quoted" message. |
+ </message> |
+ </messages> |
+ """ |
+ root = grd_reader.Parse(StringIO.StringIO(grd_text.encode('utf-8')), |
+ flexible_root=True) |
+ util.FixRootForUnittest(root) |
+ |
+ buf = StringIO.StringIO() |
+ build.RcBuilder.ProcessNode(root, DummyOutput('js_map_format', 'en'), buf) |
+ output = buf.getvalue() |
+ test = u""" |
+localizedStrings["Simple message."] = "Simple message."; |
+localizedStrings["element\u2019s \u201c%s\u201d attribute"] = "element\u2019s \u201c%s\u201d attribute"; |
+localizedStrings["%d error, %d warning"] = "%1$d error, %2$d warning"; |
+localizedStrings[" (%d)"] = " (%d)"; |
+localizedStrings["A \\\"double quoted\\\" message."] = "A \\\"double quoted\\\" message."; |
+""" |
+ self.failUnless(output.strip() == test.strip()) |
+ |
+ def testTranslations(self): |
+ root = grd_reader.Parse(StringIO.StringIO(""" |
+ <messages> |
+ <message name="ID_HELLO">Hello!</message> |
+ <message name="ID_HELLO_USER">Hello <ph name="USERNAME">%s<ex> |
+ Joi</ex></ph></message> |
+ </messages> |
+ """), flexible_root=True) |
+ util.FixRootForUnittest(root) |
+ |
+ buf = StringIO.StringIO() |
+ build.RcBuilder.ProcessNode(root, DummyOutput('js_map_format', 'fr'), buf) |
+ output = buf.getvalue() |
+ test = u""" |
+localizedStrings["Hello!"] = "H\xe9P\xe9ll\xf4P\xf4!"; |
+localizedStrings["Hello %s"] = "H\xe9P\xe9ll\xf4P\xf4 %s"; |
+""" |
+ self.failUnless(output.strip() == test.strip()) |
+ |
+ |
+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() |
Property changes on: grit/format/js_map_format_unittest.py |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |