def test_flat_formatter(self): registry = FileRegistry() formatter = FlatFormatter(registry) formatter.add_base('app') formatter.add('f/oo/bar', GeneratedFile('foobar')) formatter.add('f/oo/baz', GeneratedFile('foobaz')) formatter.add('f/oo/qux', GeneratedFile('fooqux')) formatter.add_manifest(ManifestContent('f/oo', 'bar', 'bar')) formatter.add_manifest(ManifestContent('f/oo', 'qux', 'qux')) self.assertEqual(registry.paths(), [ 'f/oo/bar', 'f/oo/baz', 'f/oo/qux', 'chrome.manifest', 'f/f.manifest', 'f/oo/oo.manifest' ]) self.assertEqual(registry['chrome.manifest'].open().read(), 'manifest f/f.manifest\n') self.assertEqual(registry['f/f.manifest'].open().read(), 'manifest oo/oo.manifest\n') self.assertEqual(registry['f/oo/oo.manifest'].open().read(), ''.join([ 'content bar bar\n', 'content qux qux\n', ])) formatter.add_interfaces('components/foo.xpt', foo_xpt) formatter.add_interfaces('components/bar.xpt', bar_xpt) self.assertEqual(registry.paths(), [ 'f/oo/bar', 'f/oo/baz', 'f/oo/qux', 'chrome.manifest', 'f/f.manifest', 'f/oo/oo.manifest', 'components/components.manifest', 'components/interfaces.xpt' ]) self.assertEqual( registry['chrome.manifest'].open().read(), ''.join([ 'manifest f/f.manifest\n', 'manifest components/components.manifest\n', ])) self.assertEqual( registry['components/components.manifest'].open().read(), 'interfaces interfaces.xpt\n') registry['components/interfaces.xpt'] \ .copy(self.tmppath('interfaces.xpt')) linked = read_interfaces(self.tmppath('interfaces.xpt')) foo = read_interfaces(foo_xpt.open()) bar = read_interfaces(bar_xpt.open()) self.assertEqual(foo['foo'], linked['foo']) self.assertEqual(bar['bar'], linked['bar']) formatter.add_manifest(ManifestContent('app/chrome', 'content', 'foo/')) self.assertEqual( registry['chrome.manifest'].open().read(), ''.join([ 'manifest f/f.manifest\n', 'manifest components/components.manifest\n', ])) self.assertEqual(registry['app/chrome.manifest'].open().read(), 'manifest chrome/chrome.manifest\n') self.assertEqual(registry['app/chrome/chrome.manifest'].open().read(), 'content content foo/\n')
def test_flat_formatter(self): registry = FileRegistry() formatter = FlatFormatter(registry) formatter.add_base('app') formatter.add('f/oo/bar', GeneratedFile('foobar')) formatter.add('f/oo/baz', GeneratedFile('foobaz')) formatter.add('f/oo/qux', GeneratedFile('fooqux')) formatter.add_manifest(ManifestContent('f/oo', 'bar', 'bar')) formatter.add_manifest(ManifestContent('f/oo', 'qux', 'qux')) self.assertEqual(registry.paths(), ['f/oo/bar', 'f/oo/baz', 'f/oo/qux', 'chrome.manifest', 'f/f.manifest', 'f/oo/oo.manifest']) self.assertEqual(registry['chrome.manifest'].open().read(), 'manifest f/f.manifest\n') self.assertEqual(registry['f/f.manifest'].open().read(), 'manifest oo/oo.manifest\n') self.assertEqual(registry['f/oo/oo.manifest'].open().read(), ''.join([ 'content bar bar\n', 'content qux qux\n', ])) formatter.add_interfaces('components/foo.xpt', foo_xpt) formatter.add_interfaces('components/bar.xpt', bar_xpt) self.assertEqual(registry.paths(), ['f/oo/bar', 'f/oo/baz', 'f/oo/qux', 'chrome.manifest', 'f/f.manifest', 'f/oo/oo.manifest', 'components/components.manifest', 'components/interfaces.xpt']) self.assertEqual(registry['chrome.manifest'].open().read(), ''.join([ 'manifest f/f.manifest\n', 'manifest components/components.manifest\n', ])) self.assertEqual( registry['components/components.manifest'].open().read(), 'interfaces interfaces.xpt\n' ) registry['components/interfaces.xpt'] \ .copy(self.tmppath('interfaces.xpt')) linked = read_interfaces(self.tmppath('interfaces.xpt')) foo = read_interfaces(foo_xpt.open()) bar = read_interfaces(bar_xpt.open()) self.assertEqual(foo['foo'], linked['foo']) self.assertEqual(bar['bar'], linked['bar']) formatter.add_manifest(ManifestContent('app/chrome', 'content', 'foo/')) self.assertEqual(registry['chrome.manifest'].open().read(), ''.join([ 'manifest f/f.manifest\n', 'manifest components/components.manifest\n', ])) self.assertEqual(registry['app/chrome.manifest'].open().read(), 'manifest chrome/chrome.manifest\n') self.assertEqual(registry['app/chrome/chrome.manifest'].open().read(), 'content content foo/\n')
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)
'chrome/f/f.manifest': [ 'content oo oo/', 'content bar oo/bar/', 'resource foo resource://bar/', ], 'chrome/f/oo/bar/baz': FILES['chrome/f/oo/bar/baz'], 'chrome/f/oo/baz': FILES['chrome/f/oo/baz'], 'chrome/f/oo/qux': FILES['chrome/f/oo/qux'], 'components/components.manifest': [ 'binary-component foo.so', 'interfaces interfaces.xpt', ], 'components/foo.so': FILES['components/foo.so'], 'components/interfaces.xpt': { 'foo': read_interfaces(foo_xpt.open())['foo'], 'bar': read_interfaces(bar_xpt.open())['bar'], }, 'foo': FILES['foo'], 'app/chrome.manifest': [ 'manifest chrome/chrome.manifest', 'manifest components/components.manifest', ], 'app/chrome/chrome.manifest': [ 'content content foo/', ], 'app/chrome/foo/foo': FILES['app/chrome/foo/foo'], 'app/components/components.manifest': [ 'component {foo-id} foo.js', ], 'app/components/foo.js': FILES['app/components/foo.js'], }
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)