Index: grit/xtb_reader_unittest.py |
=================================================================== |
--- grit/xtb_reader_unittest.py (revision 202) |
+++ grit/xtb_reader_unittest.py (working copy) |
@@ -1,106 +0,0 @@ |
-#!/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 grit.xtb_reader''' |
- |
- |
-import os |
-import sys |
-if __name__ == '__main__': |
- sys.path.append(os.path.join(os.path.dirname(__file__), '..')) |
- |
-import StringIO |
-import unittest |
- |
-from grit import util |
-from grit import xtb_reader |
-from grit.node import empty |
- |
- |
-class XtbReaderUnittest(unittest.TestCase): |
- def testParsing(self): |
- xtb_file = StringIO.StringIO('''<?xml version="1.0" encoding="UTF-8"?> |
- <!DOCTYPE translationbundle> |
- <translationbundle lang="fr"> |
- <translation id="5282608565720904145">Bingo.</translation> |
- <translation id="2955977306445326147">Bongo longo.</translation> |
- <translation id="238824332917605038">Hullo</translation> |
- <translation id="6629135689895381486"><ph name="PROBLEM_REPORT"/> peut <ph name="START_LINK"/>utilisation excessive de majuscules<ph name="END_LINK"/>.</translation> |
- <translation id="7729135689895381486">Hello |
-this is another line |
-and another |
- |
-and another after a blank line.</translation> |
- </translationbundle>''') |
- |
- messages = [] |
- def Callback(id, structure): |
- messages.append((id, structure)) |
- xtb_reader.Parse(xtb_file, Callback) |
- self.failUnless(len(messages[0][1]) == 1) |
- self.failUnless(messages[3][1][0]) # PROBLEM_REPORT placeholder |
- self.failUnless(messages[4][0] == '7729135689895381486') |
- self.failUnless(messages[4][1][7][1] == 'and another after a blank line.') |
- |
- def testParsingIntoMessages(self): |
- root = util.ParseGrdForUnittest(''' |
- <messages> |
- <message name="ID_MEGA">Fantastic!</message> |
- <message name="ID_HELLO_USER">Hello <ph name="USERNAME">%s<ex>Joi</ex></ph></message> |
- </messages>''') |
- |
- msgs, = root.GetChildrenOfType(empty.MessagesNode) |
- clique_mega = msgs.children[0].GetCliques()[0] |
- msg_mega = clique_mega.GetMessage() |
- clique_hello_user = msgs.children[1].GetCliques()[0] |
- msg_hello_user = clique_hello_user.GetMessage() |
- |
- xtb_file = StringIO.StringIO('''<?xml version="1.0" encoding="UTF-8"?> |
- <!DOCTYPE translationbundle> |
- <translationbundle lang="is"> |
- <translation id="%s">Meirihattar!</translation> |
- <translation id="%s">Saelir <ph name="USERNAME"/></translation> |
- </translationbundle>''' % (msg_mega.GetId(), msg_hello_user.GetId())) |
- |
- xtb_reader.Parse(xtb_file, |
- msgs.UberClique().GenerateXtbParserCallback('is')) |
- self.assertEqual('Meirihattar!', |
- clique_mega.MessageForLanguage('is').GetRealContent()) |
- self.failUnless('Saelir %s', |
- clique_hello_user.MessageForLanguage('is').GetRealContent()) |
- |
- def testIfNodesWithUseNameForId(self): |
- root = util.ParseGrdForUnittest(''' |
- <messages> |
- <message name="ID_BINGO" use_name_for_id="true">Bingo!</message> |
- </messages>''') |
- msgs, = root.GetChildrenOfType(empty.MessagesNode) |
- clique = msgs.children[0].GetCliques()[0] |
- msg = clique.GetMessage() |
- |
- xtb_file = StringIO.StringIO('''<?xml version="1.0" encoding="UTF-8"?> |
- <!DOCTYPE translationbundle> |
- <translationbundle lang="is"> |
- <if expr="is_linux"> |
- <translation id="ID_BINGO">Bongo!</translation> |
- </if> |
- <if expr="not is_linux"> |
- <translation id="ID_BINGO">Congo!</translation> |
- </if> |
- </translationbundle>''') |
- xtb_reader.Parse(xtb_file, |
- msgs.UberClique().GenerateXtbParserCallback('is'), |
- target_platform='darwin') |
- self.assertEqual('Congo!', clique.MessageForLanguage('is').GetRealContent()) |
- |
- def testParseLargeFile(self): |
- def Callback(id, structure): |
- pass |
- with open(util.PathFromRoot('grit/testdata/generated_resources_fr.xtb')) as xtb: |
- xtb_reader.Parse(xtb, Callback) |
- |
- |
-if __name__ == '__main__': |
- unittest.main() |