/*jslint nomen: true*/
/*globals define, window*/
// since jscoverage strips named defines, we mock the data directly as defined (in require.js)
require.s.contexts._.defined['de_epages/externalcontent/gadgetdialog/JSONGetGadgetInformation'] = {
"GadgetGroups": [{
"Alias": "Information",
"Gadgets": [{
"Alias": "RSS"
}, {
"Alias": "Maps"
}, {
"Alias": "Translation"
}]
}, {
"Alias": "Multimedia",
"Gadgets": [{
"Alias": "ExternalVideo"
}, {
"Alias": "ContentSlider"
}]
}, {
"Alias": "Social",
"Gadgets": [{
"Alias": "Facebook"
}, {
"Alias": "Twitter"
}, {
"Alias": "GooglePlus"
}, {
"Alias": "OtherButtons"
}]
}]
};
define([
'jquery',
'testsuite/qunit',
'./main-view',
'$ready!'
/**
* gadgetsdialog test case: constants
* @param {[type]} $ jQuery
* @param {[type]} QUnit QUnit
* @param {[type]} Mainview Instance of main view
*/
], function ($, QUnit, Mainview) {
'use strict';
var mainview,
testObject = {},
optionsRss = {
gadget: {
alias: 'rss',
options: {}
},
callback: function (_data) {
testObject = _data;
}
},
optionsOverview = {
gadget: null
};
QUnit.module('de_epages/externalcontent/gadgetdialog/main-view', {
setup: function () {
mainview = new Mainview();
},
teardown: function () {
$('.ui-dialog').remove();
}
});
QUnit.test('Check methods of main-view', function () {
$.each([
'close',
'open',
'apply',
'removeContent',
'renderWith',
'select',
'updateContentView',
'initialize'
], function () {
QUnit.strictEqual(
$.isFunction(mainview[this]),
true,
'Check if *' + this + '* is a function of *main-view*'
);
});
});
QUnit.asyncTest('Check dom nodes and dialog handling (overview and rss gadget)', function () {
mainview.open(optionsOverview);
window.setTimeout(function () {
QUnit.strictEqual(
$('.ui-dialog').length > 0 && $('.ui-dialog').is(':visible'),
true,
'Open(): Check if gadget dialog is created and visible'
);
$('.ui-dialog input[value=RSS]').trigger('click').trigger('change');
window.setTimeout(function () {
QUnit.strictEqual(
$('form#ep-gadgets-rss').length > 0,
true,
'Open(): Check if content (rss gadget) is rendered'
);
mainview.close();
QUnit.strictEqual(
$('.ui-dialog').is(':visible'),
false,
'Close(): Check if gadget dialog is hidden'
);
QUnit.start();
}, 200);
}, 200);
});
QUnit.asyncTest('Check *apply* button functionality', function () {
mainview.open(optionsRss);
window.setTimeout(function () {
$('.ui-dialog input[type=url]').val('http://feeds2.feedburner.com/ComputerbaseNews');
$($('.ui-dialog .ui-dialog-buttonset button')[0]).trigger('click');
QUnit.deepEqual(
testObject, {
alias: "rss",
cartridge: "externalcontent",
options: {
layout: "default",
numberOfEntries: 10,
onlyHeadlines: false,
onlySnippets: false,
showImages: true,
url: ""
}
},
'Check if callback returns default values on apply'
);
QUnit.start();
}, 200);
});
});