Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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',
    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)