summaryrefslogtreecommitdiff
path: root/tests/test_android.py
blob: 0853e2a7f93644589d62ba88635ec9e2ee735101 (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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import os

from karton.android import Android

from karton.core import Task
from karton.core.test import KartonTestCase, TestResource


class AndroidMagicTestCase(KartonTestCase):
    karton_class = Android

    def test_android(self):
        testcase = os.path.join(os.path.dirname(__file__), "testsdata", "example.apk")
        with self.subTest(testcase):
            with open(testcase, "rb") as f:
                content = f.read()
            sample = TestResource(testcase, content)
            expected = Task(
                {
                    "type": "sample",
                    "stage": "analyzed",
                    "origin": "karton.android",
                },
                payload={
                    "sample": sample,
                    "attributes": {
                        "certificate": ["61ED377E85D386A8DFEE6B864BD85B0BFAA5AF81"],
                        "main_activity": [
                            "com.example.android.contactmanager..ContactManager"
                        ],
                        "package": ["com.example.android.contactmanager"],
                        "activities": [
                            "com.example.android.contactmanager..ContactManager",
                            "com.example.android.contactmanager.ContactAdder",
                        ],
                        "permissions": [
                            "android.permission.GET_ACCOUNTS",
                            "android.permission.READ_CONTACTS",
                            "android.permission.WRITE_CONTACTS",
                        ],
                        "certificate_not_after": ["Jul 17 01:33:46 2035 UTC"],
                        "certificate_serial": ["10623618503190643167"],
                        "certificate_subject": [
                            "Email Address: android@android.com,"
                            " Common Name: Android,"
                            " Organizational Unit: Android,"
                            " Organization: Android,"
                            " Locality: Mountain View,"
                            " State/Province: California,"
                            " Country: US"
                        ],
                        "certificate_not_before": ["Feb 29 01:33:46 2008 UTC"],
                        "certificate_issuer": [
                            "Email Address: android@android.com,"
                            " Common Name: Android,"
                            " Organizational Unit: Android,"
                            " Organization: Android,"
                            " Locality: Mountain View,"
                            " State/Province: California,"
                            " Country: US"
                        ],
                        "app_name": ["Contact Manager"],
                    },
                },
            )
            task = Task(
                {
                    "type": "sample",
                    "extension": "apk",
                },
                payload={"sample": sample},
            )
            results = self.run_task(task)

            self.assertTasksEqual(results, [expected])