Created environment for UI test
Change-Id: Icdc737f3ddfe3cc1602eb4304c0d5e405b1a341a
diff --git a/xos/tests/ui/.gitignore b/xos/tests/ui/.gitignore
new file mode 100644
index 0000000..0ed1513
--- /dev/null
+++ b/xos/tests/ui/.gitignore
@@ -0,0 +1,3 @@
+node_modules/
+bower_components/
+test-result/
diff --git a/xos/tests/ui/README.md b/xos/tests/ui/README.md
new file mode 100644
index 0000000..878723c
--- /dev/null
+++ b/xos/tests/ui/README.md
@@ -0,0 +1,8 @@
+# UI Test
+
+This folder contain the configuration files to test custom views
+
+To execute the tests, run:
+- `npm install`
+- `bower install`
+- `npm test`
\ No newline at end of file
diff --git a/xos/tests/ui/bower.json b/xos/tests/ui/bower.json
new file mode 100644
index 0000000..cebef37
--- /dev/null
+++ b/xos/tests/ui/bower.json
@@ -0,0 +1,28 @@
+{
+ "name": "ui",
+ "description": "Test configuration for Custom Views",
+ "main": "index.js",
+ "authors": [
+ "Open Networking Lab"
+ ],
+ "license": "Apache-2.0",
+ "moduleType": [],
+ "homepage": "ngxoslib.wiki.opencord.org",
+ "private": true,
+ "ignore": [
+ "**/.*",
+ "node_modules",
+ "bower_components",
+ "test",
+ "tests"
+ ],
+ "devDependencies": {
+ "jquery": "~3.1.0",
+ "jasmine-jquery": "~2.1.1",
+ "ng-xos-lib": "opencord/ng-xos-lib",
+ "angular-mocks": "~1.5.8"
+ },
+ "resolutions": {
+ "angular": "1.4.7"
+ }
+}
diff --git a/xos/tests/ui/karma.conf.views.js b/xos/tests/ui/karma.conf.views.js
new file mode 100644
index 0000000..3cf82df
--- /dev/null
+++ b/xos/tests/ui/karma.conf.views.js
@@ -0,0 +1,136 @@
+'use strict';
+
+// THIS KARMA CONF WILL ITERATE THE VIEW FOLDER AND PERFORM ALL THE TESTS!!!
+
+// Karma configuration
+// Generated on Tue Oct 06 2015 09:27:10 GMT+0000 (UTC)
+
+/* eslint indent: [2,2], quotes: [2, "single"]*/
+
+const babelPreset = require('babel-preset-es2015');
+const fs = require('fs');
+
+const viewDir = '../../core/xoslib/static/js/';
+const vendorDir = '../../core/xoslib/static/js/vendor/';
+let viewFiles = fs.readdirSync(viewDir);
+let vendorFiles = fs.readdirSync(vendorDir);
+
+viewFiles = viewFiles.filter(f => f.indexOf('js') >= 0).filter(f => f.match(/^xos[A-Z][a-z]+/)).map(f => `${viewDir}${f}`);
+
+vendorFiles = vendorFiles.filter(f => f.indexOf('js') >= 0).filter(f => f.match(/^xos[A-Z][a-z]+/)).map(f => `${vendorDir}${f}`);
+
+/*eslint-disable*/
+
+var files = [
+ 'node_modules/babel-polyfill/dist/polyfill.js',
+
+
+ // loading jquery (it's used in tests)
+ `./bower_components/jquery/dist/jquery.js`,
+ `./bower_components/jasmine-jquery/lib/jasmine-jquery.js`,
+
+ // loading helpers and vendors
+ `./bower_components/ng-xos-lib/dist/ngXosVendor.min.js`,
+ `./bower_components/ng-xos-lib/dist/ngXosHelpers.min.js`,
+
+ // loading ngMock
+ 'template.module.js',
+ `./bower_components/angular-mocks/angular-mocks.js`,
+]
+.concat(vendorFiles)
+.concat(viewFiles)
+.concat([
+ // loading tests
+ `xosHelpers/spec/test_helpers.js`,
+ `../../../views/ngXosViews/*/spec/*.test.js`,
+ `../../../views/ngXosViews/*/spec/**/*.mock.js`
+]);
+
+module.exports = function(config) {
+/*eslint-enable*/
+ config.set({
+
+ // base path that will be used to resolve all patterns (eg. files, exclude)
+ basePath: '',
+
+
+ // frameworks to use
+ // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
+ frameworks: ['jasmine'],
+
+
+ // list of files / patterns to load in the browser
+ files: files,
+
+
+ // list of files to exclude
+ exclude: [
+ ],
+
+
+ // preprocess matching files before serving them to the browser
+ // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
+ preprocessors: {
+ '../../../views/ngXosViews/*/spec/*.test.js': ['babel'],
+ '../../../views/ngXosViews/*/spec/**/*.mock.js': ['babel'],
+ },
+
+ babelPreprocessor: {
+ options: {
+ presets: [babelPreset],
+ sourceMap: 'inline'
+ }
+ },
+
+ //ngHtml2JsPreprocessor: {
+ // stripPrefix: 'src/', //strip the src path from template url (http://stackoverflow.com/questions/22869668/karma-unexpected-request-when-testing-angular-directive-even-with-ng-html2js)
+ // moduleName: 'templates' // define the template module name
+ //},
+
+ // test results reporter to use
+ // possible values: 'dots', 'progress'
+ // available reporters: https://npmjs.org/browse/keyword/karma-reporter
+ reporters: ['mocha', 'junit', 'coverage'],
+
+ junitReporter: {
+ outputDir: 'test-result',
+ useBrowserName: false,
+ outputFile: 'test-results.xml'
+ },
+
+ coverageReporter: {
+ type: 'cobertura',
+ subdir: '.',
+ dir: 'test-result/'
+ },
+
+ // web server port
+ port: 9876,
+
+
+ // enable / disable colors in the output (reporters and logs)
+ colors: true,
+
+
+ // level of logging
+ // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
+ logLevel: config.LOG_INFO,
+
+
+ // enable / disable watching file and executing tests whenever any file changes
+ autoWatch: false,
+
+
+ // start these browsers
+ // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
+ browsers: [
+ 'PhantomJS',
+ //'Chrome'
+ ],
+
+
+ // Continuous Integration mode
+ // if true, Karma captures browsers, runs the tests and exits
+ singleRun: true
+ });
+};
diff --git a/xos/tests/ui/package.json b/xos/tests/ui/package.json
new file mode 100644
index 0000000..24ae3aa
--- /dev/null
+++ b/xos/tests/ui/package.json
@@ -0,0 +1,28 @@
+{
+ "name": "ui",
+ "version": "1.0.0",
+ "description": "Test configuration for Custom Views",
+ "main": "index.js",
+ "scripts": {
+ "test": "karma start karma.conf.views.js"
+ },
+ "author": "Open Networking Lab",
+ "license": "Apache-2.0",
+ "devDependencies": {
+ "babel-polyfill": "^6.7.4",
+ "babel-preset-es2015": "^6.9.0",
+ "jasmine-core": "^2.4.1",
+ "karma": "^1.1.1",
+ "karma-babel-preprocessor": "^6.0.1",
+ "karma-chrome-launcher": "^0.2.3",
+ "karma-coverage": "^0.5.5",
+ "karma-jasmine": "^0.3.8",
+ "karma-junit-reporter": "^0.4.2",
+ "karma-mocha-reporter": "^1.1.3",
+ "karma-ng-html2js-preprocessor": "^0.2.0",
+ "karma-phantomjs-launcher": "^0.2.1",
+ "phantomjs": "^2.1.7",
+ "phantomjs-prebuilt": "^2.1.7",
+ "wiredep": "^3.0.0-beta"
+ }
+}
diff --git a/xos/tests/ui/template.module.js b/xos/tests/ui/template.module.js
new file mode 100644
index 0000000..1775ed0
--- /dev/null
+++ b/xos/tests/ui/template.module.js
@@ -0,0 +1,3 @@
+'use strict';
+
+angular.module('templates', []);
\ No newline at end of file