OLD | NEW |
1 # This Source Code Form is subject to the terms of the Mozilla Public | 1 # This Source Code Form is subject to the terms of the Mozilla Public |
2 # License, v. 2.0. If a copy of the MPL was not distributed with this | 2 # License, v. 2.0. If a copy of the MPL was not distributed with this |
3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. | 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
4 | 4 |
5 import difflib | 5 import difflib |
6 import json | 6 import json |
7 import os | 7 import os |
8 import re | 8 import re |
9 import shutil | 9 import shutil |
10 import zipfile | 10 import zipfile |
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 | 221 |
222 @pytest.fixture | 222 @pytest.fixture |
223 def keyfile(tmpdir): | 223 def keyfile(tmpdir): |
224 """Test-privatekey for signing chrome release-package.""" | 224 """Test-privatekey for signing chrome release-package.""" |
225 return os.path.join(os.path.dirname(__file__), 'chrome_rsa.pem') | 225 return os.path.join(os.path.dirname(__file__), 'chrome_rsa.pem') |
226 | 226 |
227 | 227 |
228 @pytest.fixture | 228 @pytest.fixture |
229 def lib_files(tmpdir): | 229 def lib_files(tmpdir): |
230 files = packager.Files(['lib'], set()) | 230 files = packager.Files(['lib'], set()) |
231 files['ext/a.js'] = 'require("./c.js");\nvar bar;' | 231 files['ext/a.js'] = 'require("./c.js");\nrequire("info");\nvar bar;' |
232 files['lib/b.js'] = 'var foo;' | 232 files['lib/b.js'] = 'var foo;' |
233 files['ext/c.js'] = 'var this_is_c;' | 233 files['ext/c.js'] = 'var this_is_c;' |
234 files['qunit/common.js'] = 'var qunit = {};' | 234 files['qunit/common.js'] = 'var qunit = {};' |
235 files['qunit/tests/some_test.js'] = 'var passed = true;' | 235 files['qunit/tests/some_test.js'] = 'var passed = true;' |
236 | 236 |
237 tmpdir.mkdir('lib').join('b.js').write(files['lib/b.js']) | 237 tmpdir.mkdir('lib').join('b.js').write(files['lib/b.js']) |
238 ext_dir = tmpdir.mkdir('ext') | 238 ext_dir = tmpdir.mkdir('ext') |
239 ext_dir.join('a.js').write(files['ext/a.js']) | 239 ext_dir.join('a.js').write(files['ext/a.js']) |
240 ext_dir.join('c.js').write(files['ext/c.js']) | 240 ext_dir.join('c.js').write(files['ext/c.js']) |
241 qunit_dir = tmpdir.mkdir('qunit') | 241 qunit_dir = tmpdir.mkdir('qunit') |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
278 generated = comparable_xml(manifest) | 278 generated = comparable_xml(manifest) |
279 expected = comparable_xml(fp.read()) | 279 expected = comparable_xml(fp.read()) |
280 else: | 280 else: |
281 generated = comparable_json(manifest) | 281 generated = comparable_json(manifest) |
282 expected = comparable_json(fp.read()) | 282 expected = comparable_json(fp.read()) |
283 | 283 |
284 diff = list(difflib.unified_diff(generated, expected, n=0)) | 284 diff = list(difflib.unified_diff(generated, expected, n=0)) |
285 assert len(diff) == 0, '\n'.join(diff) | 285 assert len(diff) == 0, '\n'.join(diff) |
286 | 286 |
287 | 287 |
288 def assert_webpack_bundle(package, prefix, excluded=False): | 288 def assert_webpack_bundle(package, prefix, is_devbuild, excluded=False): |
289 libfoo = package.read(os.path.join(prefix, 'lib/foo.js')) | 289 libfoo = package.read(os.path.join(prefix, 'lib/foo.js')) |
290 libfoomap = package.read(os.path.join(prefix, 'lib/foo.js.map')) | 290 libfoomap = package.read(os.path.join(prefix, 'lib/foo.js.map')) |
291 | 291 |
292 assert 'var bar;' in libfoo | 292 assert 'var bar;' in libfoo |
| 293 if is_devbuild: |
| 294 assert 'addonVersion = "1.2.3.1337";' in libfoo |
| 295 else: |
| 296 assert 'addonVersion = "1.2.3";' in libfoo |
| 297 |
293 assert 'webpack:///./ext/a.js' in libfoomap | 298 assert 'webpack:///./ext/a.js' in libfoomap |
294 | 299 |
295 assert 'var this_is_c;' in libfoo | 300 assert 'var this_is_c;' in libfoo |
296 assert 'webpack:///./ext/c.js' in libfoomap | 301 assert 'webpack:///./ext/c.js' in libfoomap |
297 | 302 |
298 assert ('var foo;' in libfoo) != excluded | 303 assert ('var foo;' in libfoo) != excluded |
299 assert ('webpack:///./lib/b.js' in libfoomap) != excluded | 304 assert ('webpack:///./lib/b.js' in libfoomap) != excluded |
300 | 305 |
301 | 306 |
302 def assert_devenv_scripts(package, prefix, devenv): | 307 def assert_devenv_scripts(package, prefix, devenv): |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
449 out_file_path = os.path.abspath(os.path.join( | 454 out_file_path = os.path.abspath(os.path.join( |
450 os.path.dirname(__file__), os.pardir, out_file)) | 455 os.path.dirname(__file__), os.pardir, out_file)) |
451 assert os.path.exists(out_file_path) | 456 assert os.path.exists(out_file_path) |
452 | 457 |
453 if release and platform == 'chrome': | 458 if release and platform == 'chrome': |
454 assert_chrome_signature(out_file_path, keyfile) | 459 assert_chrome_signature(out_file_path, keyfile) |
455 | 460 |
456 with content_class(out_file_path) as package: | 461 with content_class(out_file_path) as package: |
457 assert_base_files(package, platform, prefix) | 462 assert_base_files(package, platform, prefix) |
458 assert_all_locales_present(package, prefix) | 463 assert_all_locales_present(package, prefix) |
459 assert_webpack_bundle(package, prefix, platform == 'gecko') | 464 assert_webpack_bundle(package, prefix, not release and not devenv, |
| 465 platform == 'gecko') |
460 | 466 |
461 if platform == 'chrome': | 467 if platform == 'chrome': |
462 assert_locale_upfix(package) | 468 assert_locale_upfix(package) |
463 | 469 |
464 assert_devenv_scripts(package, prefix, devenv) | 470 assert_devenv_scripts(package, prefix, devenv) |
465 | 471 |
466 for folder, name, ext in manifests[platform]: | 472 for folder, name, ext in manifests[platform]: |
467 filename = '{{}}_{}_{}.{{}}'.format(platform, command) | 473 filename = '{{}}_{}_{}.{{}}'.format(platform, command) |
468 expected = os.path.join( | 474 expected = os.path.join( |
469 os.path.dirname(__file__), | 475 os.path.dirname(__file__), |
470 'expecteddata', | 476 'expecteddata', |
471 filename.format(name, ext), | 477 filename.format(name, ext), |
472 ) | 478 ) |
473 | 479 |
474 assert_manifest_content( | 480 assert_manifest_content( |
475 package.read(os.path.join(folder, '{}.{}'.format(name, ext))), | 481 package.read(os.path.join(folder, '{}.{}'.format(name, ext))), |
476 expected, | 482 expected, |
477 ) | 483 ) |
OLD | NEW |