Chromium Code Reviews| Index: grit/tool/build_unittest.py |
| diff --git a/grit/tool/build_unittest.py b/grit/tool/build_unittest.py |
| index debe4d4c5312c043a29fd6cb8d2818354c26db8a..f9a137ff7a2c95c286f4b28d53f093285f0676f9 100644 |
| --- a/grit/tool/build_unittest.py |
| +++ b/grit/tool/build_unittest.py |
| @@ -6,6 +6,7 @@ |
| '''Unit tests for the 'grit build' tool. |
| ''' |
| +import codecs |
| import os |
| import sys |
| import tempfile |
| @@ -85,5 +86,63 @@ class BuildUnittest(unittest.TestCase): |
| '-a', os.path.abspath( |
| os.path.join(output_dir, 'resource.h'))])) |
| + def _verifyWhitelistedOutput(self, |
| + filename, |
| + whitelisted_ids, |
| + non_whitelisted_ids, |
| + encoding='utf8'): |
| + self.failUnless(os.path.exists(filename)) |
| + whitelisted_ids_found = [] |
| + non_whitelisted_ids_found = [] |
| + with codecs.open(filename, encoding=encoding) as f: |
| + for line in f.readlines(): |
| + for whitelisted_id in whitelisted_ids: |
| + if whitelisted_id in line: |
| + whitelisted_ids_found.append(whitelisted_id) |
| + for non_whitelisted_id in non_whitelisted_ids: |
| + if non_whitelisted_id in line: |
| + non_whitelisted_ids_found.append(non_whitelisted_id) |
| + self.longMessage = True |
| + self.assertEqual(whitelisted_ids, |
| + whitelisted_ids_found, |
| + '\nin file {}'.format(os.path.basename(filename))) |
| + non_whitelisted_msg = ('Non-Whitelisted IDs {} found in {}' |
| + .format(non_whitelisted_ids_found, os.path.basename(filename))) |
| + self.assertFalse(non_whitelisted_ids_found, non_whitelisted_msg) |
| + |
| + def testOutputAllResourceDefinesTrue(self): |
| + output_dir = tempfile.mkdtemp() |
| + builder = build.RcBuilder() |
| + class DummyOpts(object): |
| + def __init__(self): |
| + self.input = util.PathFromRoot('grit/testdata/whitelist_resources.grd') |
|
newt (away)
2014/10/30 20:16:21
whitelist_resources.grd and whitelist.txt don't se
lliabraa
2014/10/31 11:33:13
Done.
|
| + self.verbose = False |
| + self.extra_verbose = False |
| + whitelist_file = util.PathFromRoot('grit/testdata/whitelist.txt') |
| + builder.Run(DummyOpts(), ['-o', output_dir, |
| + '-w', whitelist_file, |
| + '--output-all-resource-defines',]) |
| + header = os.path.join(output_dir, 'whitelist_test_resources.h') |
| + map_cc = os.path.join(output_dir, 'whitelist_test_resources_map.cc') |
| + |
| + whitelisted_ids = [ |
| + 'IDR_STRUCTURE_WHITELISTED', |
| + 'IDR_STRUCTURE_NOT_WHITELISTED', |
| + 'IDR_STRUCTURE_IN_TRUE_IF_WHITELISTED', |
| + 'IDR_STRUCTURE_IN_TRUE_IF_NOT_WHITELISTED', |
| + 'IDR_STRUCTURE_IN_FALSE_IF_WHITELISTED', |
| + 'IDR_STRUCTURE_IN_FALSE_IF_NOT_WHITELISTED', |
| + 'IDR_INCLUDE_WHITELISTED', |
| + 'IDR_INCLUDE_NOT_WHITELISTED', |
| + ] |
| + non_whitelisted_ids = [] |
|
newt (away)
2014/10/30 20:16:20
wouldn't it be more useful if this list were non-e
lliabraa
2014/10/31 11:33:13
This test case covers output_all_resource_defines=
|
| + for output_file in (header, map_cc): |
| + self._verifyWhitelistedOutput( |
| + output_file, |
| + whitelisted_ids, |
| + non_whitelisted_ids, |
| + ) |
| + |
| + |
| if __name__ == '__main__': |
| unittest.main() |