GUI -- reworking code to eliminate unnecessary 'ONOS' global.
- re-package fn and keys factories into util module.
Change-Id: I3d9f50b9a91468140845e862aff3fdb518948774
diff --git a/web/gui/src/main/webapp/tests/fw/lib/fn-spec.js b/web/gui/src/main/webapp/tests/app/fw/util/fn-spec.js
similarity index 92%
rename from web/gui/src/main/webapp/tests/fw/lib/fn-spec.js
rename to web/gui/src/main/webapp/tests/app/fw/util/fn-spec.js
index 44c12b5..6cf41a6 100644
--- a/web/gui/src/main/webapp/tests/fw/lib/fn-spec.js
+++ b/web/gui/src/main/webapp/tests/app/fw/util/fn-spec.js
@@ -15,7 +15,7 @@
*/
/*
- ONOS GUI -- General Purpose Functions - Unit Tests
+ ONOS GUI -- Util -- General Purpose Functions - Unit Tests
@author Simon Hunt
*/
@@ -29,20 +29,12 @@
someDate = new Date(),
stringArray = ['foo', 'bar'];
- beforeEach(module('onosApp'));
+ beforeEach(module('onosUtil'));
beforeEach(inject(function (FnService) {
fs = FnService;
}));
- it('should have ONOS defined', function () {
- expect(ONOS).toBeDefined();
- });
-
- it('should have FnService defined', function () {
- expect(fs).toBeDefined();
- });
-
// === Tests for isF()
it('isF(): null for undefined', function () {
@@ -158,11 +150,11 @@
it('contains(): false for non-array', function () {
expect(fs.contains(null, 1)).toBeFalsy();
});
- it ('contains(): true for contained item', function () {
+ it('contains(): true for contained item', function () {
expect(fs.contains(someArray, 1)).toBeTruthy();
expect(fs.contains(stringArray, 'bar')).toBeTruthy();
});
- it ('contains(): false for non-contained item', function () {
+ it('contains(): false for non-contained item', function () {
expect(fs.contains(someArray, 109)).toBeFalsy();
expect(fs.contains(stringArray, 'zonko')).toBeFalsy();
});
diff --git a/web/gui/src/main/webapp/tests/fw/lib/keys-spec.js b/web/gui/src/main/webapp/tests/app/fw/util/keys-spec.js
similarity index 94%
rename from web/gui/src/main/webapp/tests/fw/lib/keys-spec.js
rename to web/gui/src/main/webapp/tests/app/fw/util/keys-spec.js
index 02f7700..a37a84b 100644
--- a/web/gui/src/main/webapp/tests/fw/lib/keys-spec.js
+++ b/web/gui/src/main/webapp/tests/app/fw/util/keys-spec.js
@@ -20,12 +20,13 @@
@author Simon Hunt
*/
describe('factory: fw/lib/keys.js', function() {
- var ks, fs, $log,
+ var $log, ks, fs,
d3Elem, elem, last;
+
- beforeEach(module('onosApp'));
+ beforeEach(module('onosUtil'));
- beforeEach(inject(function (KeyService, FnService, _$log_) {
+ beforeEach(inject(function (_$log_, KeyService, FnService) {
$log = _$log_;
ks = KeyService;
fs = FnService;
@@ -44,12 +45,7 @@
d3.select('#ptest').remove();
});
- it('should have injected stuff defined', function () {
- expect(ONOS).toBeDefined();
- expect(ks).toBeDefined();
- expect(fs).toBeDefined();
- });
-
+ // Code to emulate key presses....
// NOTE: kinda messy, but it seems to get the job done.
function jsKeyDown(element, code) {
var ev = document.createEvent('KeyboardEvent');
@@ -82,6 +78,8 @@
}
// === Theme related tests
+ // TODO: fix these tests once we have ThemeService
+/*
it('should start in light theme', function () {
expect(ks.theme()).toEqual('light');
});
@@ -89,6 +87,7 @@
jsKeyDown(elem, 84); // 'T'
expect(ks.theme()).toEqual('dark');
});
+*/
// === Key binding related tests
it('should start with default key bindings', function () {
@@ -201,7 +200,10 @@
var k = {'space': cb, 'T': cb},
count = 0;
- function cb() { count++; }
+ function cb(token, key, code, ev) {
+ count++;
+ //console.debug('count = ' + count, token, key, code);
+ }
spyOn($log, 'warn');
diff --git a/web/gui/src/main/webapp/tests/app/mast/mast-spec.js b/web/gui/src/main/webapp/tests/app/mast/mast-spec.js
new file mode 100644
index 0000000..bf8194e
--- /dev/null
+++ b/web/gui/src/main/webapp/tests/app/mast/mast-spec.js
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2014 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ ONOS GUI -- Masthead Controller - Unit Tests
+
+ @author Simon Hunt
+ */
+describe('Controller: MastCtrl', function () {
+ // instantiate the masthead module
+ beforeEach(module('onosMast'));
+
+ var $log, ctrl;
+
+ // we need an instance of the controller
+ beforeEach(inject(function(_$log_, $controller) {
+ $log = _$log_;
+ ctrl = $controller('MastCtrl');
+ }));
+
+ it('should start with no radio buttons', function () {
+ expect(ctrl.radio).toBeNull();
+ });
+});
\ No newline at end of file
diff --git a/web/gui/src/main/webapp/tests/app/onos-spec.js b/web/gui/src/main/webapp/tests/app/onos-spec.js
new file mode 100644
index 0000000..e00fed4
--- /dev/null
+++ b/web/gui/src/main/webapp/tests/app/onos-spec.js
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2014 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ ONOS GUI -- Main App Controller - Unit Tests
+
+ @author Simon Hunt
+ */
+describe('Controller: OnosCtrl', function () {
+ // instantiate the main module
+ beforeEach(module('onosApp'));
+
+ var $log, ctrl;
+
+ // we need an instance of the controller
+ beforeEach(inject(function(_$log_, $controller) {
+ $log = _$log_;
+ ctrl = $controller('OnosCtrl');
+ }));
+
+ it('should report version 1.1.0', function () {
+ expect(ctrl.version).toEqual('1.1.0');
+ });
+});
\ No newline at end of file
diff --git a/web/gui/src/main/webapp/tests/karma.conf.js b/web/gui/src/main/webapp/tests/karma.conf.js
index 5a25638..4e28fc6 100644
--- a/web/gui/src/main/webapp/tests/karma.conf.js
+++ b/web/gui/src/main/webapp/tests/karma.conf.js
@@ -22,12 +22,15 @@
'../tp/jquery-2.1.1.min.js',
// production code...
+ // make sure modules are defined first...
'../app/onos.js',
- '../app/fw/lib/*.js',
- '../app/fw/mast/*.js',
+ '../app/fw/util/util.js',
+ // now load services etc. that augment the modules
+ '../app/**/*.js',
// unit test code...
- 'fw/lib/*.js'
+ 'app/*-spec.js',
+ 'app/**/*-spec.js'
],