TNL-2384 Refactored Studio's PagingView to use RequireJS Text and moved it to common so that it can also be used by LMS.
70 lines
2.4 KiB
JavaScript
70 lines
2.4 KiB
JavaScript
/**
|
|
* Provides helper methods for invoking Studio modal windows in Jasmine tests.
|
|
*/
|
|
define(["jquery", "common/js/spec_helpers/template_helpers", "js/spec_helpers/view_helpers"],
|
|
function($, TemplateHelpers, ViewHelpers) {
|
|
var installModalTemplates, getModalElement, getModalTitle, isShowingModal, hideModalIfShowing,
|
|
pressModalButton, cancelModal, cancelModalIfShowing;
|
|
|
|
installModalTemplates = function(append) {
|
|
ViewHelpers.installViewTemplates(append);
|
|
TemplateHelpers.installTemplate('basic-modal');
|
|
TemplateHelpers.installTemplate('modal-button');
|
|
};
|
|
|
|
getModalElement = function(modal) {
|
|
var modalElement;
|
|
if (modal) {
|
|
modalElement = modal.$('.wrapper-modal-window');
|
|
} else {
|
|
modalElement = $('.wrapper-modal-window');
|
|
}
|
|
return modalElement;
|
|
};
|
|
|
|
getModalTitle = function(modal) {
|
|
var modalElement = getModalElement(modal);
|
|
return modalElement.find('.modal-window-title').text();
|
|
};
|
|
|
|
isShowingModal = function(modal) {
|
|
var modalElement = getModalElement(modal);
|
|
return modalElement.length > 0;
|
|
};
|
|
|
|
hideModalIfShowing = function(modal) {
|
|
if (isShowingModal(modal)) {
|
|
modal.hide();
|
|
}
|
|
};
|
|
|
|
pressModalButton = function(selector, modal) {
|
|
var modalElement, button;
|
|
modalElement = getModalElement(modal);
|
|
button = modalElement.find(selector + ':visible');
|
|
expect(button.length).toBe(1);
|
|
button.click();
|
|
};
|
|
|
|
cancelModal = function(modal) {
|
|
pressModalButton('.action-cancel', modal);
|
|
};
|
|
|
|
cancelModalIfShowing = function(modal) {
|
|
if (isShowingModal(modal)) {
|
|
cancelModal(modal);
|
|
}
|
|
};
|
|
|
|
return $.extend(ViewHelpers, {
|
|
'getModalElement': getModalElement,
|
|
'getModalTitle': getModalTitle,
|
|
'installModalTemplates': installModalTemplates,
|
|
'isShowingModal': isShowingModal,
|
|
'hideModalIfShowing': hideModalIfShowing,
|
|
'pressModalButton': pressModalButton,
|
|
'cancelModal': cancelModal,
|
|
'cancelModalIfShowing': cancelModalIfShowing
|
|
});
|
|
});
|