| Index: grit/tool/postprocess_unittest.py
 | 
| ===================================================================
 | 
| --- grit/tool/postprocess_unittest.py	(revision 0)
 | 
| +++ grit/tool/postprocess_unittest.py	(revision 0)
 | 
| @@ -0,0 +1,63 @@
 | 
| +#!/usr/bin/python2.4
 | 
| +# Copyright (c) 2006-2008 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.
 | 
| +
 | 
| +'''Unit test that checks postprocessing of files.
 | 
| +   Tests postprocessing by having the postprocessor
 | 
| +   modify the grd data tree, changing the message name attributes.
 | 
| +'''
 | 
| +
 | 
| +import os
 | 
| +import re
 | 
| +import sys
 | 
| +if __name__ == '__main__':
 | 
| +  sys.path.append(os.path.join(os.path.dirname(sys.argv[0]), '..'))
 | 
| +
 | 
| +import unittest
 | 
| +
 | 
| +import grit.tool.postprocess_interface
 | 
| +from grit.tool import rc2grd
 | 
| +
 | 
| +
 | 
| +class PostProcessingUnittest(unittest.TestCase):
 | 
| +
 | 
| +  def testPostProcessing(self):
 | 
| +    rctext = '''STRINGTABLE
 | 
| +BEGIN
 | 
| +  DUMMY_STRING_1         "String 1"
 | 
| +  // Some random description
 | 
| +  DUMMY_STRING_2        "This text was added during preprocessing"
 | 
| +END
 | 
| +    '''
 | 
| +    tool = rc2grd.Rc2Grd()
 | 
| +    class DummyOpts(object):
 | 
| +      verbose = False
 | 
| +      extra_verbose = False
 | 
| +    tool.o = DummyOpts()
 | 
| +    tool.post_process = 'grit.tool.postprocess_unittest.DummyPostProcessor'
 | 
| +    result = tool.Process(rctext, '.\resource.rc')
 | 
| +
 | 
| +    self.failUnless(
 | 
| +      result.children[2].children[2].children[0].attrs['name'] == 'SMART_STRING_1')
 | 
| +    self.failUnless(
 | 
| +      result.children[2].children[2].children[1].attrs['name'] == 'SMART_STRING_2')
 | 
| +
 | 
| +class DummyPostProcessor(grit.tool.postprocess_interface.PostProcessor):
 | 
| +  '''
 | 
| +  Post processing replaces all message name attributes containing "DUMMY" to
 | 
| +  "SMART".
 | 
| +  '''
 | 
| +  def Process(self, rctext, rcpath, grdnode):
 | 
| +    smarter = re.compile(r'(DUMMY)(.*)')
 | 
| +    messages = grdnode.children[2].children[2]
 | 
| +    for node in messages.children:
 | 
| +      name_attr = node.attrs['name']
 | 
| +      m = smarter.search(name_attr)
 | 
| +      if m:
 | 
| +         node.attrs['name'] = 'SMART' + m.group(2)
 | 
| +    return grdnode
 | 
| +
 | 
| +if __name__ == '__main__':
 | 
| +  unittest.main()
 | 
| +
 | 
| 
 | 
| Property changes on: grit/tool/postprocess_unittest.py
 | 
| ___________________________________________________________________
 | 
| Added: svn:eol-style
 | 
|    + LF
 | 
| 
 | 
| 
 |