def _do_test_raw_webextension(manifest, listed=True): err = ErrorBundle(listed=listed) manifest = ManifestJsonParser(err, manifest) err.save_resource('has_manifest_json', True) err.save_resource('manifest_json', manifest) targetapp.test_targetedapplications(err) return err
def test_manifest_ordering(): err = ErrorBundle(listed=True) manifest = ManifestJsonParser(err, INVALID_MANIFEST_JSON) err.save_resource('has_manifest_json', True) err.save_resource('manifest_json', manifest) rdf = RDFParser(err, VALID_INSTALL_RDF.strip()) err.save_resource('has_install_rdf', True) err.save_resource('install_rdf', rdf) targetapp.test_targetedapplications(err) assert not err.failed()
def _load_manifest_json(err, package, expectation): raw_manifest_json = package.read('manifest.json') try: manifest_json = ManifestJsonParser(err, raw_manifest_json) except ValueError: err.error(err_id=('main', 'test_package', 'parse_error'), error='Could not parse `manifest.json`.', description='The JSON parser was unable to parse the ' 'manifest.json file included with this add-on.', filename='manifest.json') else: err.save_resource('has_manifest_json', True, pushable=True) err.save_resource('manifest_json', manifest_json, pushable=True) err.detected_type = PACKAGE_EXTENSION
def _do_test(path, test, failure=True, require_install=False, set_type=0, listed=False, xpi_mode='r'): package_data = open(path, 'rb') package = XPIManager(package_data, mode=xpi_mode, name=path) err = ErrorBundle() if listed: err.save_resource('listed', True) # Populate in the dependencies. if set_type: err.detected_type = set_type # Conduit test requires type if require_install: if 'install.rdf' in package: err.save_resource('has_install_rdf', True) rdf_data = package.read('install.rdf') install_rdf = RDFParser(err, rdf_data) err.save_resource('install_rdf', install_rdf) elif 'manifest.json' in package: err.save_resource('has_manifest_json', True) manifest_data = package.read('manifest.json') manifest_json = ManifestJsonParser(err, manifest_data) err.save_resource('install_rdf', manifest_json) populate_chrome_manifest(err, package) test(err, package) print err.print_summary(verbose=True) if failure: assert err.failed() else: assert not err.failed() return err
def test_get_applications_with_versions(): parser = ManifestJsonParser(None, manifest_json_with_versions) assert parser.get_applications() == [{u'guid': FIREFOX_GUID, u'min_version': u'43.0', u'max_version': u'50.*'}]
def test_parser_no_applications(): parser = ManifestJsonParser(None, """{"name": "foo"}""") assert parser.get_applications() == []
def test_parser(): parser = ManifestJsonParser(None, manifest_json) assert parser.data == json.loads(manifest_json)