GUI -- User Prefs written as a service; persistent topo settings updated a bit; still WIP.

Change-Id: I6945dd9eb4b325a8f1637c44e2c4b271126b2bc4
diff --git a/web/gui/src/main/webapp/tests/app/fw/util/prefs-spec.js b/web/gui/src/main/webapp/tests/app/fw/util/prefs-spec.js
new file mode 100644
index 0000000..2b8a15c
--- /dev/null
+++ b/web/gui/src/main/webapp/tests/app/fw/util/prefs-spec.js
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2015 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 -- Util -- User Preference Service - Unit Tests
+ */
+describe('factory: fw/util/prefs.js', function() {
+    var $cookies, ps, fs;
+
+    beforeEach(module('onosUtil'));
+
+    var mockCookies = {
+        foo: 'bar'
+    };
+
+    beforeEach(function () {
+        module(function ($provide) {
+            $provide.value('$cookies', mockCookies);
+        });
+    });
+
+    beforeEach(inject(function (PrefsService, FnService, _$cookies_) {
+        ps = PrefsService;
+        fs = FnService;
+        $cookies = _$cookies_;
+    }));
+
+    it('should define PrefsService', function () {
+        expect(ps).toBeDefined();
+    });
+
+    it('should define api functions', function () {
+        expect(fs.areFunctions(ps, [
+            'getPrefs', 'setPrefs'
+        ])).toBe(true);
+    });
+
+    // === Tests for getPrefs()
+    // TODO unit tests for getPrefs()
+
+    // === Tests for setPrefs()
+    // TODO unit tests for setPrefs()
+
+});
diff --git a/web/gui/src/main/webapp/tests/karma.conf.js b/web/gui/src/main/webapp/tests/karma.conf.js
index afd40ec..bd572c1 100644
--- a/web/gui/src/main/webapp/tests/karma.conf.js
+++ b/web/gui/src/main/webapp/tests/karma.conf.js
@@ -19,6 +19,7 @@
         '../tp/angular.js',
         '../tp/angular-mocks.js',
         '../tp/angular-route.js',
+        '../tp/angular-cookies.js',
         '../tp/d3.js',
         '../tp/topojson.v1.min.js',