2022-11-11 16:20:03 +01:00
|
|
|
import { KeePass2XmlImporter as Importer } from "@bitwarden/common/importers/keepass2-xml-importer";
|
2023-01-31 22:08:37 +01:00
|
|
|
import { FolderView } from "@bitwarden/common/vault/models/view/folder.view";
|
2019-02-07 22:55:49 +01:00
|
|
|
|
2023-01-19 17:12:36 +01:00
|
|
|
import { TestData, TestData1, TestData2 } from "./keepass2-xml-importer-testdata";
|
2019-02-07 22:55:49 +01:00
|
|
|
|
|
|
|
describe("KeePass2 Xml Importer", () => {
|
|
|
|
it("should parse XML data", async () => {
|
|
|
|
const importer = new Importer();
|
2020-12-05 03:05:11 +01:00
|
|
|
const result = await importer.parse(TestData);
|
2019-02-07 22:55:49 +01:00
|
|
|
expect(result != null).toBe(true);
|
|
|
|
});
|
2023-01-19 17:12:36 +01:00
|
|
|
|
|
|
|
it("parse XML should contains folders", async () => {
|
|
|
|
const importer = new Importer();
|
|
|
|
const folder = new FolderView();
|
|
|
|
folder.name = "Folder2";
|
|
|
|
const actual = [folder];
|
|
|
|
|
|
|
|
const result = await importer.parse(TestData);
|
|
|
|
expect(result.folders).toEqual(actual);
|
|
|
|
});
|
|
|
|
|
|
|
|
it("parse XML should contains login details", async () => {
|
|
|
|
const importer = new Importer();
|
|
|
|
const result = await importer.parse(TestData);
|
|
|
|
expect(result.ciphers[0].login.uri != null).toBe(true);
|
|
|
|
expect(result.ciphers[0].login.username != null).toBe(true);
|
|
|
|
expect(result.ciphers[0].login.password != null).toBe(true);
|
|
|
|
});
|
|
|
|
|
|
|
|
it("should return error with missing root tag", async () => {
|
|
|
|
const importer = new Importer();
|
|
|
|
const result = await importer.parse(TestData1);
|
|
|
|
expect(result.errorMessage).toBe("Missing `KeePassFile > Root` node.");
|
|
|
|
});
|
|
|
|
|
|
|
|
it("should return error with missing KeePassFile tag", async () => {
|
|
|
|
const importer = new Importer();
|
|
|
|
const result = await importer.parse(TestData2);
|
|
|
|
expect(result.success).toBe(false);
|
|
|
|
});
|
2019-02-07 22:55:49 +01:00
|
|
|
});
|