mirror of
https://github.com/bitwarden/browser.git
synced 2024-12-02 13:23:29 +01:00
a4fba0e1c5
* Switch to jest * Fix jslib-angular package name * Make angular test project * Split up tests by jslib project * Remove obsolete node test script * Use legacy deps with jest-preset-angular * Move web tests to common * Remove build from pipeline This was only being used because we were not using ts runners. We are now, so build is unnecessary
74 lines
2.9 KiB
TypeScript
74 lines
2.9 KiB
TypeScript
import { Utils } from "jslib-common/misc/utils";
|
|
|
|
describe("Utils Service", () => {
|
|
describe("getDomain", () => {
|
|
it("should fail for invalid urls", () => {
|
|
expect(Utils.getDomain(null)).toBeNull();
|
|
expect(Utils.getDomain(undefined)).toBeNull();
|
|
expect(Utils.getDomain(" ")).toBeNull();
|
|
expect(Utils.getDomain('https://bit!:"_&ward.com')).toBeNull();
|
|
expect(Utils.getDomain("bitwarden")).toBeNull();
|
|
});
|
|
|
|
it("should fail for data urls", () => {
|
|
expect(Utils.getDomain("data:image/jpeg;base64,AAA")).toBeNull();
|
|
});
|
|
|
|
it("should handle urls without protocol", () => {
|
|
expect(Utils.getDomain("bitwarden.com")).toBe("bitwarden.com");
|
|
expect(Utils.getDomain("wrong://bitwarden.com")).toBe("bitwarden.com");
|
|
});
|
|
|
|
it("should handle valid urls", () => {
|
|
expect(Utils.getDomain("https://bitwarden")).toBe("bitwarden");
|
|
expect(Utils.getDomain("https://bitwarden.com")).toBe("bitwarden.com");
|
|
expect(Utils.getDomain("http://bitwarden.com")).toBe("bitwarden.com");
|
|
expect(Utils.getDomain("http://vault.bitwarden.com")).toBe("bitwarden.com");
|
|
expect(
|
|
Utils.getDomain("https://user:password@bitwarden.com:8080/password/sites?and&query#hash")
|
|
).toBe("bitwarden.com");
|
|
expect(Utils.getDomain("https://bitwarden.unknown")).toBe("bitwarden.unknown");
|
|
});
|
|
|
|
it("should support localhost and IP", () => {
|
|
expect(Utils.getDomain("https://localhost")).toBe("localhost");
|
|
expect(Utils.getDomain("https://192.168.1.1")).toBe("192.168.1.1");
|
|
});
|
|
|
|
it("should reject invalid hostnames", () => {
|
|
expect(Utils.getDomain("https://mywebsite.com$.mywebsite.com")).toBeNull();
|
|
expect(Utils.getDomain("https://mywebsite.com!.mywebsite.com")).toBeNull();
|
|
});
|
|
});
|
|
|
|
describe("getHostname", () => {
|
|
it("should fail for invalid urls", () => {
|
|
expect(Utils.getHostname(null)).toBeNull();
|
|
expect(Utils.getHostname(undefined)).toBeNull();
|
|
expect(Utils.getHostname(" ")).toBeNull();
|
|
expect(Utils.getHostname('https://bit!:"_&ward.com')).toBeNull();
|
|
expect(Utils.getHostname("bitwarden")).toBeNull();
|
|
});
|
|
|
|
it("should handle valid urls", () => {
|
|
expect(Utils.getHostname("bitwarden.com")).toBe("bitwarden.com");
|
|
expect(Utils.getHostname("https://bitwarden.com")).toBe("bitwarden.com");
|
|
expect(Utils.getHostname("http://bitwarden.com")).toBe("bitwarden.com");
|
|
expect(Utils.getHostname("http://vault.bitwarden.com")).toBe("vault.bitwarden.com");
|
|
});
|
|
|
|
it("should support localhost and IP", () => {
|
|
expect(Utils.getHostname("https://localhost")).toBe("localhost");
|
|
expect(Utils.getHostname("https://192.168.1.1")).toBe("192.168.1.1");
|
|
});
|
|
});
|
|
|
|
describe("newGuid", () => {
|
|
it("should create a valid guid", () => {
|
|
const validGuid =
|
|
/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
expect(Utils.newGuid()).toMatch(validGuid);
|
|
});
|
|
});
|
|
});
|