| 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 '''Unit tests for grd_reader package''' | 6 '''Unit tests for grd_reader package''' |
| 7 | 7 |
| 8 import os | 8 import os |
| 9 import sys | 9 import sys |
| 10 if __name__ == '__main__': | 10 if __name__ == '__main__': |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 </release> | 91 </release> |
| 92 </grit>''' | 92 </grit>''' |
| 93 pseudo_file = StringIO.StringIO(input) | 93 pseudo_file = StringIO.StringIO(input) |
| 94 tree = grd_reader.Parse(pseudo_file, '.') | 94 tree = grd_reader.Parse(pseudo_file, '.') |
| 95 | 95 |
| 96 greeting = tree.GetNodeById('IDS_GREETING') | 96 greeting = tree.GetNodeById('IDS_GREETING') |
| 97 self.failUnless(greeting.GetCliques()[0].GetMessage().GetRealContent() == | 97 self.failUnless(greeting.GetCliques()[0].GetMessage().GetRealContent() == |
| 98 'This is a very long line with no linebreaks yes yes it ' | 98 'This is a very long line with no linebreaks yes yes it ' |
| 99 'stretches on and on and on!') | 99 'stretches on and on and on!') |
| 100 | 100 |
| 101 def testAssignFirstIds(self): | 101 def doTestAssignFirstIds(self, first_ids_path): |
| 102 input = u'''<?xml version="1.0" encoding="UTF-8"?> | 102 input = u'''<?xml version="1.0" encoding="UTF-8"?> |
| 103 <grit latest_public_release="2" source_lang_id="en-US" current_release="3" base_
dir="."> | 103 <grit latest_public_release="2" source_lang_id="en-US" current_release="3" |
| 104 base_dir="." first_ids_file="%s"> |
| 104 <release seq="3"> | 105 <release seq="3"> |
| 105 <messages> | 106 <messages> |
| 106 <message name="IDS_TEST" desc="test"> | 107 <message name="IDS_TEST" desc="test"> |
| 107 test | 108 test |
| 108 </message> | 109 </message> |
| 109 </messages> | 110 </messages> |
| 110 </release> | 111 </release> |
| 111 </grit>''' | 112 </grit>''' % first_ids_path |
| 112 pseudo_file = StringIO.StringIO(input) | 113 pseudo_file = StringIO.StringIO(input) |
| 113 root = grd_reader.Parse(pseudo_file, '.') | |
| 114 grit_root_dir = os.path.join(os.path.abspath(os.path.dirname(__file__)), | 114 grit_root_dir = os.path.join(os.path.abspath(os.path.dirname(__file__)), |
| 115 '..') | 115 '..') |
| 116 root.AssignFirstIds( | 116 fake_input_path = os.path.join( |
| 117 os.path.join(grit_root_dir, | 117 grit_root_dir, "grit/testdata/chrome/app/generated_resources.grd") |
| 118 "grit/testdata/chrome/app/generated_resources.grd"), | 118 root = grd_reader.Parse(pseudo_file, os.path.split(fake_input_path)[0]) |
| 119 os.path.join(grit_root_dir, "grit/testdata/tools/grit/resource_ids"), | 119 root.AssignFirstIds(fake_input_path, {}) |
| 120 {}) | |
| 121 messages_node = root.children[0].children[0] | 120 messages_node = root.children[0].children[0] |
| 122 self.failUnless(isinstance(messages_node, empty.MessagesNode)) | 121 self.failUnless(isinstance(messages_node, empty.MessagesNode)) |
| 123 self.failUnless(messages_node.attrs["first_id"] != | 122 self.failUnless(messages_node.attrs["first_id"] != |
| 124 empty.MessagesNode().DefaultAttributes()["first_id"]) | 123 empty.MessagesNode().DefaultAttributes()["first_id"]) |
| 125 | 124 |
| 125 def testAssignFirstIds(self): |
| 126 self.doTestAssignFirstIds("../../tools/grit/resource_ids") |
| 127 |
| 128 def testAssignFirstIdsUseGritDir(self): |
| 129 self.doTestAssignFirstIds("GRIT_DIR/grit/testdata/tools/grit/resource_ids") |
| 130 |
| 126 def testAssignFirstIdsMultipleMessages(self): | 131 def testAssignFirstIdsMultipleMessages(self): |
| 127 """If there are multiple messages sections, the resource_ids file | 132 """If there are multiple messages sections, the resource_ids file |
| 128 needs to list multiple first_id values.""" | 133 needs to list multiple first_id values.""" |
| 129 input = u'''<?xml version="1.0" encoding="UTF-8"?> | 134 input = u'''<?xml version="1.0" encoding="UTF-8"?> |
| 130 <grit latest_public_release="2" source_lang_id="en-US" current_release="3" base_
dir="."> | 135 <grit latest_public_release="2" source_lang_id="en-US" current_release="3" |
| 136 base_dir="." first_ids_file="resource_ids"> |
| 131 <release seq="3"> | 137 <release seq="3"> |
| 132 <messages> | 138 <messages> |
| 133 <message name="IDS_TEST" desc="test"> | 139 <message name="IDS_TEST" desc="test"> |
| 134 test | 140 test |
| 135 </message> | 141 </message> |
| 136 </messages> | 142 </messages> |
| 137 <messages> | 143 <messages> |
| 138 <message name="IDS_TEST2" desc="test"> | 144 <message name="IDS_TEST2" desc="test"> |
| 139 test2 | 145 test2 |
| 140 </message> | 146 </message> |
| 141 </messages> | 147 </messages> |
| 142 </release> | 148 </release> |
| 143 </grit>''' | 149 </grit>''' |
| 144 pseudo_file = StringIO.StringIO(input) | 150 pseudo_file = StringIO.StringIO(input) |
| 145 root = grd_reader.Parse(pseudo_file, '.') | |
| 146 grit_root_dir = os.path.join(os.path.abspath(os.path.dirname(__file__)), | 151 grit_root_dir = os.path.join(os.path.abspath(os.path.dirname(__file__)), |
| 147 '..') | 152 '..') |
| 148 root.AssignFirstIds( | 153 fake_input_path = os.path.join(grit_root_dir, "grit/testdata/test.grd") |
| 149 # This file does not actually exist, but must use absolute | 154 |
| 150 # path as resource_ids has '' for SRCDIR (see special handling | 155 root = grd_reader.Parse(pseudo_file, os.path.split(fake_input_path)[0]) |
| 151 # in grit.node.misc). | 156 root.AssignFirstIds(fake_input_path, {}) |
| 152 os.path.join(grit_root_dir, "grit/testdata/test.grd"), | |
| 153 os.path.join(grit_root_dir, "grit/testdata/resource_ids"), | |
| 154 {}) | |
| 155 messages_node = root.children[0].children[0] | 157 messages_node = root.children[0].children[0] |
| 156 self.assertTrue(isinstance(messages_node, empty.MessagesNode)) | 158 self.assertTrue(isinstance(messages_node, empty.MessagesNode)) |
| 157 self.assertEqual('100', messages_node.attrs["first_id"]) | 159 self.assertEqual('100', messages_node.attrs["first_id"]) |
| 158 messages_node = root.children[0].children[1] | 160 messages_node = root.children[0].children[1] |
| 159 self.assertTrue(isinstance(messages_node, empty.MessagesNode)) | 161 self.assertTrue(isinstance(messages_node, empty.MessagesNode)) |
| 160 self.assertEqual('10000', messages_node.attrs["first_id"]) | 162 self.assertEqual('10000', messages_node.attrs["first_id"]) |
| 161 | 163 |
| 162 def testUseNameForIdAndPpIfdef(self): | 164 def testUseNameForIdAndPpIfdef(self): |
| 163 input = u'''<?xml version="1.0" encoding="UTF-8"?> | 165 input = u'''<?xml version="1.0" encoding="UTF-8"?> |
| 164 <grit latest_public_release="2" source_lang_id="en-US" current_release="3" base_
dir="."> | 166 <grit latest_public_release="2" source_lang_id="en-US" current_release="3" base_
dir="."> |
| (...skipping 10 matching lines...) Expand all Loading... |
| 175 pseudo_file = StringIO.StringIO(input) | 177 pseudo_file = StringIO.StringIO(input) |
| 176 root = grd_reader.Parse(pseudo_file, '.', defines={'hello': '1'}) | 178 root = grd_reader.Parse(pseudo_file, '.', defines={'hello': '1'}) |
| 177 | 179 |
| 178 # Check if the ID is set to the name. In the past, there was a bug | 180 # Check if the ID is set to the name. In the past, there was a bug |
| 179 # that caused the ID to be a generated number. | 181 # that caused the ID to be a generated number. |
| 180 hello = root.GetNodeById('IDS_HELLO') | 182 hello = root.GetNodeById('IDS_HELLO') |
| 181 self.failUnless(hello.GetCliques()[0].GetId() == 'IDS_HELLO') | 183 self.failUnless(hello.GetCliques()[0].GetId() == 'IDS_HELLO') |
| 182 | 184 |
| 183 if __name__ == '__main__': | 185 if __name__ == '__main__': |
| 184 unittest.main() | 186 unittest.main() |
| OLD | NEW |