Skip to content

Commit

Permalink
Merge "Relate-Bug: #1476413 1. file name changes for test, test suite…
Browse files Browse the repository at this point in the history
…s, mock data - .test.js, .test.suite.js, .mock.data.js 2. adding infra for running library api tests. 3. new grunt target grunt api for starting api task. 4. updated test runner functions for common and lib tests. 5. TODO current GridView lib tests are not functoinal. needs update in *.lib.test.suite.js"
  • Loading branch information
Zuul authored and opencontrail-ci-admin committed Aug 25, 2015
2 parents ece3580 + bd4dee8 commit 14bc7d0
Show file tree
Hide file tree
Showing 12 changed files with 760 additions and 9 deletions.
85 changes: 85 additions & 0 deletions webroot/test/ui/Gruntfile.js
@@ -0,0 +1,85 @@
/*
* Copyright (c) 2015 Juniper Networks, Inc. All rights reserved.
*/
module.exports = function (grunt) {
grunt.loadNpmTasks("grunt-contrib-jshint");
grunt.loadNpmTasks("grunt-contrib-qunit");
grunt.loadNpmTasks('grunt-qunit-junit');
grunt.loadNpmTasks('grunt-karma');
//this option is to avoid interruption of test case execution on failure of one in sequence
//grunt.option('force',true);
grunt.option('stack', true);

var commonFiles = [
{pattern: 'contrail-web-core/webroot/assets/**/!(tests)/*.js', included: false},
{pattern: 'contrail-web-core/webroot/assets/**/*.css', included: false},
{pattern: 'contrail-web-core/webroot/css/**/*.css', included: false},
{pattern: 'contrail-web-core/webroot/test/ui/**/*.css', included: false},

{pattern: 'contrail-web-core/webroot/font/**/*.woff', included: false},
{pattern: 'contrail-web-core/webroot/assets/**/*.woff', included: false},
{pattern: 'contrail-web-core/webroot/assets/**/*.ttf', included: false},

{pattern: 'contrail-web-core/webroot/img/**/*.png', included: false},
{pattern: 'contrail-web-core/webroot/css/**/*.png', included: false},
{pattern: 'contrail-web-core/webroot/assets/select2/styles/**/*.png', included: false},
{pattern: 'contrail-web-core/webroot/css/**/*.gif', included: false},

{pattern: 'contrail-web-core/webroot/test/ui/js/co.test.app.js'},
{pattern: 'contrail-web-core/webroot/test/ui/js/**/co.test.*.js', included: false},
{pattern: 'contrail-web-core/webroot/test/ui/js/**/*.lib.test.suite.js', included: false},
{pattern: 'contrail-web-core/webroot/test/ui/js/**/*.lib.test.js', included: false},
//{pattern: 'contrail-web-core/webroot/test/ui/js/**/*.lib.test.js', included: false},
//{pattern: 'contrail-web-core/webroot/test/ui/js/**/*.lib.test.suite.js', included: false},
//{pattern: 'contrail-web-core/webroot/test/ui/js/**/{!(*.lib.test.js), !(*.test.suite.js)}', included: false},
//{pattern: 'contrail-web-core/webroot/test/ui/js/**/*.js', included: false},

{pattern: 'contrail-web-core/webroot/js/**/*.js', included: false},
{pattern: 'contrail-web-core/webroot/templates/*.tmpl', included: false}
];

var karmaConfig = {
options: {
configFile: 'karma.config.js',
},
grid: {
options: {
files: [
//{pattern: 'contrail-web-core/webroot/assets/slickgrid/js/slick.*.js'},
{pattern: 'contrail-web-core/webroot/test/ui/js/grid/GridView.lib.test.js', included: false}
],
preprocessors: {
'contrail-web-core/webroot/assets/slickgrid/js/slick.*.js': ['coverage']
}
}
}
};

for (var feature in karmaConfig) {
if (feature != 'options') {
karmaConfig[feature]['options']['files'] = commonFiles.concat(karmaConfig[feature]['options']['files']);
}
}

grunt.initConfig({
pkg: grunt.file.readJSON(__dirname + "/../../../../contrail-web-core/package.json"),
karma: karmaConfig,
jshint: {
options: {
jshintrc: ".jshintrc"
},
files: ["Gruntfile.js"]
},
api: {
grid: 'grid'
}

});

grunt.registerMultiTask('api', 'Core libs API Test Cases', function () {
if (this.target == 'grid') {
grunt.task.run('karma:grid');

}
});
};
71 changes: 71 additions & 0 deletions webroot/test/ui/js/co.test.app.js
@@ -0,0 +1,71 @@
/*
* Copyright (c) 2014 Juniper Networks, Inc. All rights reserved.
*/

var coreBaseDir = "/base/contrail-web-core/webroot",
featurePkg = "testLibApi";

require([
coreBaseDir + '/js/core-app-utils.js',
coreBaseDir + '/test/ui/js/co.test.app.utils.js'
], function () {
globalObj['env'] = "test";


requirejs.config({
baseUrl: coreBaseDir,
paths: getCoreAppAndCoreTestAppPaths(coreBaseDir),
map: coreAppMap,
shim: getCoreAppAndCoreTestAppShims(),
waitSeconds: 0
});

require(['co-test-init'], function () {
setFeaturePkgAndInit(featurePkg);
});


function getCoreAppAndCoreTestAppPaths(coreBaseDir) {
var coreTestAppPathObj = {};
var coreAppPaths = getCoreAppPaths(coreBaseDir);
var coreTestAppPaths = getCoreTestAppPaths(coreBaseDir);

for (var key in coreAppPaths) {
if (coreAppPaths.hasOwnProperty(key)) {
var value = coreAppPaths[key];
coreTestAppPathObj[key] = value;
}
}

for (var key in coreTestAppPaths) {
if (coreTestAppPaths.hasOwnProperty(key)) {
var value = coreTestAppPaths[key];
coreTestAppPathObj[key] = value;
}
}

return coreTestAppPathObj;
};

function getCoreAppAndCoreTestAppShims() {

var coreTestAppShims = {};

for (var key in coreAppShim) {
if (coreAppShim.hasOwnProperty(key)) {
var value = coreAppShim[key];
coreTestAppShims[key] = value;
}
}

for (var key in coreTestAppShim) {
if (coreTestAppShim.hasOwnProperty(key)) {
var value = coreTestAppShim[key];
coreTestAppShims[key] = value;
}
}

return coreTestAppShims;
};

});
19 changes: 14 additions & 5 deletions webroot/test/ui/js/co.test.app.utils.js
Expand Up @@ -11,13 +11,22 @@ function getCoreTestAppPaths(coreBaseDir) {
'co-test-constants' : coreTestAppBaseDir + '/co.test.constants',
'co-test-utils' : coreTestAppBaseDir + '/co.test.utils',
'co-test-messages' : coreTestAppBaseDir + '/co.test.messages',
'co-test-mockdata' : coreTestAppBaseDir + '/co.test.mockdata',
'co-unit-test' : coreTestAppBaseDir + '/co.unit.test',
'co-test-grid-listmodel': coreTestAppBaseDir + '/grid/listmodel.test',
'co-test-grid-gridview' : coreTestAppBaseDir + '/grid/gridview.test'
'co-test-mockdata' : coreTestAppBaseDir + '/co.test.mock.data',
'co-test-unit' : coreTestAppBaseDir + '/co.test.unit',
'co-grid-contrail-list-model-test-suite' : coreTestAppBaseDir + '/grid/ContrailListModel.test.suite',
'co-grid-view-test-suite' : coreTestAppBaseDir + '/grid/GridView.test.suite',
'co-grid-contrail-list-model-lib-test-suite' : coreTestAppBaseDir + '/grid/ContrailListModel.lib.test.suite',
'co-grid-view-lib-test-suite' : coreTestAppBaseDir + '/grid/GridView.lib.test.suite'
};
}

function coreTestAppShim() {
return {};
return {
'co-grid-contrail-list-model-lib-test-suite' : {
deps: ['slick.core', 'slick.dataview']
},
'co-grid-view-lib-test-suite' : {
deps: ['slick.core', 'slick.grid', 'jquery-ui', 'slick.enhancementpager']
}
};
}
48 changes: 46 additions & 2 deletions webroot/test/ui/js/co.test.init.js
Expand Up @@ -2,12 +2,12 @@
* Copyright (c) 2014 Juniper Networks, Inc. All rights reserved.
*/

var cowc, cowu, cowf, cowch, cowm, cotc;
var cowc, cowu, cowf, cowl, cowch, cowm, cotc;

var allTestFiles = [], nmTestKarma = window.__karma__;

for (var file in nmTestKarma.files) {
if (/Test\.js$/.test(file)) {
if (/\.test\.js$/.test(file)) {
allTestFiles.push(file);
}
}
Expand Down Expand Up @@ -62,6 +62,9 @@ function setFeaturePkgAndInit(featurePkg) {
featurePkgObj.webServerInfo = 'smWebServerInfoMockData';
break;

case 'testLibApi':
return testLibApiAppInit({});

}

testAppInit(getTestAppConfig(featurePkgObj));
Expand Down Expand Up @@ -124,3 +127,44 @@ function testAppInit(testAppConfig) {
});
});
}

function testLibApiAppInit(testAppConfig) {

require(['jquery', 'knockout', 'bezier'], function ($, Knockout, Bezier) {
window.ko = Knockout;
window.Bezier = Bezier;

if (document.location.pathname.indexOf('/vcenter') == 0) {
$('head').append('<base href="/vcenter/" />');
}

require(depArray, function ($, _, validation, CoreConstants, CoreUtils, CoreFormatters, CoreMessages, CoreLabels, Knockout, Cache,
contrailCommon, CoreCommonTmpl, CoreTestUtils, CoreTestConstants, LayoutHandler) {
cowc = new CoreConstants();
cowu = new CoreUtils();
cowf = new CoreFormatters();
cowm = new CoreMessages();
cowl = new CoreLabels();
cowch = new Cache();
cotc = CoreTestConstants;

$("body").addClass('navbar-fixed');
$("body").append(CoreTestUtils.getPageHeaderHTML());
$("body").append(CoreTestUtils.getSidebarHTML());
$("body").append(CoreCommonTmpl);

var cssList = CoreTestUtils.getCSSList();

for (var i = 0; i < cssList.length; i++) {
$("body").append(cssList[i]);
}
require(allTestFiles, function () {
requirejs.config({
deps: allTestFiles,
callback: window.__karma__.start
});
});
});
});

}
42 changes: 42 additions & 0 deletions webroot/test/ui/js/co.test.mock.data.js
@@ -0,0 +1,42 @@
/*
* Copyright (c) 2015 Juniper Networks, Inc. All rights reserved.
*/
define(['underscore'], function (_) {

//Compares client UTC time with the server UTC time and display alert if mismatch exceeds the threshold
var webServerInfoMockData = {
"orchestrationModel": [
"openstack"
],
"serverUTCTime": 1436203008000,
"hostName": "a7s14",
"role": [
"superAdmin"
],
"featurePkg": {
"webController": false,
"webStorage": false,
"serverManager": false
},
"uiConfig": {
"nodemanager": {
"installed": true
}
},
"loggedInOrchestrationMode": "openstack"
};

var disabledFeatureMockData = {"disabled":["config_alarms","mon_infra_mx"]},
webControllerMockData = {"webController":{"path":"/usr/src/contrail-web-controller","enable":true}},
ctWebServerInfoMockData = _.extend({}, webServerInfoMockData, {"featurePkg": { "webController": true }}),
smWebServerInfoMockData = _.extend({}, webServerInfoMockData, {"featurePkg": { "serverManager": true }}),
sWebServerInfoMockData = _.extend({}, webServerInfoMockData, {"featurePkg": { "webStorage": true }});

return {
ctWebServerInfoMockData: ctWebServerInfoMockData,
smWebServerInfoMockData: smWebServerInfoMockData,
sWebServerInfoMockData: sWebServerInfoMockData,
disabledFeatureMockData: disabledFeatureMockData,
webControllerMockData: webControllerMockData
}
});

0 comments on commit 14bc7d0

Please sign in to comment.