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

Side by Side Diff: grit/node/misc_unittest.py

Issue 11155024: If-then-else support for GRIT (Closed) Base URL: https://grit-i18n.googlecode.com/svn/trunk
Patch Set: Created 8 years, 2 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 '''Unit tests for misc.GritNode''' 6 '''Unit tests for misc.GritNode'''
7 7
8 8
9 import os 9 import os
10 import sys 10 import sys
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 self.failUnless(hello_message not in active) 94 self.failUnless(hello_message not in active)
95 self.failUnless(french_message not in active) 95 self.failUnless(french_message not in active)
96 96
97 grd.SetOutputLanguage('en') 97 grd.SetOutputLanguage('en')
98 grd.SetDefines({'FORCE_FRENCH': '1', 'bingo': '1'}) 98 grd.SetDefines({'FORCE_FRENCH': '1', 'bingo': '1'})
99 active = set(grd.ActiveDescendants()) 99 active = set(grd.ActiveDescendants())
100 self.failUnless(bingo_message in active) 100 self.failUnless(bingo_message in active)
101 self.failUnless(hello_message not in active) 101 self.failUnless(hello_message not in active)
102 self.failUnless(french_message in active) 102 self.failUnless(french_message in active)
103 103
104 def testElsiness(self):
105 grd = util.ParseGrdForUnittest('''
106 <messages>
107 <if expr="True">
108 <then> <message name="IDS_YES1"></message> </then>
109 <else> <message name="IDS_NO1"></message> </else>
110 </if>
111 <if expr="True">
112 <then> <message name="IDS_YES2"></message> </then>
113 <else> </else>
114 </if>
115 <if expr="True">
116 <then> </then>
117 <else> <message name="IDS_NO2"></message> </else>
118 </if>
119 <if expr="True">
120 <then> </then>
121 <else> </else>
122 </if>
123 <if expr="False">
124 <then> <message name="IDS_NO3"></message> </then>
125 <else> <message name="IDS_YES3"></message> </else>
126 </if>
127 <if expr="False">
128 <then> <message name="IDS_NO4"></message> </then>
129 <else> </else>
130 </if>
131 <if expr="False">
132 <then> </then>
133 <else> <message name="IDS_YES4"></message> </else>
134 </if>
135 <if expr="False">
136 <then> </then>
137 <else> </else>
138 </if>
139 </messages>''')
140 included = [msg.attrs['name'] for msg in grd.ActiveDescendants()
141 if msg.name == 'message']
142 self.assertEqual(['IDS_YES1', 'IDS_YES2', 'IDS_YES3', 'IDS_YES4'], included)
143
104 def testIffynessWithOutputNodes(self): 144 def testIffynessWithOutputNodes(self):
105 grd = grd_reader.Parse(StringIO.StringIO(''' 145 grd = grd_reader.Parse(StringIO.StringIO('''
106 <grit latest_public_release="2" source_lang_id="en-US" current_release="3" base_dir="."> 146 <grit latest_public_release="2" source_lang_id="en-US" current_release="3" base_dir=".">
107 <outputs> 147 <outputs>
108 <output filename="uncond1.rc" type="rc_data" /> 148 <output filename="uncond1.rc" type="rc_data" />
109 <if expr="lang == 'fr' or 'hello' in defs"> 149 <if expr="lang == 'fr' or 'hello' in defs">
110 <output filename="only_fr.adm" type="adm" /> 150 <output filename="only_fr.adm" type="adm" />
111 <output filename="only_fr.plist" type="plist" /> 151 <output filename="only_fr.plist" type="plist" />
112 </if> 152 </if>
113 <if expr="lang == 'ru'"> 153 <if expr="lang == 'ru'">
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 grd.SetOutputLanguage('en') 198 grd.SetOutputLanguage('en')
159 grd.SetDefines({'bingo': '1'}) 199 grd.SetDefines({'bingo': '1'})
160 outputs = [output.GetFilename() for output in grd.GetOutputFiles()] 200 outputs = [output.GetFilename() for output in grd.GetOutputFiles()]
161 self.assertEquals(outputs, ['uncond1.rc', 'uncond2.adm', 'iftest.h']) 201 self.assertEquals(outputs, ['uncond1.rc', 'uncond2.adm', 'iftest.h'])
162 202
163 grd.SetOutputLanguage('fr') 203 grd.SetOutputLanguage('fr')
164 grd.SetDefines({'bingo': '1'}) 204 grd.SetDefines({'bingo': '1'})
165 outputs = [output.GetFilename() for output in grd.GetOutputFiles()] 205 outputs = [output.GetFilename() for output in grd.GetOutputFiles()]
166 self.assertNotEquals(outputs, ['uncond1.rc', 'uncond2.adm', 'iftest.h']) 206 self.assertNotEquals(outputs, ['uncond1.rc', 'uncond2.adm', 'iftest.h'])
167 207
168
169 class IfNodeChildrenUnittest(unittest.TestCase):
170 def testChildrenAccepted(self): 208 def testChildrenAccepted(self):
171 grd = grd_reader.Parse(StringIO.StringIO('''<?xml version="1.0"?> 209 grd = grd_reader.Parse(StringIO.StringIO('''<?xml version="1.0"?>
172 <grit latest_public_release="2" source_lang_id="en-US" current_release="3" base_dir="."> 210 <grit latest_public_release="2" source_lang_id="en-US" current_release="3" base_dir=".">
173 <release seq="3"> 211 <release seq="3">
174 <includes> 212 <includes>
175 <if expr="'bingo' in defs"> 213 <if expr="'bingo' in defs">
176 <include type="gif" name="ID_LOGO2" file="images/logo2.gif" /> 214 <include type="gif" name="ID_LOGO2" file="images/logo2.gif" />
177 </if> 215 </if>
178 <if expr="'bingo' in defs"> 216 <if expr="'bingo' in defs">
179 <if expr="'hello' in defs"> 217 <if expr="'hello' in defs">
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 # a pseudo language should fail, but they do not fail and the test was 395 # a pseudo language should fail, but they do not fail and the test was
358 # broken and failed to catch it. Fix this. 396 # broken and failed to catch it. Fix this.
359 397
360 # Should not raise an exception since pseudo is allowed 398 # Should not raise an exception since pseudo is allowed
361 rc.FormatMessage(bingo, 'xyz-pseudo') 399 rc.FormatMessage(bingo, 'xyz-pseudo')
362 rc.FormatStructure(menu, 'xyz-pseudo', '.') 400 rc.FormatStructure(menu, 'xyz-pseudo', '.')
363 401
364 402
365 if __name__ == '__main__': 403 if __name__ == '__main__':
366 unittest.main() 404 unittest.main()
OLDNEW
« grit/node/misc.py ('K') | « grit/node/misc.py ('k') | grit/test_suite_all.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698