mirror of https://github.com/vector-im/riot-web
				
				
				
			lint
							parent
							
								
									fda533ab48
								
							
						
					
					
						commit
						4f3d4426ea
					
				| 
						 | 
				
			
			@ -5,13 +5,13 @@ function mkClient (selfTrust) {
 | 
			
		|||
    return {
 | 
			
		||||
        getUserId: () => "@self:localhost",
 | 
			
		||||
        checkUserTrust: (userId) => ({
 | 
			
		||||
            isCrossSigningVerified: () => userId[1] == "T"
 | 
			
		||||
            isCrossSigningVerified: () => userId[1] == "T",
 | 
			
		||||
        }),
 | 
			
		||||
        checkDeviceTrust: (userId, deviceId) => ({
 | 
			
		||||
            isVerified: () => userId === "@self:localhost" ? selfTrust : userId[2] == "T"
 | 
			
		||||
            isVerified: () => userId === "@self:localhost" ? selfTrust : userId[2] == "T",
 | 
			
		||||
        }),
 | 
			
		||||
        getStoredDevicesForUser: async (userId) => ["DEVICE"],
 | 
			
		||||
    }
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
describe("mkClient self-test", function() {
 | 
			
		||||
| 
						 | 
				
			
			@ -24,8 +24,8 @@ describe("mkClient self-test", function () {
 | 
			
		|||
        ["@TT:h", true],
 | 
			
		||||
        ["@TF:h", true],
 | 
			
		||||
        ["@FT:h", false],
 | 
			
		||||
        ["@FF:h", false]])
 | 
			
		||||
    ("behaves well for user trust %s", (userId, trust) => {
 | 
			
		||||
        ["@FF:h", false]],
 | 
			
		||||
        )("behaves well for user trust %s", (userId, trust) => {
 | 
			
		||||
        expect(mkClient().checkUserTrust(userId).isCrossSigningVerified()).toBe(trust);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -33,8 +33,8 @@ describe("mkClient self-test", function () {
 | 
			
		|||
        ["@TT:h", true],
 | 
			
		||||
        ["@TF:h", false],
 | 
			
		||||
        ["@FT:h", true],
 | 
			
		||||
        ["@FF:h", false]])
 | 
			
		||||
    ("behaves well for device trust %s", (userId, trust) => {
 | 
			
		||||
        ["@FF:h", false]],
 | 
			
		||||
        )("behaves well for device trust %s", (userId, trust) => {
 | 
			
		||||
        expect(mkClient().checkDeviceTrust(userId, "device").isVerified()).toBe(trust);
 | 
			
		||||
    });
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			@ -48,78 +48,78 @@ describe("shieldStatusForMembership self-trust behaviour", function () {
 | 
			
		|||
 | 
			
		||||
    it.each(
 | 
			
		||||
        [[true, true], [true, false],
 | 
			
		||||
        [false, true], [false, false]]
 | 
			
		||||
        [false, true], [false, false]],
 | 
			
		||||
    )("2 unverified: returns 'normal', self-trust = %s, DM = %s", async (trusted, dm) => {
 | 
			
		||||
        const client = mkClient(trusted);
 | 
			
		||||
        const room = {
 | 
			
		||||
            roomId: dm ? "DM" : "other",
 | 
			
		||||
            getEncryptionTargetMembers: () => ["@self:localhost", "@FF1:h", "@FF2:h"].map((userId) => ({userId})),
 | 
			
		||||
        }
 | 
			
		||||
        };
 | 
			
		||||
        const status = await shieldStatusForMembership(client, room);
 | 
			
		||||
        expect(status).toEqual("normal");
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    it.each(
 | 
			
		||||
        [["verified", true, true], ["verified", true, false],
 | 
			
		||||
        ["verified", false, true], ["warning", false, false]]
 | 
			
		||||
        ["verified", false, true], ["warning", false, false]],
 | 
			
		||||
    )("2 verified: returns '%s', self-trust = %s, DM = %s", async (result, trusted, dm) => {
 | 
			
		||||
        const client = mkClient(trusted);
 | 
			
		||||
        const room = {
 | 
			
		||||
            roomId: dm ? "DM" : "other",
 | 
			
		||||
            getEncryptionTargetMembers: () => ["@self:localhost", "@TT1:h", "@TT2:h"].map((userId) => ({userId})),
 | 
			
		||||
        }
 | 
			
		||||
        };
 | 
			
		||||
        const status = await shieldStatusForMembership(client, room);
 | 
			
		||||
        expect(status).toEqual(result);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    it.each(
 | 
			
		||||
        [["normal", true, true], ["normal", true, false],
 | 
			
		||||
        ["normal", false, true], ["warning", false, false]]
 | 
			
		||||
        ["normal", false, true], ["warning", false, false]],
 | 
			
		||||
    )("2 mixed: returns '%s', self-trust = %s, DM = %s", async (result, trusted, dm) => {
 | 
			
		||||
        const client = mkClient(trusted);
 | 
			
		||||
        const room = {
 | 
			
		||||
            roomId: dm ? "DM" : "other",
 | 
			
		||||
            getEncryptionTargetMembers: () => ["@self:localhost", "@TT1:h", "@FF2:h"].map((userId) => ({userId})),
 | 
			
		||||
        }
 | 
			
		||||
        };
 | 
			
		||||
        const status = await shieldStatusForMembership(client, room);
 | 
			
		||||
        expect(status).toEqual(result);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    it.each(
 | 
			
		||||
        [["verified", true, true], ["verified", true, false],
 | 
			
		||||
        ["warning", false, true], ["warning", false, false]]
 | 
			
		||||
        ["warning", false, true], ["warning", false, false]],
 | 
			
		||||
    )("0 others: returns '%s', self-trust = %s, DM = %s", async (result, trusted, dm) => {
 | 
			
		||||
        const client = mkClient(trusted);
 | 
			
		||||
        const room = {
 | 
			
		||||
            roomId: dm ? "DM" : "other",
 | 
			
		||||
            getEncryptionTargetMembers: () => ["@self:localhost"].map((userId) => ({userId})),
 | 
			
		||||
        }
 | 
			
		||||
        };
 | 
			
		||||
        const status = await shieldStatusForMembership(client, room);
 | 
			
		||||
        expect(status).toEqual(result);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    it.each(
 | 
			
		||||
        [["verified", true, true], ["verified", true, false],
 | 
			
		||||
        ["verified", false, true], ["verified", false, false]]
 | 
			
		||||
        ["verified", false, true], ["verified", false, false]],
 | 
			
		||||
    )("1 verified: returns '%s', self-trust = %s, DM = %s", async (result, trusted, dm) => {
 | 
			
		||||
        const client = mkClient(trusted);
 | 
			
		||||
        const room = {
 | 
			
		||||
            roomId: dm ? "DM" : "other",
 | 
			
		||||
            getEncryptionTargetMembers: () => ["@self:localhost", "@TT:h"].map((userId) => ({userId})),
 | 
			
		||||
        }
 | 
			
		||||
        };
 | 
			
		||||
        const status = await shieldStatusForMembership(client, room);
 | 
			
		||||
        expect(status).toEqual(result);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    it.each(
 | 
			
		||||
        [["normal", true, true], ["normal", true, false],
 | 
			
		||||
        ["normal", false, true], ["normal", false, false]]
 | 
			
		||||
        ["normal", false, true], ["normal", false, false]],
 | 
			
		||||
    )("1 unverified: returns '%s', self-trust = %s, DM = %s", async (result, trusted, dm) => {
 | 
			
		||||
        const client = mkClient(trusted);
 | 
			
		||||
        const room = {
 | 
			
		||||
            roomId: dm ? "DM" : "other",
 | 
			
		||||
            getEncryptionTargetMembers: () => ["@self:localhost", "@FF:h"].map((userId) => ({userId})),
 | 
			
		||||
        }
 | 
			
		||||
        };
 | 
			
		||||
        const status = await shieldStatusForMembership(client, room);
 | 
			
		||||
        expect(status).toEqual(result);
 | 
			
		||||
    });
 | 
			
		||||
| 
						 | 
				
			
			@ -133,37 +133,37 @@ describe("shieldStatusForMembership other-trust behaviour", function () {
 | 
			
		|||
    });
 | 
			
		||||
 | 
			
		||||
    it.each(
 | 
			
		||||
        [["warning", true], ["warning", false]]
 | 
			
		||||
        [["warning", true], ["warning", false]],
 | 
			
		||||
    )("1 verified/untrusted: returns '%s', DM = %s", async (result, dm) => {
 | 
			
		||||
        const client = mkClient(true);
 | 
			
		||||
        const room = {
 | 
			
		||||
            roomId: dm ? "DM" : "other",
 | 
			
		||||
            getEncryptionTargetMembers: () => ["@self:localhost", "@TF:h"].map((userId) => ({userId})),
 | 
			
		||||
        }
 | 
			
		||||
        };
 | 
			
		||||
        const status = await shieldStatusForMembership(client, room);
 | 
			
		||||
        expect(status).toEqual(result);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    it.each(
 | 
			
		||||
        [["warning", true], ["warning", false]]
 | 
			
		||||
        [["warning", true], ["warning", false]],
 | 
			
		||||
    )("2 verified/untrusted: returns '%s', DM = %s", async (result, dm) => {
 | 
			
		||||
        const client = mkClient(true);
 | 
			
		||||
        const room = {
 | 
			
		||||
            roomId: dm ? "DM" : "other",
 | 
			
		||||
            getEncryptionTargetMembers: () => ["@self:localhost", "@TF:h", "@TT: h"].map((userId) => ({userId})),
 | 
			
		||||
        }
 | 
			
		||||
        };
 | 
			
		||||
        const status = await shieldStatusForMembership(client, room);
 | 
			
		||||
        expect(status).toEqual(result);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    it.each(
 | 
			
		||||
        [["normal", true], ["normal", false]]
 | 
			
		||||
        [["normal", true], ["normal", false]],
 | 
			
		||||
    )("2 unverified/untrusted: returns '%s', DM = %s", async (result, dm) => {
 | 
			
		||||
        const client = mkClient(true);
 | 
			
		||||
        const room = {
 | 
			
		||||
            roomId: dm ? "DM" : "other",
 | 
			
		||||
            getEncryptionTargetMembers: () => ["@self:localhost", "@FF:h", "@FT: h"].map((userId) => ({userId})),
 | 
			
		||||
        }
 | 
			
		||||
        };
 | 
			
		||||
        const status = await shieldStatusForMembership(client, room);
 | 
			
		||||
        expect(status).toEqual(result);
 | 
			
		||||
    });
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue