aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/androidTest/java/com/zeapo/pwdstore/PasswordEntryTest.java
blob: e8ddc04c157d4235ecf5830362721d1ae7df660f (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
package com.zeapo.pwdstore;

import junit.framework.TestCase;

public class PasswordEntryTest extends TestCase {

    public void testGetPassword() throws Exception {
        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() throws Exception {
        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() throws Exception {
        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() throws Exception {
        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());
    }
}