gpii-universal
Version:
Cross platform, core components of the GPII personalization infrastructure.
109 lines (95 loc) • 3.55 kB
JavaScript
/*
* Settings Handler Utilities Tests
*
* Copyright 2016 Raising the Floor - International
*
* Licensed under the New BSD license. You may not use this file except in
* compliance with this License.
*
* The research leading to these results has received funding from the European Union's
* Seventh Framework Programme (FP7/2007-2013)
* under grant agreement no. 289016.
*
* 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.registerNamespace("jqUnit"),
kettle = require("kettle");
fluid.registerNamespace("gpii.tests.settingsHandlers");
kettle.loadTestingSupport();
require("settingsHandlers");
gpii.tests.settingsHandlers.readFile = function () {
// check that we're able to read existing file:
var result = gpii.settingsHandlers.readFile({
filename: __dirname + "/data/basic.json"
});
jqUnit.assertDeepEq("Expecting to have read the file properly", { Hello: "World" }, JSON.parse(result));
// check reading non-existing file
var result2 = gpii.settingsHandlers.readFile({
filename: __dirname + "/data/bogus.json"
});
jqUnit.assertEquals("Expecting undefined on reading non-existing file", undefined, result2);
};
var handleFileSolutionEntryData = {
existingFileSolutionEntry: {
options: {
"filename": __dirname + "/data/basic.json"
},
settings: {
"Hello": "Mars"
}
},
missingFileSolutionEntry: {
options: {
"filename": __dirname + "/data/bogus.json"
},
settings: {
"Hello": "Mars"
}
}
};
gpii.tests.settingsHandlers.handleFileSolutionEntry = function () {
// an existing file should be parsed and the current value returned:
var result = gpii.settingsHandlers.handleFileSolutionEntry(handleFileSolutionEntryData.existingFileSolutionEntry,
gpii.settingsHandlers.getSettings, gpii.settingsHandlers.JSONSettingsHandler.parser, false);
jqUnit.assertDeepEq("Expecting to have read the file properly", {
"settings": {
"Hello": "World"
}
}, result);
// a non-existing file should return undefined for the requested settings:
result = gpii.settingsHandlers.handleFileSolutionEntry(handleFileSolutionEntryData.missingFileSolutionEntry,
gpii.settingsHandlers.getSettings, gpii.settingsHandlers.JSONSettingsHandler.parser, false);
jqUnit.assertDeepEq("Expecting to get 'undefined' values for settings requested", {
"settings": {
"Hello": undefined
}
}, result);
};
fluid.defaults("gpii.tests.settingsHandlers.env", {
gradeNames: ["fluid.test.testEnvironment"],
components: {
tester: {
type: "gpii.tests.settingsHandlers.caseHolder"
}
}
});
fluid.defaults("gpii.tests.settingsHandlers.caseHolder", {
gradeNames: ["fluid.test.testCaseHolder"],
modules: [{
name: "File Dependency Methods tests",
tests: [{
expect: 2,
name: "gpii.settingsHandlers.readFile tests",
func: "gpii.tests.settingsHandlers.readFile"
}, {
expect: 2,
name: "gpii.settingsHandlers.handleFileSolutionEntry tests",
func: "gpii.tests.settingsHandlers.handleFileSolutionEntry"
}]
}]
});
module.exports = kettle.test.bootstrap("gpii.tests.settingsHandlers.env");