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()
示例#3
0
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
示例#4
0
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_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)