зеркало из https://github.com/mozilla/gecko-dev.git
127 строки
4.9 KiB
Python
127 строки
4.9 KiB
Python
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
import unittest
|
|
import mozunit
|
|
from test_packager import MockFinder
|
|
from mozpack.packager import l10n
|
|
from mozpack.files import (
|
|
GeneratedFile,
|
|
ManifestFile,
|
|
)
|
|
from mozpack.chrome.manifest import (
|
|
Manifest,
|
|
ManifestLocale,
|
|
ManifestContent,
|
|
)
|
|
from mozpack.copier import FileRegistry
|
|
from mozpack.packager.formats import FlatFormatter
|
|
|
|
|
|
class TestL10NRepack(unittest.TestCase):
|
|
def test_l10n_repack(self):
|
|
foo = GeneratedFile('foo')
|
|
foobar = GeneratedFile('foobar')
|
|
qux = GeneratedFile('qux')
|
|
bar = GeneratedFile('bar')
|
|
baz = GeneratedFile('baz')
|
|
dict_aa = GeneratedFile('dict_aa')
|
|
dict_bb = GeneratedFile('dict_bb')
|
|
dict_cc = GeneratedFile('dict_cc')
|
|
barbaz = GeneratedFile('barbaz')
|
|
lst = GeneratedFile('foo\nbar')
|
|
app_finder = MockFinder({
|
|
'bar/foo': foo,
|
|
'chrome/foo/foobar': foobar,
|
|
'chrome/qux/qux.properties': qux,
|
|
'chrome/qux/baz/baz.properties': baz,
|
|
'chrome/chrome.manifest': ManifestFile('chrome', [
|
|
ManifestContent('chrome', 'foo', 'foo/'),
|
|
ManifestLocale('chrome', 'qux', 'en-US', 'qux/'),
|
|
]),
|
|
'chrome.manifest':
|
|
ManifestFile('', [Manifest('', 'chrome/chrome.manifest')]),
|
|
'dict/aa': dict_aa,
|
|
'app/chrome/bar/barbaz.dtd': barbaz,
|
|
'app/chrome/chrome.manifest': ManifestFile('app/chrome', [
|
|
ManifestLocale('app/chrome', 'bar', 'en-US', 'bar/')
|
|
]),
|
|
'app/chrome.manifest':
|
|
ManifestFile('app', [Manifest('app', 'chrome/chrome.manifest')]),
|
|
'app/dict/bb': dict_bb,
|
|
'app/dict/cc': dict_cc,
|
|
'app/chrome/bar/search/foo.xml': foo,
|
|
'app/chrome/bar/search/bar.xml': bar,
|
|
'app/chrome/bar/search/lst.txt': lst,
|
|
})
|
|
app_finder.jarlogs = {}
|
|
app_finder.base = 'app'
|
|
foo_l10n = GeneratedFile('foo_l10n')
|
|
qux_l10n = GeneratedFile('qux_l10n')
|
|
baz_l10n = GeneratedFile('baz_l10n')
|
|
barbaz_l10n = GeneratedFile('barbaz_l10n')
|
|
lst_l10n = GeneratedFile('foo\nqux')
|
|
l10n_finder = MockFinder({
|
|
'chrome/qux-l10n/qux.properties': qux_l10n,
|
|
'chrome/qux-l10n/baz/baz.properties': baz_l10n,
|
|
'chrome/chrome.manifest': ManifestFile('chrome', [
|
|
ManifestLocale('chrome', 'qux', 'x-test', 'qux-l10n/'),
|
|
]),
|
|
'chrome.manifest':
|
|
ManifestFile('', [Manifest('', 'chrome/chrome.manifest')]),
|
|
'dict/bb': dict_bb,
|
|
'dict/cc': dict_cc,
|
|
'app/chrome/bar-l10n/barbaz.dtd': barbaz_l10n,
|
|
'app/chrome/chrome.manifest': ManifestFile('app/chrome', [
|
|
ManifestLocale('app/chrome', 'bar', 'x-test', 'bar-l10n/')
|
|
]),
|
|
'app/chrome.manifest':
|
|
ManifestFile('app', [Manifest('app', 'chrome/chrome.manifest')]),
|
|
'app/dict/aa': dict_aa,
|
|
'app/chrome/bar-l10n/search/foo.xml': foo_l10n,
|
|
'app/chrome/bar-l10n/search/qux.xml': qux_l10n,
|
|
'app/chrome/bar-l10n/search/lst.txt': lst_l10n,
|
|
})
|
|
l10n_finder.base = 'l10n'
|
|
copier = FileRegistry()
|
|
formatter = FlatFormatter(copier)
|
|
|
|
l10n._repack(app_finder, l10n_finder, copier, formatter,
|
|
['dict', 'chrome/**/search/*.xml'])
|
|
self.maxDiff = None
|
|
|
|
repacked = {
|
|
'bar/foo': foo,
|
|
'chrome/foo/foobar': foobar,
|
|
'chrome/qux-l10n/qux.properties': qux_l10n,
|
|
'chrome/qux-l10n/baz/baz.properties': baz_l10n,
|
|
'chrome/chrome.manifest': ManifestFile('chrome', [
|
|
ManifestContent('chrome', 'foo', 'foo/'),
|
|
ManifestLocale('chrome', 'qux', 'x-test', 'qux-l10n/'),
|
|
]),
|
|
'chrome.manifest':
|
|
ManifestFile('', [Manifest('', 'chrome/chrome.manifest')]),
|
|
'dict/bb': dict_bb,
|
|
'dict/cc': dict_cc,
|
|
'app/chrome/bar-l10n/barbaz.dtd': barbaz_l10n,
|
|
'app/chrome/chrome.manifest': ManifestFile('app/chrome', [
|
|
ManifestLocale('app/chrome', 'bar', 'x-test', 'bar-l10n/')
|
|
]),
|
|
'app/chrome.manifest':
|
|
ManifestFile('app', [Manifest('app', 'chrome/chrome.manifest')]),
|
|
'app/dict/aa': dict_aa,
|
|
'app/chrome/bar-l10n/search/foo.xml': foo_l10n,
|
|
'app/chrome/bar-l10n/search/qux.xml': qux_l10n,
|
|
'app/chrome/bar-l10n/search/lst.txt': lst_l10n,
|
|
}
|
|
|
|
self.assertEqual(
|
|
dict((p, f.open().read()) for p, f in copier),
|
|
dict((p, f.open().read()) for p, f in repacked.iteritems())
|
|
)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
mozunit.main()
|