1
0
Fork 0
firefox/browser/modules/test/unit/test_Dedupe.js
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

53 lines
1.3 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* https://creativecommons.org/publicdomain/zero/1.0/
*/
"use strict";
const { Dedupe } = ChromeUtils.importESModule(
"resource:///modules/Dedupe.sys.mjs"
);
add_task(async function test_dedupe_group() {
let instance = new Dedupe();
// Should remove duplicates inside the groups
let beforeItems = [
[1, 1, 1],
[2, 2, 2],
[3, 3, 3],
];
let afterItems = [[1], [2], [3]];
Assert.deepEqual(
instance.group(...beforeItems),
afterItems,
"Should remove duplicates inside the groups"
);
// Should remove duplicates between groups, favoring earlier groups
beforeItems = [
[1, 2, 3],
[2, 3, 4],
[3, 4, 5],
];
afterItems = [[1, 2, 3], [4], [5]];
Assert.deepEqual(
instance.group(...beforeItems),
afterItems,
"Should remove duplicates between groups"
);
// Should remove duplicates from groups of objects
instance = new Dedupe(item => item.id);
beforeItems = [
[{ id: 1 }, { id: 1 }, { id: 2 }],
[{ id: 1 }, { id: 3 }, { id: 2 }],
[{ id: 1 }, { id: 2 }, { id: 5 }],
];
afterItems = [[{ id: 1 }, { id: 2 }], [{ id: 3 }], [{ id: 5 }]];
Assert.deepEqual(
instance.group(...beforeItems),
afterItems,
"Should remove duplicates from groups of objects"
);
});