@Override public String getId() { return database.getName() + " (" + database.getRootGroup().getUuid().toString() + ")"; }
@Test public void testEmptyDatabase() { Assert.assertTrue (database.getRootGroup().getName().equals("Root")); Assert.assertTrue (database.getRootGroup().getEntries().size() == 0); Assert.assertTrue (database.getRootGroup().getGroups().size() == 0); }
@Test public void testDeleteGroup () { Group<D,G,E,I> g1 = database.getRootGroup().addGroup(database.newGroup("group1")); List<? extends G> l1 = database.getRootGroup().findGroups("group1"); Assert.assertTrue(l1.size() == 1); G g2 = l1.get(0); Assert.assertTrue (g2.equals(g1)); Group g3 = database.getRootGroup().removeGroup(g2); Assert.assertTrue (g3.equals(g1)); Assert.assertTrue(g1.getParent() == null); Assert.assertTrue(database.getRootGroup().getGroups().size() == 0); Assert.assertTrue(database.getRootGroup().findGroups("group1").size() == 0); }
@Override public String getHash() { byte[] toHash = Helpers.hexStringFromUuid(database.getRootGroup().getUuid()).getBytes(); SHA1Digest digest = new SHA1Digest(); byte[] digestBytes = new byte[digest.getDigestSize()]; digest.update(toHash, 0, toHash.length); digest.doFinal(digestBytes, 0); String result = new String(Hex.encodeHex(digestBytes)); return result.toLowerCase(); }
private D createNewDatabase() throws IOException { D database = getDatabase(); for (Integer g = 0; g < 5; g++){ G group = database.getRootGroup().addGroup(database.newGroup(g.toString())); for (int e = 0; e <= g; e++) { group.addEntry(entryFactory(database, g.toString(), e)); } } return database; }
public void saveKdbx() throws IOException { // create an empty database D database = getDatabase(); // add some groups and entries for (Integer g = 0; g < 5; g++) { G group = database.getRootGroup().addGroup(database.newGroup(g.toString())); for (int e = 0; e <= g; e++) { // entry factory is a local helper to populate an entry group.addEntry(entryFactory(database, g.toString(), e)); } } // save to a file with password "123" try (FileOutputStream outputStream = new FileOutputStream("testOutput/test.kdbx")) { database.save(new KdbxCreds("123".getBytes()), outputStream); } }
@Test public void testAddRemoveEntry() { E e1 = database.getRootGroup().addEntry(database.newEntry()); e1.setTitle("entry1"); List<? extends E> l1 = database.findEntries("entry1"); Assert.assertTrue(l1.size() == 1); E e12 = database.getRootGroup().addEntry(database.newEntry("entry12")); List<? extends E> l2 = database.findEntries("entry1"); Assert.assertTrue(l2.size() == 2); // show that the entries are different Assert.assertFalse(l2.get(0).equals(l2.get(1))); // show that the list is a copy l2.clear(); Assert.assertTrue(database.findEntries("entry1").size() == 2); // show that we get an equivalent entry when we remove to when we inserted Entry e12b = database.getRootGroup().removeEntry(e12); Assert.assertTrue(e12b.equals(e12)); // has been unhooked from parent Assert.assertTrue(e12.getParent() == null); Assert.assertTrue(database.findEntries("entry1").size() == 1); }
@Test public void testAddGroup() { Group g1 = database.getRootGroup().addGroup(database.newGroup("group1")); Assert.assertTrue (database.getRootGroup().getGroups().size() == 1); Assert.assertTrue (g1.getName().equals("group1")); Assert.assertTrue (g1.getGroups().size() == 0); Assert.assertTrue (g1.getEntries().size() == 0); Assert.assertTrue("root is not the parent of its child", g1.getParent().equals(database.getRootGroup())); Group g2 = database.newGroup(); assertEquals("", g2.getName()); Assert.assertNotNull(g2.getUuid()); assertEquals(0, g2.getIcon().getIndex()); assertEquals(0, g2.getGroups().size()); assertEquals(0, g2.getEntries().size()); // show that the list of groups is a copy database.getRootGroup().getGroups().clear(); Assert.assertTrue(database.getRootGroup().getGroups().size() == 1); Assert.assertTrue (g1.getEntries().size() == 0); }
/** * Load KDB and save as KDBX */ public void loadKdb() throws IOException { InputStream inputStream = getClass().getClassLoader().getResourceAsStream("test123.kdb"); // password credentials Credentials credentials = new KdbCredentials.Password("123".getBytes()); // load KdbDatabase KdbDatabase database = KdbDatabase.load(credentials, inputStream); // visit all groups and entries and list them to console database.visit(new Visitor.Print()); // create a KDBX (database D kdbxDatabse = getDatabase(); kdbxDatabse.setName("New Database"); kdbxDatabse.setDescription("Migration of KDB Database to KDBX Database"); // deep copy from group (not including source group, KDB database has simulated root) kdbxDatabse.getRootGroup().copy(database.getRootGroup()); // save it try (FileOutputStream f = new FileOutputStream("testOutput/migration.kdbx")) { kdbxDatabse.save(new KdbxCreds("123".getBytes()), f); } } }
entry.setProperty("SubmitUrl", r.SubmitUrl); database.getRootGroup().addEntry(entry); try { database.save(adaptor.getCredentials(), adaptor.getOutputStream());
assertEquals(5, output.getRootGroup().getGroupsCount()); Group group = input.getRootGroup().getGroups().get(g); assertEquals(g.toString(), group.getName()); assertEquals(g + 1, group.getEntries().size()); assertEquals(g+1, group.getEntriesCount()); assertEquals(input.getRootGroup(), group.getParent()); for (int e = 0; e <= g; e++) { Entry entry = (Entry) group.getEntries().get(e);
@Test public void recycleBinGroups() { database.enableRecycleBin(true); assertTrue(database.isRecycleBinEnabled()); G recycleBin = database.getRecycleBin(); assertNotNull(recycleBin); G group= database.newGroup(); assertEquals(group, database.getRootGroup().addGroup(group)); assertEquals(2, database.getRootGroup().getGroupsCount()); assertTrue(database.deleteGroup(group.getUuid())); assertEquals(1, database.getRootGroup().getGroupsCount()); assertEquals(1, recycleBin.getGroupsCount()); database.enableRecycleBin(false); assertFalse(database.isRecycleBinEnabled()); group = database.newGroup(); assertEquals(group, database.getRootGroup().addGroup(group)); assertEquals(2, database.getRootGroup().getGroupsCount()); assertTrue(database.deleteGroup(group.getUuid())); assertEquals(1, database.getRootGroup().getGroupsCount()); assertEquals(1, recycleBin.getGroupsCount()); database.emptyRecycleBin(); assertEquals(0, recycleBin.getGroupsCount()); }
@Test public void recycleBinEntries() { database.enableRecycleBin(false); assertFalse(database.isRecycleBinEnabled()); assertNull(database.getRecycleBin()); database.enableRecycleBin(true); assertTrue(database.isRecycleBinEnabled()); G recycleBin = database.getRecycleBin(); assertNotNull(recycleBin); E entry = database.newEntry(); assertEquals(entry, database.getRootGroup().addEntry(entry)); assertEquals(1, database.getRootGroup().getEntriesCount()); assertTrue(database.deleteEntry(entry.getUuid())); assertEquals(0, database.getRootGroup().getEntriesCount()); assertEquals(1, recycleBin.getEntriesCount()); database.enableRecycleBin(false); assertFalse(database.isRecycleBinEnabled()); entry = database.newEntry(); assertEquals(entry, database.getRootGroup().addEntry(entry)); assertEquals(1, database.getRootGroup().getEntriesCount()); assertTrue(database.deleteEntry(entry.getUuid())); assertEquals(0, database.getRootGroup().getEntriesCount()); assertEquals(1, recycleBin.getEntriesCount()); database.emptyRecycleBin(); assertEquals(0, recycleBin.getEntriesCount()); }
@Test public void testNewDatabase() throws IOException { D database = getDatabase(); G root = database.getRootGroup(); Assert.assertTrue(root.isRootGroup()); assertEquals(0, root.getGroups().size());