blob: 0e4761f648c767d5b572829668a94f7a1e5bad33 [file] [log] [blame]
#!/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()