gpii-universal
Version:
Cross platform, core components of the GPII personalization infrastructure.
124 lines (114 loc) • 4.3 kB
JavaScript
/*!
System Utils Tests
Copyright 2019 OCAD University
Licensed under the New BSD license. You may not use this file except in
compliance with this License.
You may obtain a copy of the License at
https://github.com/GPII/universal/blob/master/LICENSE.txt
*/
"use strict";
var fluid = require("infusion"),
gpii = fluid.registerNamespace("gpii"),
jqUnit = fluid.require("node-jqunit", require, "jqUnit");
fluid.require("%flowManager/src/SystemUtils.js");
fluid.registerNamespace("gpii.tests.systemUtils");
gpii.tests.systemUtils.arrayDifferenceTests = [
{
"name": "Remove a single element",
inputArray: [
"settings.configure1",
"settings.configure2",
"settings.configure3",
{
"type": "gpii.windows.updateLanguage",
"currentLanguage": "${{registry}.HKEY_CURRENT_USER\\Control Panel\\Desktop\\PreferredUILanguages}"
}
],
elementsToRemove: "settings.configure2",
expected: [
"settings.configure1",
"settings.configure3",
{
"type": "gpii.windows.updateLanguage",
"currentLanguage": "${{registry}.HKEY_CURRENT_USER\\Control Panel\\Desktop\\PreferredUILanguages}"
}
]
}, {
"name": "Remove multiple elements",
inputArray: [
"settings.configure1",
"settings.configure2",
"settings.configure3",
{
"type": "gpii.windows.updateLanguage",
"currentLanguage": "${{registry}.HKEY_CURRENT_USER\\Control Panel\\Desktop\\PreferredUILanguages}"
}
],
elementsToRemove: ["settings.configure2", "settings.configure3"],
expected: [
"settings.configure1",
{
"type": "gpii.windows.updateLanguage",
"currentLanguage": "${{registry}.HKEY_CURRENT_USER\\Control Panel\\Desktop\\PreferredUILanguages}"
}
]
}, {
"name": "Remove unfounded elements",
inputArray: [
"settings.configure1",
"settings.configure2",
"settings.configure3",
{
"type": "gpii.windows.updateLanguage",
"currentLanguage": "${{registry}.HKEY_CURRENT_USER\\Control Panel\\Desktop\\PreferredUILanguages}"
}
],
elementsToRemove: ["unfounded1", "unfounded2"],
expected: [
"settings.configure1",
"settings.configure2",
"settings.configure3",
{
"type": "gpii.windows.updateLanguage",
"currentLanguage": "${{registry}.HKEY_CURRENT_USER\\Control Panel\\Desktop\\PreferredUILanguages}"
}
]
}, {
"name": "The input array stays unchanged when one argument is not provided",
inputArray: [
"settings.configure1",
"settings.configure2",
"settings.configure3",
{
"type": "gpii.windows.updateLanguage",
"currentLanguage": "${{registry}.HKEY_CURRENT_USER\\Control Panel\\Desktop\\PreferredUILanguages}"
}
],
elementsToRemove: undefined,
expected: [
"settings.configure1",
"settings.configure2",
"settings.configure3",
{
"type": "gpii.windows.updateLanguage",
"currentLanguage": "${{registry}.HKEY_CURRENT_USER\\Control Panel\\Desktop\\PreferredUILanguages}"
}
]
}, {
"name": "Remove element from array in which other items are substring of the element to be removed",
inputArray: [
"settings.configure",
"settings.configureSecond"
],
elementsToRemove: "settings.configureSecond",
expected: [
"settings.configure"
]
}
];
jqUnit.test("gpii.arrayDifference() tests", function () {
fluid.each(gpii.tests.systemUtils.arrayDifferenceTests, function (oneTest) {
gpii.arrayDifference(oneTest.inputArray, oneTest.elementsToRemove);
jqUnit.assertDeepEq("gpii.arrayDifference() test - " + oneTest.name, oneTest.expected, oneTest.inputArray);
});
});