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

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

Issue 1442863002: Remove contents of grit's SVN repository. (Closed) Base URL: http://grit-i18n.googlecode.com/svn/trunk/
Patch Set: 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « grit/node/io.py ('k') | grit/node/mapping.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/usr/bin/env python
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
4 # found in the LICENSE file.
5
6 '''Unit tests for io.FileNode'''
7
8 import os
9 import sys
10 if __name__ == '__main__':
11 sys.path.append(os.path.join(os.path.dirname(__file__), '../..'))
12
13 import os
14 import StringIO
15 import unittest
16
17 from grit.node import misc
18 from grit.node import io
19 from grit.node import empty
20 from grit import grd_reader
21 from grit import util
22
23
24 class FileNodeUnittest(unittest.TestCase):
25 def testGetPath(self):
26 root = misc.GritNode()
27 root.StartParsing(u'grit', None)
28 root.HandleAttribute(u'latest_public_release', u'0')
29 root.HandleAttribute(u'current_release', u'1')
30 root.HandleAttribute(u'base_dir', ur'..\resource')
31 translations = empty.TranslationsNode()
32 translations.StartParsing(u'translations', root)
33 root.AddChild(translations)
34 file_node = io.FileNode()
35 file_node.StartParsing(u'file', translations)
36 file_node.HandleAttribute(u'path', ur'flugel\kugel.pdf')
37 translations.AddChild(file_node)
38 root.EndParsing()
39
40 self.failUnless(root.ToRealPath(file_node.GetInputPath()) ==
41 util.normpath(
42 os.path.join(ur'../resource', ur'flugel/kugel.pdf')))
43
44 def VerifyCliquesContainEnglishAndFrenchAndNothingElse(self, cliques):
45 for clique in cliques:
46 self.failUnlessEquals(len(clique[0].clique), 2)
47 self.failUnless('en' in cliques[i][0].clique)
48 self.failUnless('fr' in cliques[i][0].clique)
49
50 def testLoadTranslations(self):
51 xml = '''<?xml version="1.0" encoding="UTF-8"?>
52 <grit latest_public_release="2" source_lang_id="en-US" current_release="3" base_dir=".">
53 <translations>
54 <file path="generated_resources_fr.xtb" lang="fr" />
55 </translations>
56 <release seq="3">
57 <messages>
58 <message name="ID_HELLO">Hello!</message>
59 <message name="ID_HELLO_USER">Hello <ph name="USERNAME">%s<ex>Joi</e x></ph></message>
60 </messages>
61 </release>
62 </grit>'''
63 grd = grd_reader.Parse(StringIO.StringIO(xml),
64 util.PathFromRoot('grit/testdata'))
65 grd.SetOutputLanguage('en')
66 grd.RunGatherers()
67 self.VerifyCliquesContainEnglishAndFrenchAndNothingElse(grd.GetCliques())
68
69 def testIffyness(self):
70 grd = grd_reader.Parse(StringIO.StringIO('''<?xml version="1.0" encoding="UT F-8"?>
71 <grit latest_public_release="2" source_lang_id="en-US" current_release="3" base_dir=".">
72 <translations>
73 <if expr="lang == 'fr'">
74 <file path="generated_resources_fr.xtb" lang="fr" />
75 </if>
76 </translations>
77 <release seq="3">
78 <messages>
79 <message name="ID_HELLO">Hello!</message>
80 <message name="ID_HELLO_USER">Hello <ph name="USERNAME">%s<ex>Joi</e x></ph></message>
81 </messages>
82 </release>
83 </grit>'''), util.PathFromRoot('grit/testdata'))
84 grd.SetOutputLanguage('en')
85 grd.RunGatherers()
86
87 grd.SetOutputLanguage('fr')
88 grd.RunGatherers()
89
90 def testConditionalLoadTranslations(self):
91 xml = '''<?xml version="1.0" encoding="UTF-8"?>
92 <grit latest_public_release="2" source_lang_id="en-US" current_release="3"
93 base_dir=".">
94 <translations>
95 <if expr="True">
96 <file path="generated_resources_fr.xtb" lang="fr" />
97 </if>
98 <if expr="False">
99 <file path="no_such_file.xtb" lang="de" />
100 </if>
101 </translations>
102 <release seq="3">
103 <messages>
104 <message name="ID_HELLO">Hello!</message>
105 <message name="ID_HELLO_USER">Hello <ph name="USERNAME">%s<ex>
106 Joi</ex></ph></message>
107 </messages>
108 </release>
109 </grit>'''
110 grd = grd_reader.Parse(StringIO.StringIO(xml),
111 util.PathFromRoot('grit/testdata'))
112 grd.SetOutputLanguage('en')
113 grd.RunGatherers()
114 self.VerifyCliquesContainEnglishAndFrenchAndNothingElse(grd.GetCliques())
115
116 def testConditionalOutput(self):
117 xml = '''<?xml version="1.0" encoding="UTF-8"?>
118 <grit latest_public_release="2" source_lang_id="en-US" current_release="3"
119 base_dir=".">
120 <outputs>
121 <output filename="resource.h" type="rc_header" />
122 <output filename="en/generated_resources.rc" type="rc_all"
123 lang="en" />
124 <if expr="pp_if('NOT_TRUE')">
125 <output filename="de/generated_resources.rc" type="rc_all"
126 lang="de" />
127 </if>
128 </outputs>
129 <release seq="3">
130 <messages>
131 <message name="ID_HELLO">Hello!</message>
132 </messages>
133 </release>
134 </grit>'''
135 grd = grd_reader.Parse(StringIO.StringIO(xml),
136 util.PathFromRoot('grit/test/data'),
137 defines={})
138 grd.SetOutputLanguage('en')
139 grd.RunGatherers()
140 outputs = grd.GetChildrenOfType(io.OutputNode)
141 active = set(grd.ActiveDescendants())
142 self.failUnless(outputs[0] in active)
143 self.failUnless(outputs[0].GetType() == 'rc_header')
144 self.failUnless(outputs[1] in active)
145 self.failUnless(outputs[1].GetType() == 'rc_all')
146 self.failUnless(outputs[2] not in active)
147 self.failUnless(outputs[2].GetType() == 'rc_all')
148
149 # Verify that 'iw' and 'no' language codes in xtb files are mapped to 'he' and
150 # 'nb'.
151 def testLangCodeMapping(self):
152 grd = grd_reader.Parse(StringIO.StringIO('''<?xml version="1.0" encoding="UT F-8"?>
153 <grit latest_public_release="2" source_lang_id="en-US" current_release="3" base_dir=".">
154 <translations>
155 <file path="generated_resources_no.xtb" lang="nb" />
156 <file path="generated_resources_iw.xtb" lang="he" />
157 </translations>
158 <release seq="3">
159 <messages></messages>
160 </release>
161 </grit>'''), util.PathFromRoot('grit/testdata'))
162 grd.SetOutputLanguage('en')
163 grd.RunGatherers()
164
165
166 if __name__ == '__main__':
167 unittest.main()
OLDNEW
« no previous file with comments | « grit/node/io.py ('k') | grit/node/mapping.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698