| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """Unittest for chrome_messages_json.py. | 6 """Unittest for chrome_messages_json.py. |
| 7 """ | 7 """ |
| 8 | 8 |
| 9 import os | 9 import os |
| 10 import sys | 10 import sys |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 def testTranslations(self): | 101 def testTranslations(self): |
| 102 root = util.ParseGrdForUnittest(""" | 102 root = util.ParseGrdForUnittest(""" |
| 103 <messages> | 103 <messages> |
| 104 <message name="ID_HELLO">Hello!</message> | 104 <message name="ID_HELLO">Hello!</message> |
| 105 <message name="ID_HELLO_USER">Hello <ph name="USERNAME">%s<ex> | 105 <message name="ID_HELLO_USER">Hello <ph name="USERNAME">%s<ex> |
| 106 Joi</ex></ph></message> | 106 Joi</ex></ph></message> |
| 107 </messages> | 107 </messages> |
| 108 """) | 108 """) |
| 109 | 109 |
| 110 buf = StringIO.StringIO() | 110 buf = StringIO.StringIO() |
| 111 build.RcBuilder.ProcessNode(root, DummyOutput('chrome_messages_json', 'fr'), | 111 build.RcBuilder.ProcessNode(root, DummyOutput('chrome_messages_json', 'fr'),
buf) |
| 112 buf) | |
| 113 output = buf.getvalue() | 112 output = buf.getvalue() |
| 114 test = u""" | 113 test = u""" |
| 115 { | 114 { |
| 116 "ID_HELLO": { | 115 "ID_HELLO": { |
| 117 "message": "H\\u00e9P\\u00e9ll\\u00f4P\\u00f4!" | 116 "message": "H\\u00e9P\\u00e9ll\\u00f4P\\u00f4!" |
| 118 }, | 117 }, |
| 119 "ID_HELLO_USER": { | 118 "ID_HELLO_USER": { |
| 120 "message": "H\\u00e9P\\u00e9ll\\u00f4P\\u00f4 %s" | 119 "message": "H\\u00e9P\\u00e9ll\\u00f4P\\u00f4 %s" |
| 121 } | 120 } |
| 122 } | 121 } |
| 123 """ | 122 """ |
| 124 self.assertEqual(test.strip(), output.strip()) | 123 self.assertEqual(test.strip(), output.strip()) |
| 125 | |
| 126 def testSkipMissingTranslations(self): | |
| 127 grd = """<?xml version="1.0" encoding="UTF-8"?> | |
| 128 <grit latest_public_release="2" current_release="3" source_lang_id="en" | |
| 129 base_dir="%s"> | |
| 130 <outputs> | |
| 131 </outputs> | |
| 132 <release seq="3" allow_pseudo="False"> | |
| 133 <messages fallback_to_english="true"> | |
| 134 <message name="ID_HELLO_NO_TRANSLATION">Hello not translated</message> | |
| 135 </messages> | |
| 136 </release> | |
| 137 </grit>""" | |
| 138 root = grd_reader.Parse(StringIO.StringIO(grd), dir=".") | |
| 139 | |
| 140 buf = StringIO.StringIO() | |
| 141 build.RcBuilder.ProcessNode(root, DummyOutput('chrome_messages_json', 'fr'), | |
| 142 buf) | |
| 143 output = buf.getvalue() | |
| 144 test = u""" | |
| 145 { | |
| 146 | |
| 147 } | |
| 148 """ | |
| 149 self.assertEqual(test.strip(), output.strip()) | |
| 150 | 124 |
| 151 | 125 |
| 152 class DummyOutput(object): | 126 class DummyOutput(object): |
| 153 | 127 |
| 154 def __init__(self, type, language): | 128 def __init__(self, type, language): |
| 155 self.type = type | 129 self.type = type |
| 156 self.language = language | 130 self.language = language |
| 157 | 131 |
| 158 def GetType(self): | 132 def GetType(self): |
| 159 return self.type | 133 return self.type |
| 160 | 134 |
| 161 def GetLanguage(self): | 135 def GetLanguage(self): |
| 162 return self.language | 136 return self.language |
| 163 | 137 |
| 164 def GetOutputFilename(self): | 138 def GetOutputFilename(self): |
| 165 return 'hello.gif' | 139 return 'hello.gif' |
| 166 | 140 |
| 167 | 141 |
| 168 if __name__ == '__main__': | 142 if __name__ == '__main__': |
| 169 unittest.main() | 143 unittest.main() |
| OLD | NEW |