Index: tools/grit/grit/format/rc_header_unittest.py |
diff --git a/tools/grit/grit/format/rc_header_unittest.py b/tools/grit/grit/format/rc_header_unittest.py |
index 5d780e3e44a44c5f7f37c813b0f27f84a6152cb5..22c5f38f9e86a39c0111b90cc0fe98b713ac4982 100755 |
--- a/tools/grit/grit/format/rc_header_unittest.py |
+++ b/tools/grit/grit/format/rc_header_unittest.py |
@@ -10,6 +10,7 @@ |
import os |
import sys |
+import tempfile |
if __name__ == '__main__': |
sys.path.append(os.path.join(os.path.dirname(__file__), '../..')) |
@@ -27,6 +28,13 @@ class RcHeaderFormatterUnittest(unittest.TestCase): |
output = rc_header.FormatDefines(grd, grd.ShouldOutputAllResourceDefines()) |
return ''.join(output).replace(' ', '') |
+ def _MakeTempPredeterminedIdsFile(self, content): |
+ tmp_dir = tempfile.gettempdir() |
+ predetermined_ids_file = tmp_dir + "/predetermined_ids.txt" |
+ with open(predetermined_ids_file, 'w') as f: |
+ f.write(content) |
+ return predetermined_ids_file |
+ |
def testFormatter(self): |
grd = grd_reader.Parse(StringIO.StringIO('''<?xml version="1.0" encoding="UTF-8"?> |
<grit latest_public_release="2" source_lang_id="en" current_release="3" base_dir="."> |
@@ -189,5 +197,53 @@ class RcHeaderFormatterUnittest(unittest.TestCase): |
'#define IDS_BONGO _Pragma("IDS_BONGO") 10001\n'), |
''.join(output)) |
+ def testPredeterminedIds(self): |
+ predetermined_ids_file = self._MakeTempPredeterminedIdsFile( |
+ 'IDS_BONGO 101\nID_LOGO 102\n') |
+ grd = grd_reader.Parse(StringIO.StringIO('''<?xml version="1.0" encoding="UTF-8"?> |
+ <grit latest_public_release="2" source_lang_id="en" current_release="3" base_dir="."> |
+ <release seq="3"> |
+ <includes first_id="300" comment="bingo"> |
+ <include type="gif" name="ID_LOGO" file="images/logo.gif" /> |
+ </includes> |
+ <messages first_id="10000"> |
+ <message name="IDS_GREETING" desc="Printed to greet the currently logged in user"> |
+ Hello <ph name="USERNAME">%s<ex>Joi</ex></ph>, how are you doing today? |
+ </message> |
+ <message name="IDS_BONGO"> |
+ Bongo! |
+ </message> |
+ </messages> |
+ </release> |
+ </grit>'''), '.', predetermined_ids_file=predetermined_ids_file) |
+ output = rc_header.FormatDefines(grd, grd.ShouldOutputAllResourceDefines(), |
+ grd.GetRcHeaderFormat()) |
+ self.assertEqual(('#define ID_LOGO 102\n' |
+ '#define IDS_GREETING 10000\n' |
+ '#define IDS_BONGO 101\n'), ''.join(output)) |
+ |
+ def testPredeterminedIdsOverlap(self): |
+ predetermined_ids_file = self._MakeTempPredeterminedIdsFile( |
+ 'ID_LOGO 10000\n') |
+ grd = grd_reader.Parse(StringIO.StringIO('''<?xml version="1.0" encoding="UTF-8"?> |
+ <grit latest_public_release="2" source_lang_id="en" current_release="3" base_dir="."> |
+ <release seq="3"> |
+ <includes first_id="300" comment="bingo"> |
+ <include type="gif" name="ID_LOGO" file="images/logo.gif" /> |
+ </includes> |
+ <messages first_id="10000"> |
+ <message name="IDS_GREETING" desc="Printed to greet the currently logged in user"> |
+ Hello <ph name="USERNAME">%s<ex>Joi</ex></ph>, how are you doing today? |
+ </message> |
+ <message name="IDS_BONGO"> |
+ Bongo! |
+ </message> |
+ </messages> |
+ </release> |
+ </grit>'''), '.', predetermined_ids_file=predetermined_ids_file) |
+ output = rc_header.FormatDefines(grd, grd.ShouldOutputAllResourceDefines(), |
+ grd.GetRcHeaderFormat()) |
+ self.assertRaises(exception.IdRangeOverlap, self.FormatAll, grd) |
+ |
if __name__ == '__main__': |
unittest.main() |