Files
poky/bitbake/lib/toaster/toastergui/static/js/tests/test.js
Michael Wood abfd095a05 bitbake: toaster: testsjs Add call back to append elements on completion of tests
When the tests are complete add some marker elements to the test page
DOM which can then looked at for a selenium browser test.

(Bitbake rev: 81798ab046b0717614e28e0a339172f3803e451b)

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-06-15 08:35:03 +01:00

183 lines
4.8 KiB
JavaScript

"use strict";
/* Unit tests for Toaster's JS */
/* libtoaster tests */
QUnit.done(function(details){
/* Selenium test will look for these elements to get the results */
var body = $('body');
body.append("<span id='tests-failed'>"+details.failed+"</span>");
body.append("<span id='tests-passed'>"+details.passed+"</span>");
body.append("<span id='tests-total'>"+details.total+"</span>");
});
QUnit.test("Layer alert notification", function(assert) {
var layer = {
"layerdetailurl":"/toastergui/project/1/layer/22",
"vcs_url":"git://example.com/example.git",
"detail":"[ git://example.com/example.git | master ]",
"vcs_reference":"master",
"id": 22,
"name":"meta-example"
};
var layerDepsList = [
{
"layerdetailurl":"/toastergui/project/1/layer/9",
"vcs_url":"git://example.com/example.git",
"detail":"[ git://example.com/example.git | master ]",
"vcs_reference":"master",
"id": 9,
"name":"meta-example-two"
},
{
"layerdetailurl":"/toastergui/project/1/layer/9",
"vcs_url":"git://example.com/example.git",
"detail":"[ git://example.com/example.git | master ]",
"vcs_reference":"master",
"id": 10,
"name":"meta-example-three"
},
];
var msg = libtoaster.makeLayerAddRmAlertMsg(layer, layerDepsList, true);
var test = $("<div></div>");
test.html(msg);
assert.equal(test.children("strong").text(), "3");
assert.equal(test.children("a").length, 3);
});
QUnit.test("Project info", function(assert){
var done = assert.async();
libtoaster.getProjectInfo(libtoaster.ctx.projectPageUrl, function(prjInfo){
assert.ok(prjInfo.machine.name);
assert.ok(prjInfo.releases.length > 0);
assert.ok(prjInfo.layers.length > 0);
assert.ok(prjInfo.freqtargets);
assert.ok(prjInfo.release);
done();
});
});
QUnit.test("Show notification", function(assert){
var msg = "Testing";
var element = $("#change-notification-msg");
libtoaster.showChangeNotification(msg);
assert.equal(element.text(), msg);
assert.ok(element.is(":visible"));
$("#change-notification").hide();
});
var layer = {
"id": 1,
"name": "meta-testing",
"layerdetailurl": "/toastergui/project/1/layer/1"
};
QUnit.test("Add layer", function(assert){
var done = assert.async();
/* Wait for the modal to be added to the dom */
var checkModal = setInterval(function(){
if ($("#dependencies-modal").length > 0) {
$("#dependencies-modal .btn-primary").click();
clearInterval(checkModal);
}
}, 200);
/* Compare the number of layers before and after the add in the project */
libtoaster.getProjectInfo(libtoaster.ctx.projectPageUrl, function(prjInfo){
var origNumLayers = prjInfo.layers.length;
libtoaster.addRmLayer(layer, true, function(deps){
libtoaster.getProjectInfo(libtoaster.ctx.projectPageUrl,
function(prjInfo){
assert.ok(prjInfo.layers.length > origNumLayers,
"Layer not added to project");
done();
});
});
});
});
QUnit.test("Rm layer", function(assert){
var done = assert.async();
libtoaster.addRmLayer(layer, false, function(deps){
assert.equal(deps.length, 0);
done();
});
});
QUnit.test("Parse url params", function(assert){
var params = libtoaster.parseUrlParams();
assert.ok(params);
});
QUnit.test("Dump url params", function(assert){
var params = libtoaster.dumpsUrlParams();
assert.ok(params);
});
QUnit.test("Make typeaheads", function(assert){
var layersT = $("#layers");
var machinesT = $("#machines");
var projectsT = $("#projects");
var recipesT = $("#recipes");
libtoaster.makeTypeahead(layersT,
libtoaster.ctx.layersTypeAheadUrl, {}, function(){});
libtoaster.makeTypeahead(machinesT,
libtoaster.ctx.machinesTypeAheadUrl, {}, function(){});
libtoaster.makeTypeahead(projectsT,
libtoaster.ctx.projectsTypeAheadUrl, {}, function(){});
libtoaster.makeTypeahead(recipesT,
libtoaster.ctx.recipesTypeAheadUrl, {}, function(){});
assert.ok(recipesT.data('typeahead'));
assert.ok(layersT.data('typeahead'));
assert.ok(projectsT.data('typeahead'));
assert.ok(recipesT.data('typeahead'));
});
/* Page init functions */
QUnit.test("Import layer page init", function(assert){
assert.throws(importLayerPageInit());
});
QUnit.test("Project page init", function(assert){
assert.throws(projectPageInit());
});
QUnit.test("Layer details page init", function(assert){
assert.throws(layerDetailsPageInit());
});
QUnit.test("Layer btns init", function(assert){
assert.throws(layerBtnsInit());
});
QUnit.test("Table init", function(assert){
assert.throws(tableInit({ url : ctx.tableUrl }));
});
$(document).ajaxError(function(event, jqxhr, settings, errMsg){
if (errMsg === 'abort')
return;
QUnit.test("Ajax error", function(assert){
assert.notOk(jqxhr.responseText);
});
});