summaryrefslogtreecommitdiffstats
path: root/app/src/androidTest/java/com/zeapo/pwdstore/PasswordEntryTest.java
blob: 7817c074a373d748bb0192cb69a234ca7ba43d4c (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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/*
 * Copyright © 2014-2019 The Android Password Store Authors. All Rights Reserved.
 * SPDX-License-Identifier: GPL-3.0-only
 */
package com.zeapo.pwdstore;

import junit.framework.TestCase;

public class PasswordEntryTest extends TestCase {

    public void testGetPassword() {
        assertEquals("fooooo", new PasswordEntry("fooooo\nbla\n").getPassword());
        assertEquals("fooooo", new PasswordEntry("fooooo\nbla").getPassword());
        assertEquals("fooooo", new PasswordEntry("fooooo\n").getPassword());
        assertEquals("fooooo", new PasswordEntry("fooooo").getPassword());
        assertEquals("", new PasswordEntry("\nblubb\n").getPassword());
        assertEquals("", new PasswordEntry("\nblubb").getPassword());
        assertEquals("", new PasswordEntry("\n").getPassword());
        assertEquals("", new PasswordEntry("").getPassword());
    }

    public void testGetExtraContent() {
        assertEquals("bla\n", new PasswordEntry("fooooo\nbla\n").getExtraContent());
        assertEquals("bla", new PasswordEntry("fooooo\nbla").getExtraContent());
        assertEquals("", new PasswordEntry("fooooo\n").getExtraContent());
        assertEquals("", new PasswordEntry("fooooo").getExtraContent());
        assertEquals("blubb\n", new PasswordEntry("\nblubb\n").getExtraContent());
        assertEquals("blubb", new PasswordEntry("\nblubb").getExtraContent());
        assertEquals("", new PasswordEntry("\n").getExtraContent());
        assertEquals("", new PasswordEntry("").getExtraContent());
    }

    public void testGetUsername() {
        assertEquals(
                "username",
                new PasswordEntry("secret\nextra\nlogin: username\ncontent\n").getUsername());
        assertEquals(
                "username",
                new PasswordEntry("\nextra\nusername: username\ncontent\n").getUsername());
        assertEquals(
                "username", new PasswordEntry("\nUSERNaMe:  username\ncontent\n").getUsername());
        assertEquals("username", new PasswordEntry("\nLOGiN:username").getUsername());
        assertNull(new PasswordEntry("secret\nextra\ncontent\n").getUsername());
    }

    public void testHasUsername() {
        assertTrue(new PasswordEntry("secret\nextra\nlogin: username\ncontent\n").hasUsername());
        assertFalse(new PasswordEntry("secret\nextra\ncontent\n").hasUsername());
        assertFalse(new PasswordEntry("secret\nlogin failed\n").hasUsername());
        assertFalse(new PasswordEntry("\n").hasUsername());
        assertFalse(new PasswordEntry("").hasUsername());
    }

    public void testNoTotpUriPresent() {
        PasswordEntry entry = new PasswordEntry("secret\nextra\nlogin: username\ncontent");
        assertFalse(entry.hasTotp());
        assertNull(entry.getTotpSecret());
    }

    public void testTotpUriInPassword() {
        PasswordEntry entry = new PasswordEntry("otpauth://totp/test?secret=JBSWY3DPEHPK3PXP");
        assertTrue(entry.hasTotp());
        assertEquals("JBSWY3DPEHPK3PXP", entry.getTotpSecret());
    }

    public void testTotpUriInContent() {
        PasswordEntry entry =
                new PasswordEntry(
                        "secret\nusername: test\notpauth://totp/test?secret=JBSWY3DPEHPK3PXP");
        assertTrue(entry.hasTotp());
        assertEquals("JBSWY3DPEHPK3PXP", entry.getTotpSecret());
    }

    public void testNoHotpUriPresent() {
        PasswordEntry entry = new PasswordEntry("secret\nextra\nlogin: username\ncontent");
        assertFalse(entry.hasHotp());
        assertNull(entry.getHotpSecret());
        assertNull(entry.getHotpCounter());
    }

    public void testHotpUriInPassword() {
        PasswordEntry entry =
                new PasswordEntry("otpauth://hotp/test?secret=JBSWY3DPEHPK3PXP&counter=25");
        assertTrue(entry.hasHotp());
        assertEquals("JBSWY3DPEHPK3PXP", entry.getHotpSecret());
        assertEquals(new Long(25), entry.getHotpCounter());
    }

    public void testHotpUriInContent() {
        PasswordEntry entry =
                new PasswordEntry(
                        "secret\nusername: test\notpauth://hotp/test?secret=JBSWY3DPEHPK3PXP&counter=25");
        assertTrue(entry.hasHotp());
        assertEquals("JBSWY3DPEHPK3PXP", entry.getHotpSecret());
        assertEquals(new Long(25), entry.getHotpCounter());
    }
}