summaryrefslogtreecommitdiffstats
path: root/testing/mozbase/mozversion/tests/test_apk.py
blob: 37fcb0bcf9eac11d7a8565731228dfccc5376c3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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()