| Index: grit/gather/admin_template_unittest.py
|
| ===================================================================
|
| --- grit/gather/admin_template_unittest.py (revision 0)
|
| +++ grit/gather/admin_template_unittest.py (revision 0)
|
| @@ -0,0 +1,116 @@
|
| +#!/usr/bin/python2.4
|
| +# Copyright (c) 2011 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 tests for the admin template gatherer.'''
|
| +
|
| +import os
|
| +import sys
|
| +if __name__ == '__main__':
|
| + sys.path.append(os.path.join(os.path.dirname(sys.argv[0]), '../..'))
|
| +
|
| +import StringIO
|
| +import tempfile
|
| +import unittest
|
| +
|
| +from grit.gather import admin_template
|
| +from grit import util
|
| +from grit import grd_reader
|
| +from grit import grit_runner
|
| +from grit.tool import build
|
| +
|
| +
|
| +class AdmGathererUnittest(unittest.TestCase):
|
| + def testParsingAndTranslating(self):
|
| + pseudofile = StringIO.StringIO(
|
| + 'bingo bongo\n'
|
| + 'ding dong\n'
|
| + '[strings] \n'
|
| + 'whatcha="bingo bongo"\n'
|
| + 'gotcha = "bingolabongola "the wise" fingulafongula" \n')
|
| + gatherer = admin_template.AdmGatherer.FromFile(pseudofile)
|
| + gatherer.Parse()
|
| + self.failUnless(len(gatherer.GetCliques()) == 2)
|
| + self.failUnless(gatherer.GetCliques()[1].GetMessage().GetRealContent() ==
|
| + 'bingolabongola "the wise" fingulafongula')
|
| +
|
| + translation = gatherer.Translate('en')
|
| + self.failUnless(translation == gatherer.GetText().strip())
|
| +
|
| + def testErrorHandling(self):
|
| + pseudofile = StringIO.StringIO(
|
| + 'bingo bongo\n'
|
| + 'ding dong\n'
|
| + 'whatcha="bingo bongo"\n'
|
| + 'gotcha = "bingolabongola "the wise" fingulafongula" \n')
|
| + gatherer = admin_template.AdmGatherer.FromFile(pseudofile)
|
| + self.assertRaises(admin_template.MalformedAdminTemplateException,
|
| + gatherer.Parse)
|
| +
|
| + _TRANSLATABLES_FROM_FILE = (
|
| + 'Google', 'Google Desktop', 'Preferences',
|
| + 'Controls Google Desktop preferences',
|
| + 'Indexing and Capture Control',
|
| + 'Controls what files, web pages, and other content will be indexed by Google Desktop.',
|
| + 'Prevent indexing of email',
|
| + # there are lots more but we don't check any further
|
| + )
|
| +
|
| + def VerifyCliquesFromAdmFile(self, cliques):
|
| + self.failUnless(len(cliques) > 20)
|
| + for ix in range(len(self._TRANSLATABLES_FROM_FILE)):
|
| + text = cliques[ix].GetMessage().GetRealContent()
|
| + self.failUnless(text == self._TRANSLATABLES_FROM_FILE[ix])
|
| +
|
| + def testFromFile(self):
|
| + fname = util.PathFromRoot('grit/testdata/GoogleDesktop.adm')
|
| + gatherer = admin_template.AdmGatherer.FromFile(fname)
|
| + gatherer.Parse()
|
| + cliques = gatherer.GetCliques()
|
| + self.VerifyCliquesFromAdmFile(cliques)
|
| +
|
| + def MakeGrd(self):
|
| + grd = grd_reader.Parse(StringIO.StringIO('''<?xml version="1.0" encoding="UTF-8"?>
|
| + <grit latest_public_release="2" source_lang_id="en-US" current_release="3">
|
| + <release seq="3">
|
| + <structures>
|
| + <structure type="admin_template" name="IDAT_GOOGLE_DESKTOP_SEARCH"
|
| + file="GoogleDesktop.adm" exclude_from_rc="true" />
|
| + <structure type="txt" name="BINGOBONGO"
|
| + file="README.txt" exclude_from_rc="true" />
|
| + </structures>
|
| + </release>
|
| + <outputs>
|
| + <output filename="de_res.rc" type="rc_all" lang="de" />
|
| + </outputs>
|
| + </grit>'''), util.PathFromRoot('grit/testdata'))
|
| + grd.RunGatherers(recursive=True)
|
| + return grd
|
| +
|
| + def testInGrd(self):
|
| + grd = self.MakeGrd()
|
| + cliques = grd.children[0].children[0].children[0].GetCliques()
|
| + self.VerifyCliquesFromAdmFile(cliques)
|
| +
|
| + def testFileIsOutput(self):
|
| + grd = self.MakeGrd()
|
| + dirname = tempfile.mkdtemp()
|
| + try:
|
| + tool = build.RcBuilder()
|
| + tool.o = grit_runner.Options()
|
| + tool.output_directory = dirname
|
| + tool.res = grd
|
| + tool.Process()
|
| +
|
| + self.failUnless(os.path.isfile(
|
| + os.path.join(dirname, 'de_GoogleDesktop.adm')))
|
| + self.failUnless(os.path.isfile(
|
| + os.path.join(dirname, 'de_README.txt')))
|
| + finally:
|
| + for f in os.listdir(dirname):
|
| + os.unlink(os.path.join(dirname, f))
|
| + os.rmdir(dirname)
|
| +
|
| +if __name__ == '__main__':
|
| + unittest.main()
|
|
|
| Property changes on: grit/gather/admin_template_unittest.py
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|