summaryrefslogtreecommitdiffstats
path: root/testing/mozbase/mozversion/tests/test_apk.py
diff options
context:
space:
mode:
Diffstat (limited to 'testing/mozbase/mozversion/tests/test_apk.py')
-rw-r--r--testing/mozbase/mozversion/tests/test_apk.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/testing/mozbase/mozversion/tests/test_apk.py b/testing/mozbase/mozversion/tests/test_apk.py
new file mode 100644
index 000000000..37fcb0bcf
--- /dev/null
+++ b/testing/mozbase/mozversion/tests/test_apk.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python
+
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this file,
+# You can obtain one at http://mozilla.org/MPL/2.0/.
+
+import mozfile
+import unittest
+import zipfile
+from mozversion import get_version
+
+
+class ApkTest(unittest.TestCase):
+ """test getting version information from an android .apk"""
+
+ application_changeset = 'a' * 40
+ platform_changeset = 'b' * 40
+
+ def create_apk_zipfiles(self, zfile):
+ zfile.writestr('application.ini',
+ """[App]\nSourceStamp=%s\n""" % self.application_changeset)
+ zfile.writestr('platform.ini',
+ """[Build]\nSourceStamp=%s\n""" % self.platform_changeset)
+ zfile.writestr('AndroidManifest.xml', '')
+
+ def test_basic(self):
+ with mozfile.NamedTemporaryFile() as f:
+ with zipfile.ZipFile(f.name, 'w') as z:
+ self.create_apk_zipfiles(z)
+ v = get_version(f.name)
+ self.assertEqual(v.get('application_changeset'), self.application_changeset)
+ self.assertEqual(v.get('platform_changeset'), self.platform_changeset)
+
+ def test_with_package_name(self):
+ with mozfile.NamedTemporaryFile() as f:
+ with zipfile.ZipFile(f.name, 'w') as z:
+ self.create_apk_zipfiles(z)
+ z.writestr('package-name.txt', "org.mozilla.fennec")
+ v = get_version(f.name)
+ self.assertEqual(v.get('package_name'), "org.mozilla.fennec")
+
+if __name__ == '__main__':
+ unittest.main()