Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge remote-tracking branch 'amb26/FLUID-4937'
* amb26/FLUID-4937:
  FLUID-4937: Fixed support for "direct option dynamic gradeNames"
  FLUID-4937: unit test
  • Loading branch information
michelled committed Mar 19, 2013
2 parents a653e4e + 0024364 commit 251aff2
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 2 deletions.
4 changes: 3 additions & 1 deletion src/webapp/framework/core/js/Fluid.js
Expand Up @@ -1241,7 +1241,9 @@ var fluid = fluid || fluid_1_5;
}
var mergePolicy = {};
for (var i = 0; i < mergeArgs.length; ++ i) {
mergePolicy = $.extend(true, mergePolicy, mergeArgs[i].mergePolicy);
if (mergeArgs[i] && mergeArgs[i].mergePolicy) {
mergePolicy = $.extend(true, mergePolicy, mergeArgs[i].mergePolicy);
}
}
mergeArgs = [mergePolicy, {}].concat(mergeArgs);
var mergedDefaults = fluid.merge.apply(null, mergeArgs);
Expand Down
3 changes: 2 additions & 1 deletion src/webapp/framework/core/js/FluidIoC.js
Expand Up @@ -388,8 +388,9 @@ var fluid_1_5 = fluid_1_5 || {};

fluid.computeDynamicGrades = function (that, shadow, strategy) {
var gradeNames = that.options.gradeNames;
var defaultsBlock = fluid.findMergeBlock(shadow.mergeOptions.mergeBlocks, "defaults");
var dynamicGrades = fluid.remove_if(gradeNames, function (gradeName) {
return gradeName.charAt(0) === "{";
return gradeName.charAt(0) === "{" || !fluid.hasGrade(defaultsBlock.target, gradeName);
}, []);
var resolved = [];
fluid.each(dynamicGrades, function (dynamicGrade) {
Expand Down
23 changes: 23 additions & 0 deletions src/webapp/tests/framework-tests/core/js/FluidIoCTests.js
Expand Up @@ -2280,5 +2280,28 @@ fluid.registerNamespace("fluid.tests");
island1.events.outEvent2.fire();
jqUnit.assert("No error fired on cross-island dispatch");
});

fluid.defaults("fluid.tests.grade", {
gradeNames: ["fluid.littleComponent", "autoInit"],
gradeOpt: {
gradeOpt: "gradeOpt"
}
});

fluid.defaults("fluid.tests.comp", {
gradeNames: ["fluid.littleComponent", "autoInit"],
opt: {
opt: "opt"
}
});

jqUnit.test("FLUID-4937: gradeName merging at instantiation", function () {
jqUnit.expect(2);
that = fluid.tests.comp({
gradeNames: ["fluid.tests.grade"]
});
jqUnit.assertTrue("The original option should exist", fluid.get(that, "options.opt.opt"));
jqUnit.assertTrue("The merged grade option should exist", fluid.get(that, "options.gradeOpt.gradeOpt"));
});

})(jQuery);

0 comments on commit 251aff2

Please sign in to comment.