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

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

Issue 3155033: Add support for if nodes in outputs nodes of grd files (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: nits Created 10 years, 4 months 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/misc.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/grit/grit/node/misc_unittest.py
diff --git a/tools/grit/grit/node/misc_unittest.py b/tools/grit/grit/node/misc_unittest.py
index b7ee4def3ef821818728d699fbe640e688230f33..1adc632dd5e4b1d0b3b1e25892545e7ffc525c27 100644
--- a/tools/grit/grit/node/misc_unittest.py
+++ b/tools/grit/grit/node/misc_unittest.py
@@ -59,9 +59,9 @@ class IfNodeUnittest(unittest.TestCase):
bingo_message = messages_node.children[0].children[0]
hello_message = messages_node.children[1].children[0]
french_message = messages_node.children[2].children[0]
- assert bingo_message.name == 'message'
- assert hello_message.name == 'message'
- assert french_message.name == 'message'
+ self.assertTrue(bingo_message.name == 'message')
+ self.assertTrue(hello_message.name == 'message')
+ self.assertTrue(french_message.name == 'message')
grd.SetOutputContext('fr', {'hello' : '1'})
self.failUnless(not bingo_message.SatisfiesOutputCondition())
@@ -78,6 +78,60 @@ class IfNodeUnittest(unittest.TestCase):
self.failUnless(not hello_message.SatisfiesOutputCondition())
self.failUnless(french_message.SatisfiesOutputCondition())
+ def testIffynessWithOutputNodes(self):
+ grd = grd_reader.Parse(StringIO.StringIO('''
+ <grit latest_public_release="2" source_lang_id="en-US" current_release="3" base_dir=".">
+ <outputs>
+ <output filename="uncond1.rc" type="rc_data" />
+ <if expr="lang == 'fr' or 'hello' in defs">
+ <output filename="only_fr.adm" type="adm" />
+ <output filename="only_fr.plist" type="plist" />
+ </if>
+ <if expr="lang == 'ru'">
+ <output filename="doc.html" type="document" />
+ </if>
+ <output filename="uncond2.adm" type="adm" />
+ </outputs>
+ </grit>'''), dir='.')
+
+ outputs_node = grd.children[0]
+ uncond1_output = outputs_node.children[0]
+ only_fr_adm_output = outputs_node.children[1].children[0]
+ only_fr_plist_output = outputs_node.children[1].children[1]
+ doc_output = outputs_node.children[2].children[0]
+ uncond2_output = outputs_node.children[0]
+ self.assertTrue(uncond1_output.name == 'output')
+ self.assertTrue(only_fr_adm_output.name == 'output')
+ self.assertTrue(only_fr_plist_output.name == 'output')
+ self.assertTrue(doc_output.name == 'output')
+ self.assertTrue(uncond2_output.name == 'output')
+
+ grd.SetOutputContext('ru', {'hello' : '1'})
+ outputs = [output.GetFilename() for output in grd.GetOutputFiles()]
+ self.assertEquals(
+ outputs,
+ ['uncond1.rc', 'only_fr.adm', 'only_fr.plist', 'doc.html',
+ 'uncond2.adm'])
+
+ grd.SetOutputContext('ru', {'bingo': '2'})
+ outputs = [output.GetFilename() for output in grd.GetOutputFiles()]
+ self.assertEquals(
+ outputs,
+ ['uncond1.rc', 'doc.html', 'uncond2.adm'])
+
+ grd.SetOutputContext('fr', {'hello': '1'})
+ outputs = [output.GetFilename() for output in grd.GetOutputFiles()]
+ self.assertEquals(
+ outputs,
+ ['uncond1.rc', 'only_fr.adm', 'only_fr.plist', 'uncond2.adm'])
+
+ grd.SetOutputContext('en', {'bingo': '1'})
+ outputs = [output.GetFilename() for output in grd.GetOutputFiles()]
+ self.assertEquals(outputs, ['uncond1.rc', 'uncond2.adm'])
+
+ grd.SetOutputContext('fr', {'bingo': '1'})
+ outputs = [output.GetFilename() for output in grd.GetOutputFiles()]
+ self.assertNotEquals(outputs, ['uncond1.rc', 'uncond2.adm'])
class ReleaseNodeUnittest(unittest.TestCase):
def testPseudoControl(self):
« no previous file with comments | « tools/grit/grit/node/misc.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698