def test_jar_formatter(self): registry = FileRegistry() formatter = JarFormatter(registry) fill_formatter(formatter, CONTENTS) RESULT = { "chrome.manifest": ["manifest chrome/chrome.manifest", "manifest components/components.manifest"], "chrome/chrome.manifest": ["manifest f/f.manifest"], "chrome/f/f.manifest": [ "content oo jar:oo.jar!/", "content bar jar:oo.jar!/bar/", "resource foo resource://bar/", ], "chrome/f/oo.jar": { "bar/baz": CONTENTS["chrome/f/oo/bar/baz"], "baz": CONTENTS["chrome/f/oo/baz"], "qux": CONTENTS["chrome/f/oo/qux"], }, "components/components.manifest": ["binary-component foo.so", "interfaces interfaces.xpt"], "components/foo.so": CONTENTS["components/foo.so"], "components/interfaces.xpt": { "foo": read_interfaces(foo_xpt.open())["foo"], "bar": read_interfaces(bar_xpt.open())["bar"], }, "foo": CONTENTS["foo"], "app/chrome.manifest": ["manifest chrome/chrome.manifest", "manifest components/components.manifest"], "app/chrome/chrome.manifest": ["content content jar:foo.jar!/"], "app/chrome/foo.jar": {"foo": CONTENTS["app/chrome/foo/foo"]}, "app/components/components.manifest": ["component {foo-id} foo.js"], "app/components/foo.js": CONTENTS["app/components/foo.js"], "addon0/chrome.manifest": ["manifest chrome/chrome.manifest", "manifest components/components.manifest"], "addon0/chrome/chrome.manifest": ["content content jar:foo.jar!/bar/"], "addon0/chrome/foo.jar": {"bar/baz": CONTENTS["addon0/chrome/foo/bar/baz"]}, "addon0/components/components.manifest": ["interfaces interfaces.xpt"], "addon0/components/interfaces.xpt": { "foo": read_interfaces(foo2_xpt.open())["foo"], "bar": read_interfaces(bar_xpt.open())["bar"], }, } self.assertEqual(get_contents(registry), RESULT)
RESULT_FLAT.update({ mozpath.join(addon, p): f for p, f in { 'chrome.manifest': [ 'manifest chrome/chrome.manifest', 'manifest components/components.manifest', ], 'chrome/chrome.manifest': [ 'content content foo/bar/', ], 'chrome/foo/bar/baz': FILES[mozpath.join(addon, 'chrome/foo/bar/baz')], 'components/components.manifest': [ 'interfaces interfaces.xpt', ], 'components/interfaces.xpt': { 'foo': read_interfaces(foo2_xpt.open())['foo'], 'bar': read_interfaces(bar_xpt.open())['bar'], }, }.iteritems() }) RESULT_JAR = { p: RESULT_FLAT[p] for p in ( 'chrome.manifest', 'chrome/chrome.manifest', 'components/components.manifest', 'components/foo.so', 'components/interfaces.xpt', 'foo', 'app/chrome.manifest',
def test_omnijar_formatter(self): registry = FileRegistry() formatter = OmniJarFormatter(registry, 'omni.foo') fill_formatter(formatter, CONTENTS) RESULT = { 'omni.foo': { 'chrome.manifest': [ 'manifest chrome/chrome.manifest', 'manifest components/components.manifest', ], 'chrome/chrome.manifest': [ 'manifest f/f.manifest', ], 'chrome/f/f.manifest': [ 'content oo oo/', 'content bar oo/bar/', 'resource foo resource://bar/', ], 'chrome/f/oo/bar/baz': CONTENTS['chrome/f/oo/bar/baz'], 'chrome/f/oo/baz': CONTENTS['chrome/f/oo/baz'], 'chrome/f/oo/qux': CONTENTS['chrome/f/oo/qux'], 'components/components.manifest': [ 'interfaces interfaces.xpt', ], 'components/interfaces.xpt': { 'foo': read_interfaces(foo_xpt.open())['foo'], 'bar': read_interfaces(bar_xpt.open())['bar'], }, }, 'chrome.manifest': [ 'manifest components/components.manifest', ], 'components/components.manifest': [ 'binary-component foo.so', ], 'components/foo.so': CONTENTS['components/foo.so'], 'foo': CONTENTS['foo'], 'app/omni.foo': { 'chrome.manifest': [ 'manifest chrome/chrome.manifest', 'manifest components/components.manifest', ], 'chrome/chrome.manifest': [ 'content content foo/', ], 'chrome/foo/foo': CONTENTS['app/chrome/foo/foo'], 'components/components.manifest': [ 'component {foo-id} foo.js', ], 'components/foo.js': CONTENTS['app/components/foo.js'], }, 'addon0/chrome.manifest': [ 'manifest chrome/chrome.manifest', 'manifest components/components.manifest', ], 'addon0/chrome/chrome.manifest': [ 'content content jar:foo.jar!/bar/', ], 'addon0/chrome/foo.jar': { 'bar/baz': CONTENTS['addon0/chrome/foo/bar/baz'], }, 'addon0/components/components.manifest': [ 'interfaces interfaces.xpt', ], 'addon0/components/interfaces.xpt': { 'foo': read_interfaces(foo2_xpt.open())['foo'], 'bar': read_interfaces(bar_xpt.open())['bar'], }, } self.assertEqual(get_contents(registry), RESULT)