| Index: grit/format/rc_unittest.py
|
| diff --git a/grit/format/rc_unittest.py b/grit/format/rc_unittest.py
|
| index c255856b800dc787c7bfc8a661f0343a65f66a93..aedf3ffec387fe5099caf928b84aece50e9d9e78 100644
|
| --- a/grit/format/rc_unittest.py
|
| +++ b/grit/format/rc_unittest.py
|
| @@ -87,7 +87,7 @@ BEGIN
|
| MENUITEM "This be ""Klonk"" me like", ID_FILE_THISBE
|
| POPUP "gonk"
|
| BEGIN
|
| - MENUITEM "Klonk && is ""good""", ID_GONK_KLONKIS
|
| + MENUITEM "Klonk && is [good]", ID_GONK_KLONKIS
|
| END
|
| END
|
| POPUP "&Help"
|
| @@ -246,6 +246,37 @@ END'''.strip()
|
| self.failUnless(contents.find('Hello!') == -1) # should be translated
|
|
|
|
|
| + def testSubstitutionHtml(self):
|
| + input_file = util.PathFromRoot('grit/testdata/toolbar_about.html')
|
| + root = 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=".">
|
| + <release seq="1" allow_pseudo="False">
|
| + <structures fallback_to_english="True">
|
| + <structure type="tr_html" name="IDR_HTML" file="%s" expand_variables="true"/>
|
| + </structures>
|
| + </release>
|
| + </grit>
|
| + ''' % input_file), util.PathFromRoot('.'))
|
| + util.FixRootForUnittest(root, '.')
|
| + root.SetOutputContext('ar', {})
|
| + # We must run the gatherers since we'll be wanting the translation of the
|
| + # file. The file exists in the location pointed to.
|
| + root.RunGatherers(recursive=True)
|
| +
|
| + output_dir = tempfile.gettempdir()
|
| + import grit.node.structure
|
| + structure = root.GetChildrenOfType(grit.node.structure.StructureNode)[0]
|
| + ar_file = structure.FileForLanguage('ar', output_dir)
|
| + self.failUnless(ar_file == os.path.join(output_dir,
|
| + 'ar_toolbar_about.html'))
|
| +
|
| + fo = file(ar_file)
|
| + contents = fo.read()
|
| + fo.close()
|
| +
|
| + self.failUnless(contents.find('dir="RTL"') != -1)
|
| +
|
| +
|
| def testFallbackToEnglish(self):
|
| root = 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=".">
|
| @@ -256,6 +287,7 @@ END'''.strip()
|
| </release>
|
| </grit>'''), util.PathFromRoot('.'))
|
| util.FixRootForUnittest(root)
|
| + root.SetOutputContext('en', {})
|
| root.RunGatherers(recursive = True)
|
|
|
| node = root.GetNodeById("IDD_ABOUTBOX")
|
| @@ -276,5 +308,73 @@ BEGIN
|
| END''')
|
|
|
|
|
| + def testSubstitutionRc(self):
|
| + root = 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=".">
|
| + <outputs>
|
| + <output lang="en" type="rc_all" filename="grit\\testdata\klonk_resources.rc"/>
|
| + </outputs>
|
| +
|
| + <release seq="1" allow_pseudo="False">
|
| + <structures>
|
| + <structure type="menu" name="IDC_KLONKMENU"
|
| + file="grit\\testdata\klonk.rc" encoding="utf-16"
|
| + expand_variables="true" />
|
| + </structures>
|
| + <messages>
|
| + <message name="good" sub_variable="true">
|
| + excellent
|
| + </message>
|
| + </messages>
|
| + </release>
|
| + </grit>
|
| + '''), util.PathFromRoot('.'))
|
| + util.FixRootForUnittest(root)
|
| + root.SetOutputContext('en', {})
|
| + root.RunGatherers(recursive=True)
|
| +
|
| + buf = StringIO.StringIO()
|
| + build.RcBuilder.ProcessNode(root, DummyOutput('rc_all', 'en'), buf)
|
| + output = buf.getvalue()
|
| + self.failUnless(output.strip() == '''
|
| +// Copyright (c) Google Inc. 2012
|
| +// All rights reserved.
|
| +// This file is automatically generated by GRIT. Do not edit.
|
| +
|
| +#include "resource.h"
|
| +#include <winresrc.h>
|
| +#ifdef IDC_STATIC
|
| +#undef IDC_STATIC
|
| +#endif
|
| +#define IDC_STATIC (-1)
|
| +
|
| +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
| +
|
| +
|
| +IDC_KLONKMENU MENU
|
| +BEGIN
|
| + POPUP "&File"
|
| + BEGIN
|
| + MENUITEM "E&xit", IDM_EXIT
|
| + MENUITEM "This be ""Klonk"" me like", ID_FILE_THISBE
|
| + POPUP "gonk"
|
| + BEGIN
|
| + MENUITEM "Klonk && is excellent", ID_GONK_KLONKIS
|
| + END
|
| + END
|
| + POPUP "&Help"
|
| + BEGIN
|
| + MENUITEM "&About ...", IDM_ABOUT
|
| + END
|
| +END
|
| +
|
| +STRINGTABLE
|
| +BEGIN
|
| + good "excellent"
|
| +END
|
| +'''.strip())
|
| +
|
| +
|
| if __name__ == '__main__':
|
| unittest.main()
|
|
|