diff -r 000000000000 -r 6474c204b198 testing/mozbase/mozprofile/tests/addonid.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testing/mozbase/mozprofile/tests/addonid.py Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,155 @@ +#!/usr/bin/env python + +import os +import tempfile +import unittest +import shutil +from mozprofile import addons + + +here = os.path.dirname(os.path.abspath(__file__)) + + +class AddonIDTest(unittest.TestCase): + """ Test finding the addon id in a variety of install.rdf styles """ + + def make_install_rdf(self, filecontents): + path = tempfile.mkdtemp() + f = open(os.path.join(path, "install.rdf"), "w") + f.write(filecontents) + f.close() + return path + + def test_addonID(self): + testlist = self.get_test_list() + for t in testlist: + try: + p = self.make_install_rdf(t) + a = addons.AddonManager(os.path.join(p, "profile")) + addon_id = a.addon_details(p)['id'] + self.assertEqual(addon_id, "winning", "We got the addon id") + finally: + shutil.rmtree(p) + + def test_addonID_xpi(self): + a = addons.AddonManager("profile") + addon = a.addon_details(os.path.join(here, "addons", "empty.xpi")) + self.assertEqual(addon['id'], "test-empty@quality.mozilla.org", "We got the addon id") + + def get_test_list(self): + """ This just returns a hardcoded list of install.rdf snippets for testing. + When adding snippets for testing, remember that the id we're looking for + is "winning" (no quotes). So, make sure you have that id in your snippet + if you want it to pass. + """ + 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 + + """] + return tests + +if __name__ == '__main__': + unittest.main()