Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(710)

Unified Diff: tools/grit/grit/node/io_unittest.py

Issue 1410853008: Move grit from DEPS into src. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: webview licenses Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/grit/grit/node/io.py ('k') | tools/grit/grit/node/mapping.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/grit/grit/node/io_unittest.py
diff --git a/tools/grit/grit/node/io_unittest.py b/tools/grit/grit/node/io_unittest.py
new file mode 100755
index 0000000000000000000000000000000000000000..7409b6796ddc7e73a2212db46b55a79e3330d1ed
--- /dev/null
+++ b/tools/grit/grit/node/io_unittest.py
@@ -0,0 +1,167 @@
+#!/usr/bin/env python
+# Copyright (c) 2012 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 io.FileNode'''
+
+import os
+import sys
+if __name__ == '__main__':
+ sys.path.append(os.path.join(os.path.dirname(__file__), '../..'))
+
+import os
+import StringIO
+import unittest
+
+from grit.node import misc
+from grit.node import io
+from grit.node import empty
+from grit import grd_reader
+from grit import util
+
+
+class FileNodeUnittest(unittest.TestCase):
+ def testGetPath(self):
+ root = misc.GritNode()
+ root.StartParsing(u'grit', None)
+ root.HandleAttribute(u'latest_public_release', u'0')
+ root.HandleAttribute(u'current_release', u'1')
+ root.HandleAttribute(u'base_dir', ur'..\resource')
+ translations = empty.TranslationsNode()
+ translations.StartParsing(u'translations', root)
+ root.AddChild(translations)
+ file_node = io.FileNode()
+ file_node.StartParsing(u'file', translations)
+ file_node.HandleAttribute(u'path', ur'flugel\kugel.pdf')
+ translations.AddChild(file_node)
+ root.EndParsing()
+
+ self.failUnless(root.ToRealPath(file_node.GetInputPath()) ==
+ util.normpath(
+ os.path.join(ur'../resource', ur'flugel/kugel.pdf')))
+
+ def VerifyCliquesContainEnglishAndFrenchAndNothingElse(self, cliques):
+ for clique in cliques:
+ self.failUnlessEquals(len(clique[0].clique), 2)
+ self.failUnless('en' in cliques[i][0].clique)
+ self.failUnless('fr' in cliques[i][0].clique)
+
+ def testLoadTranslations(self):
+ xml = '''<?xml version="1.0" encoding="UTF-8"?>
+ <grit latest_public_release="2" source_lang_id="en-US" current_release="3" base_dir=".">
+ <translations>
+ <file path="generated_resources_fr.xtb" lang="fr" />
+ </translations>
+ <release seq="3">
+ <messages>
+ <message name="ID_HELLO">Hello!</message>
+ <message name="ID_HELLO_USER">Hello <ph name="USERNAME">%s<ex>Joi</ex></ph></message>
+ </messages>
+ </release>
+ </grit>'''
+ grd = grd_reader.Parse(StringIO.StringIO(xml),
+ util.PathFromRoot('grit/testdata'))
+ grd.SetOutputLanguage('en')
+ grd.RunGatherers()
+ self.VerifyCliquesContainEnglishAndFrenchAndNothingElse(grd.GetCliques())
+
+ def testIffyness(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" base_dir=".">
+ <translations>
+ <if expr="lang == 'fr'">
+ <file path="generated_resources_fr.xtb" lang="fr" />
+ </if>
+ </translations>
+ <release seq="3">
+ <messages>
+ <message name="ID_HELLO">Hello!</message>
+ <message name="ID_HELLO_USER">Hello <ph name="USERNAME">%s<ex>Joi</ex></ph></message>
+ </messages>
+ </release>
+ </grit>'''), util.PathFromRoot('grit/testdata'))
+ grd.SetOutputLanguage('en')
+ grd.RunGatherers()
+
+ grd.SetOutputLanguage('fr')
+ grd.RunGatherers()
+
+ def testConditionalLoadTranslations(self):
+ xml = '''<?xml version="1.0" encoding="UTF-8"?>
+ <grit latest_public_release="2" source_lang_id="en-US" current_release="3"
+ base_dir=".">
+ <translations>
+ <if expr="True">
+ <file path="generated_resources_fr.xtb" lang="fr" />
+ </if>
+ <if expr="False">
+ <file path="no_such_file.xtb" lang="de" />
+ </if>
+ </translations>
+ <release seq="3">
+ <messages>
+ <message name="ID_HELLO">Hello!</message>
+ <message name="ID_HELLO_USER">Hello <ph name="USERNAME">%s<ex>
+ Joi</ex></ph></message>
+ </messages>
+ </release>
+ </grit>'''
+ grd = grd_reader.Parse(StringIO.StringIO(xml),
+ util.PathFromRoot('grit/testdata'))
+ grd.SetOutputLanguage('en')
+ grd.RunGatherers()
+ self.VerifyCliquesContainEnglishAndFrenchAndNothingElse(grd.GetCliques())
+
+ def testConditionalOutput(self):
+ xml = '''<?xml version="1.0" encoding="UTF-8"?>
+ <grit latest_public_release="2" source_lang_id="en-US" current_release="3"
+ base_dir=".">
+ <outputs>
+ <output filename="resource.h" type="rc_header" />
+ <output filename="en/generated_resources.rc" type="rc_all"
+ lang="en" />
+ <if expr="pp_if('NOT_TRUE')">
+ <output filename="de/generated_resources.rc" type="rc_all"
+ lang="de" />
+ </if>
+ </outputs>
+ <release seq="3">
+ <messages>
+ <message name="ID_HELLO">Hello!</message>
+ </messages>
+ </release>
+ </grit>'''
+ grd = grd_reader.Parse(StringIO.StringIO(xml),
+ util.PathFromRoot('grit/test/data'),
+ defines={})
+ grd.SetOutputLanguage('en')
+ grd.RunGatherers()
+ outputs = grd.GetChildrenOfType(io.OutputNode)
+ active = set(grd.ActiveDescendants())
+ self.failUnless(outputs[0] in active)
+ self.failUnless(outputs[0].GetType() == 'rc_header')
+ self.failUnless(outputs[1] in active)
+ self.failUnless(outputs[1].GetType() == 'rc_all')
+ self.failUnless(outputs[2] not in active)
+ self.failUnless(outputs[2].GetType() == 'rc_all')
+
+ # Verify that 'iw' and 'no' language codes in xtb files are mapped to 'he' and
+ # 'nb'.
+ def testLangCodeMapping(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" base_dir=".">
+ <translations>
+ <file path="generated_resources_no.xtb" lang="nb" />
+ <file path="generated_resources_iw.xtb" lang="he" />
+ </translations>
+ <release seq="3">
+ <messages></messages>
+ </release>
+ </grit>'''), util.PathFromRoot('grit/testdata'))
+ grd.SetOutputLanguage('en')
+ grd.RunGatherers()
+
+
+if __name__ == '__main__':
+ unittest.main()
« no previous file with comments | « tools/grit/grit/node/io.py ('k') | tools/grit/grit/node/mapping.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698