#!/usr/bin/env python
from __future__ import absolute_import
import os
import mozunit
import pytest
from mozprofile import addons
here = os.path.dirname(os.path.abspath(__file__))
"""Test finding the addon id in a variety of install.rdf styles"""
ADDON_ID_TESTS = [
"""
winning
MozMill
2.0a
Adam Christian
A testing extension based on the
Windmill Testing Framework client source
true
{ec8030f7-c20a-464f-9b0e-13a3a9e97384}
3.5
8.*
{3550f703-e582-4d05-9a08-453d09bdfdc6}
3.0a1pre
3.2*
{718e30fb-e89b-41dd-9da7-e25a45638b28}
0.6a1
1.0pre
{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}
2.0a1
2.1*
songbird@songbirdnest.com
0.3pre
1.3.0a
toolkit@mozilla.org
1.9.1
2.0*
""",
"""
{ec8030f7-c20a-464f-9b0e-13a3a9e97384}
3.5
8.*
winning
MozMill
2.0a
Adam Christian
A testing extension based on the
Windmill Testing Framework client source
true
""",
"""
winning
foo
42
A testing extension based on the
Windmill Testing Framework client source
""",
"""
{ec8030f7-c20a-464f-9b0e-13a3a9e97384}
3.5
8.*
winning
MozMill
2.0a
Adam Christian
A testing extension based on the
Windmill Testing Framework client source
true
""",
]
@pytest.fixture(
params=ADDON_ID_TESTS, ids=[str(i) for i in range(0, len(ADDON_ID_TESTS))]
)
def profile(request, tmpdir):
test = request.param
path = tmpdir.mkdtemp().strpath
with open(os.path.join(path, "install.rdf"), "w") as fh:
fh.write(test)
return path
def test_addonID(profile):
a = addons.AddonManager(os.path.join(profile, "profile"))
addon_id = a.addon_details(profile)["id"]
assert addon_id == "winning"
def test_addonID_xpi():
a = addons.AddonManager("profile")
addon = a.addon_details(os.path.join(here, "addons", "empty.xpi"))
assert addon["id"] == "test-empty@quality.mozilla.org"
if __name__ == "__main__":
mozunit.main()