From 0188d12b1d3eb46745675f94adbc036589b038fa Mon Sep 17 00:00:00 2001 From: Jonathan Hung Date: Tue, 26 Mar 2013 12:39:53 -0400 Subject: [PATCH] NO-JIRA:Merging jobara's changes. --- .../html/UIOptionsTemplate-contrast.html | 23 +---- .../components/uiOptions/js/SettingsPanels.js | 12 ++- .../demos/uiOptions/js/uiOptionsDemo.js | 6 +- src/webapp/framework/core/js/Fluid.js | 25 ++--- .../uiOptions/html/SettingsPanels-test.html | 51 ++++++++++ .../uiOptions/js/FatPanelUIOptionsTests.js | 4 +- .../uiOptions/js/FullPreviewUIOptionsTests.js | 38 +++++--- .../uiOptions/js/IntegrationTestsCommon.js | 6 +- .../framework-tests/core/js/FluidIoCTests.js | 92 ++++++++++++++----- 9 files changed, 179 insertions(+), 78 deletions(-) create mode 100644 src/webapp/tests/component-tests/uiOptions/html/SettingsPanels-test.html diff --git a/src/webapp/components/uiOptions/html/UIOptionsTemplate-contrast.html b/src/webapp/components/uiOptions/html/UIOptionsTemplate-contrast.html index 14899cb477..e5bfbfde69 100644 --- a/src/webapp/components/uiOptions/html/UIOptionsTemplate-contrast.html +++ b/src/webapp/components/uiOptions/html/UIOptionsTemplate-contrast.html @@ -2,25 +2,4 @@

Colour & Contrast

-
- - + diff --git a/src/webapp/components/uiOptions/js/SettingsPanels.js b/src/webapp/components/uiOptions/js/SettingsPanels.js index 11df767d71..07bdd5a434 100644 --- a/src/webapp/components/uiOptions/js/SettingsPanels.js +++ b/src/webapp/components/uiOptions/js/SettingsPanels.js @@ -204,13 +204,14 @@ var fluid_1_5 = fluid_1_5 || {}; themeInput: ".flc-uiOptions-themeInput" }, markup: { - label: "A%theme" + label: "A%theme" }, invokers: { style: { funcName: "fluid.uiOptions.contrast.style", args: ["{that}.dom.themeLabel", "{that}.options.strings.theme", - "{that}.options.markup.label"] + "{that}.options.markup.label", "{that}.options.controlValues.theme", + "{that}.options.classnameMap.theme"] } }, listeners: { @@ -225,10 +226,13 @@ var fluid_1_5 = fluid_1_5 || {}; } }); - fluid.uiOptions.contrast.style = function (labels, strings, markup) { + fluid.uiOptions.contrast.style = function (labels, strings, markup, theme, style) { fluid.each(labels, function (label, index) { label = $(label); - label.html(fluid.stringTemplate(markup, {theme: strings[index]})); + label.html(fluid.stringTemplate(markup, { + theme: strings[index] + })); + label.addClass(style[theme[index]]); }); }; diff --git a/src/webapp/demos/uiOptions/js/uiOptionsDemo.js b/src/webapp/demos/uiOptions/js/uiOptionsDemo.js index 2d48ccc420..563cd002e4 100644 --- a/src/webapp/demos/uiOptions/js/uiOptionsDemo.js +++ b/src/webapp/demos/uiOptions/js/uiOptionsDemo.js @@ -60,8 +60,8 @@ var demo = demo || {}; // Tell UIOptions where to redirect to if the user cancels the operation uiOptions: { - type: "fluid.uiOptions.defaultSettingsPanels", options: { + gradeNames: ["fluid.uiOptions.defaultSettingsPanels"], listeners: { onCancel: function () { window.location = "uiOptions.html"; @@ -94,7 +94,9 @@ var demo = demo || {}; // Tell UIOptions where to find all the templates, relative to this file prefix: pathToTemplates, uiOptions: { - type: "fluid.uiOptions.defaultSettingsPanels" + options: { + gradeNames: ["fluid.uiOptions.defaultSettingsPanels"] + } } }); }; diff --git a/src/webapp/framework/core/js/Fluid.js b/src/webapp/framework/core/js/Fluid.js index 1783497054..e4452018dc 100644 --- a/src/webapp/framework/core/js/Fluid.js +++ b/src/webapp/framework/core/js/Fluid.js @@ -1201,16 +1201,18 @@ var fluid = fluid || fluid_1_5; var resolveGradesImpl = function (gs, gradeNames) { gradeNames = fluid.makeArray(gradeNames); fluid.each(gradeNames, function (gradeName) { - var options = fluid.rawDefaults(gradeName) || {}; - gs.gradeHash[gradeName] = true; - gs.gradeChain.push(gradeName); - gs.optionsChain.push(options); - var oGradeNames = fluid.makeArray(options.gradeNames); - fluid.each(oGradeNames, function (gradeName) { - if (gradeName.charAt(0) !== "{" && !gs.gradeHash[gradeName]) { - resolveGradesImpl(gs, gradeName); - } - }); + if (!gs.gradeHash[gradeName]) { + var options = fluid.rawDefaults(gradeName) || {}; + gs.gradeHash[gradeName] = true; + gs.gradeChain.push(gradeName); + gs.optionsChain.push(options); + var oGradeNames = fluid.makeArray(options.gradeNames); + fluid.each(oGradeNames, function (gradeName) { + if (gradeName.charAt(0) !== "{" ) { + resolveGradesImpl(gs, gradeName); + } + }); + } }); return gs; }; @@ -1220,8 +1222,9 @@ var fluid = fluid || fluid_1_5; var gradeStruct = { gradeChain: [defaultName], gradeHash: {}, - optionsChain: [] + optionsChain: [] // this has already been fetched in resolveGrade }; + gradeStruct.gradeHash[defaultName] = true; return resolveGradesImpl(gradeStruct, gradeNames); }; diff --git a/src/webapp/tests/component-tests/uiOptions/html/SettingsPanels-test.html b/src/webapp/tests/component-tests/uiOptions/html/SettingsPanels-test.html new file mode 100644 index 0000000000..d704e8f799 --- /dev/null +++ b/src/webapp/tests/component-tests/uiOptions/html/SettingsPanels-test.html @@ -0,0 +1,51 @@ + + + + + Settings Panels Tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Settings Panelss Test Suite

+

+
+

+
    + + +
    +
    +
    + + diff --git a/src/webapp/tests/component-tests/uiOptions/js/FatPanelUIOptionsTests.js b/src/webapp/tests/component-tests/uiOptions/js/FatPanelUIOptionsTests.js index 50a77b9a92..6748cbe495 100644 --- a/src/webapp/tests/component-tests/uiOptions/js/FatPanelUIOptionsTests.js +++ b/src/webapp/tests/component-tests/uiOptions/js/FatPanelUIOptionsTests.js @@ -103,7 +103,9 @@ https://github.com/fluid-project/infusion/raw/master/Infusion-LICENSE.txt } }, uiOptions: { - type: "fluid.uiOptions.defaultSettingsPanels" + options: { + gradeNames: ["fluid.uiOptions.defaultSettingsPanels"] + } } }); jqUnit.expect(7); diff --git a/src/webapp/tests/component-tests/uiOptions/js/FullPreviewUIOptionsTests.js b/src/webapp/tests/component-tests/uiOptions/js/FullPreviewUIOptionsTests.js index f78d81f0b9..07f55a2356 100644 --- a/src/webapp/tests/component-tests/uiOptions/js/FullPreviewUIOptionsTests.js +++ b/src/webapp/tests/component-tests/uiOptions/js/FullPreviewUIOptionsTests.js @@ -41,32 +41,48 @@ https://github.com/fluid-project/infusion/raw/master/Infusion-LICENSE.txt uiOptions = innerUIOptions; } - function testToCEnhancement2() { + function requestApplierChange() { fluid.tests.uiOptions.applierRequestChanges(uiOptions, testSettings); + } + + var refreshCount = 0; + function testToCEnhancement2() { jqUnit.expect(1); - // TODO: Very unsatisfactory - the TOC resources are the final thing we wait on, and the - // event for this is very deeply buried - setTimeout(function () { - var container = uiOptions.preview.enhancerContainer; - var links = $(".flc-toc-tocContainer a", container); - jqUnit.assertTrue("ToC links created", links.length > 0); - jqUnit.start(); - }, 200); + var container = uiOptions.preview.enhancerContainer; + var links = $(".flc-toc-tocContainer a", container); + jqUnit.assertTrue("ToC links created", links.length > 0); + jqUnit.start(); } that = fluid.tests.uiOptions.mungingIntegrationTest("fluid.uiOptions.fullPreview", "#myUIOptions", { + previewEnhancer: { + options: { + components: { + tableOfContents: { + options: { + listeners: { + afterTocRender: { + listener: testToCEnhancement2, + priority: "last" + } + } + } + } + } + } + }, preview: { options: { templateUrl: "TestPreviewTemplate.html", listeners: { "onReady.toc2": { - listener: testToCEnhancement2, + listener: requestApplierChange, priority: "last" } } } } - }, testToCEnhancement); + }, testToCEnhancement); }); })(jQuery); \ No newline at end of file diff --git a/src/webapp/tests/component-tests/uiOptions/js/IntegrationTestsCommon.js b/src/webapp/tests/component-tests/uiOptions/js/IntegrationTestsCommon.js index 76106f2021..da255448d1 100644 --- a/src/webapp/tests/component-tests/uiOptions/js/IntegrationTestsCommon.js +++ b/src/webapp/tests/component-tests/uiOptions/js/IntegrationTestsCommon.js @@ -157,8 +157,8 @@ https://github.com/fluid-project/infusion/raw/master/Infusion-LICENSE.txt } }, uiOptions: { - type: "fluid.uiOptions.defaultSettingsPanels", options: { + gradeNames: ["fluid.uiOptions.defaultSettingsPanels"], listeners: { "onSave.munged": testSave } @@ -261,7 +261,9 @@ https://github.com/fluid-project/infusion/raw/master/Infusion-LICENSE.txt } }, uiOptions: { - type: "fluid.uiOptions.defaultSettingsPanels" + options: { + gradeNames: ["fluid.uiOptions.defaultSettingsPanels"] + } } }; diff --git a/src/webapp/tests/framework-tests/core/js/FluidIoCTests.js b/src/webapp/tests/framework-tests/core/js/FluidIoCTests.js index c05536858b..22da5b25ce 100644 --- a/src/webapp/tests/framework-tests/core/js/FluidIoCTests.js +++ b/src/webapp/tests/framework-tests/core/js/FluidIoCTests.js @@ -385,7 +385,7 @@ fluid.registerNamespace("fluid.tests"); gradeNames: ["fluid.eventedComponent", "autoInit"], preInitFunction: "fluid.tests.twinSubComponent.preInit", events: { - childEvent: null, + childEvent: null }, listeners: { childEvent: "{twinSubComponent}.testRealName" @@ -481,7 +481,7 @@ fluid.registerNamespace("fluid.tests"); fluid.demands("fluid.tests.demandMerge", ["fluid.tests.context1", "fluid.tests.context2", "fluid.tests.context3"], { funcName: "fluid.tests.demandMerge3", options: { - mergeKey1: "bottomValue1", + mergeKey1: "bottomValue1" } }); @@ -598,14 +598,14 @@ fluid.registerNamespace("fluid.tests"); fluid.defaults("fluid.tests.memberTest", { gradeNames: ["fluid.littleComponent", "autoInit"], members: { - expanded: { - expander: { - func: "{that}.identity", - args: "{that}.emptyArray" - } - }, - emptyArray: [], - doubleTest: "{that}.options.invokers.dummy" // double expansion tester - will explode on double expansion + expanded: { + expander: { + func: "{that}.identity", + args: "{that}.emptyArray" + } + }, + emptyArray: [], + doubleTest: "{that}.options.invokers.dummy" // double expansion tester - will explode on double expansion }, invokers: { identity: "fluid.identity", @@ -740,7 +740,7 @@ fluid.registerNamespace("fluid.tests"); options: {componentName: "fluid.tests.uploader"} }, uploaderImpl: { - type: "fluid.tests.uploaderImpl", + type: "fluid.tests.uploaderImpl" } }, distributeOptions: { @@ -1348,8 +1348,8 @@ fluid.registerNamespace("fluid.tests"); events: { boiledDouble: { events: { - event1: "{eventParent3}.events.parentEvent1", - event2: "{eventParent3}.events.parentEvent2" + event1: "{eventParent3}.events.parentEvent1", + event2: "{eventParent3}.events.parentEvent2" }, args: ["{arguments}.event1.0", "{arguments}.event2.1"] }, @@ -1357,19 +1357,19 @@ fluid.registerNamespace("fluid.tests"); }, listeners: { boiledDouble: [ - "fluid.tests.globalListener", // This tests FLUID-4337 - { // This tests FLUID-4398 - listener: "{eventChild3}.events.relayEvent", - args: "{arguments}.1" - } - ] + "fluid.tests.globalListener", // This tests FLUID-4337 + { // This tests FLUID-4398 + listener: "{eventChild3}.events.relayEvent", + args: "{arguments}.1" + } + ] } }); fluid.tests.globalListener = function (parent, arg2) { if (!parent.listenerRecord) { parent.listenerRecord = []; - }; + } parent.listenerRecord.push(arg2); }; @@ -1400,7 +1400,7 @@ fluid.registerNamespace("fluid.tests"); baseEvent: null, baseEvent2: null, boiledEvent: { - event: "baseEvent", + event: "baseEvent" } }, listeners: { @@ -1412,8 +1412,8 @@ fluid.registerNamespace("fluid.tests"); var count = 0; // Tests i) inter-event reference using unqualified local names // ii) listener reference to a non-composite boiled event without using "fire" suffix - var baseListener = function() { - ++ count; + var baseListener = function () { + ++ count; }; var that = fluid.tests.eventBoiling2({ listeners: { @@ -1566,7 +1566,7 @@ fluid.registerNamespace("fluid.tests"); "child1.child2.child3.options.value", "child1.child2.child3.otherValue", "child1.child2.child8.options.value" - ]; + ]; checkValue("Original value", reins, reins.options.headValue, expectedPaths); reins.options.headValue = "headValue2"; // in poor style, modify options to verify reexpansion reins.child1.options.components.child2 = fluid.copy(fluid.defaults("fluid.tests.reinstantiation").components.child1.options.components.child2); @@ -2275,7 +2275,7 @@ fluid.registerNamespace("fluid.tests"); var island1 = fluid.tests.island1(); var island2 = fluid.tests.island2(); island1.events.outEvent2.addListener(function() { - island2.events.inEvent.fire() + island2.events.inEvent.fire(); }); island1.events.outEvent2.fire(); jqUnit.assert("No error fired on cross-island dispatch"); @@ -2297,6 +2297,7 @@ fluid.registerNamespace("fluid.tests"); jqUnit.test("FLUID-4937: gradeName merging at instantiation", function () { jqUnit.expect(2); +<<<<<<< .merge_file_E34j18 that = fluid.tests.comp({ gradeNames: ["fluid.tests.grade"] }); @@ -2330,6 +2331,47 @@ fluid.registerNamespace("fluid.tests"); fluid.tests.initFuncs({ gradeNames: ["fluid.tests.grade"] }); +======= + var 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")); + }); + + fluid.registerNamespace("fluid.tests.initFuncs"); + + fluid.defaults("fluid.tests.initFuncs", { + gradeNames: ["fluid.littleComponent", "autoInit"], + preInitFunction: "fluid.tests.initFuncs.preInit", + postInitFunction: "fluid.tests.initFuncs.postInit", + finalInitFunction: "fluid.tests.initFuncs.finalInit" + }); + + fluid.each(["preInit", "postInit", "finalInit"], function (init) { + fluid.tests.initFuncs[init] = function () { + jqUnit.assert("The " + init + " function fired"); + }; + }); + + jqUnit.test("FLUID-4939: init functions with gradeName modification", function () { + jqUnit.expect(3); + fluid.tests.initFuncs({ + gradeNames: ["fluid.tests.grade"] + }); + }); + + fluid.defaults("fluid.tests.circularGrade", { + gradeNames: ["fluid.tests.initFuncs", "autoInit"], + extraOpt: "extraOpt" + }); + + jqUnit.test("FLUID-4939: init functions with gradeName modification - circular grades", function () { + jqUnit.expect(3); + fluid.tests.initFuncs({ + gradeNames: ["fluid.tests.circularGrade"] + }); +>>>>>>> .merge_file_9KkPQz }); })(jQuery);