Skip to content

Commit

Permalink
FLUID-4608: More test for language controls
Browse files Browse the repository at this point in the history
  • Loading branch information
acheetham committed Feb 17, 2012
1 parent a10c779 commit 91cb865
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 12 deletions.
30 changes: 25 additions & 5 deletions js/VideoPlayer_controllers.js
Original file line number Diff line number Diff line change
Expand Up @@ -736,13 +736,15 @@ https://github.com/fluid-project/infusion/raw/master/Infusion-LICENSE.txt
*****************************************************************************/
fluid.defaults("fluid.videoPlayer.controllers.languageControls", {
gradeNames: ["fluid.viewComponent", "autoInit"],
preInitFunction: "fluid.videoPlayer.controllers.languageControls.preInit",
finalInitFunction: "fluid.videoPlayer.controllers.languageControls.finalInit",
selectors: {
button: ".flc-videoPlayer-languageButton",
menu: ".flc-videoPlayer-languageMenu"
},
events: {
onReady: null,
onRenderingComplete: null,
activatedByKeyboard: null
},
languages: [],
Expand All @@ -767,8 +769,9 @@ https://github.com/fluid-project/infusion/raw/master/Infusion-LICENSE.txt
type: "fluid.videoPlayer.controllers.languageMenu",
container: "{languageControls}.dom.menu",
options: {
languages: "{languageControls}.languages",
model: "{languageControls}.model",
model: {
languages: "{languageControls}.options.languages",
},
modelPath: "{languageControls}.options.modelPath",
showHidePath: "{languageControls}.options.showHidePath",
applier: "{languageControls}.applier",
Expand All @@ -777,11 +780,21 @@ https://github.com/fluid-project/infusion/raw/master/Infusion-LICENSE.txt
},
eventBinder: {
type: "fluid.videoPlayer.controllers.languageControls.eventBinder",
createOnEvent: "onReady"
createOnEvent: "onRenderingComplete",
options: {
events: {
onReady:"{languageControls}.events.onReady"
},
}
}
}
});

fluid.videoPlayer.controllers.languageControls.preInit = function (that) {
that.options.components.menu.options.model.activeLanguage = fluid.get(that.model, that.options.currentLanguagePath);
that.options.components.menu.options.model.showLanguage = fluid.get(that.model, that.options.showHidePath);
};

fluid.videoPlayer.controllers.languageControls.setUpKeyboardA11y = function (that) {
fluid.tabindex(that.locate("menu"), -1);
that.locate("button").fluid("activatable", [fluid.identity, {
Expand Down Expand Up @@ -810,7 +823,7 @@ https://github.com/fluid-project/infusion/raw/master/Infusion-LICENSE.txt

fluid.videoPlayer.controllers.languageControls.finalInit = function (that) {
fluid.videoPlayer.controllers.languageControls.setUpKeyboardA11y(that);
that.events.onReady.fire(that);
that.events.onRenderingComplete.fire(that);
};

/**************************************************************************************
Expand All @@ -819,14 +832,21 @@ https://github.com/fluid-project/infusion/raw/master/Infusion-LICENSE.txt

fluid.defaults("fluid.videoPlayer.controllers.languageControls.eventBinder", {
gradeNames: ["fluid.eventedComponent", "autoInit"],
events: {
onReady: null
},
listeners: {
"{button}.events.onPress": "{menu}.toggleView",
"{button}.events.activatedByKeyboard": "{menu}.showAndSelect",

"{menu}.events.hiddenByKeyboard": "{button}.focus",
// "{menu}.events.activatedByKeyboard": "{button}.focus",
"{menu}.events.languageOnOff": "{button}.requestStateChange"
}
},
finalInitFunction: "fluid.videoPlayer.controllers.languageControls.eventBinder.finalInit"
});
fluid.videoPlayer.controllers.languageControls.eventBinder.finalInit = function (that) {
that.events.onReady.fire();
};

})(jQuery);
22 changes: 15 additions & 7 deletions tests/js/VideoPlayerControlsTests.js
Original file line number Diff line number Diff line change
Expand Up @@ -336,19 +336,27 @@ fluid.registerNamespace("fluid.tests");
};

fluid.tests.initLangControls = function (testOpts) {
var opts = fluid.copy(baseMenuOpts);
var opts = fluid.copy(baseLanguageControlsOpts);
$.extend(true, opts, testOpts);
return fluid.videoPlayer.controllers.languageMenu("#basic-menu-test", opts);
return fluid.videoPlayer.controllers.languageControls("#basic-languageControls-test", opts);
};
videoPlayerControlsTests.asyncTest("Language Controls: default functionality", function () {
var numLangs = baseLanguageControlsOpts.languages.length;
var testControls = fluid.tests.initLangControls({
listeners: {
onReady: function (that) {
var langList = that.locate("language");
jqUnit.assertEquals("Menu should have correct number of languages listed", numLangs, langList.length);

start();
onReady: {
args: "{languageControls}",
listener: function (that) {
var langList = that.menu.locate("language");
jqUnit.assertEquals("Menu should have correct number of languages listed", numLangs, langList.length);
jqUnit.notVisible("Menu should not be visible initially", that.menu.container);

that.locate("button")[0].click();
jqUnit.isVisible("Clicking the button should show menu", that.menu.container);
that.locate("button")[0].click();
jqUnit.notVisible("Clicking the button again should hide menu again", that.menu.container);
start();
}
}
}
});
Expand Down

0 comments on commit 91cb865

Please sign in to comment.