blob: 9bee3ece259c07f3d43a46dbe0d5cb890577acfc [file] [log] [blame]
Simon Hunt737c89f2015-01-28 12:23:19 -08001/*
2 * Copyright 2015 Open Networking Laboratory
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/*
18 ONOS GUI -- SVG -- SVG Util Service - Unit Tests
19 */
20describe('factory: fw/svg/svgUtil.js', function() {
21 var $log, fs, sus, d3Elem;
22
23 beforeEach(module('onosUtil', 'onosSvg'));
24
25 beforeEach(inject(function (_$log_, FnService, SvgUtilService) {
26 $log = _$log_;
27 fs = FnService;
28 sus = SvgUtilService;
29 d3Elem = d3.select('body').append('svg').append('defs').attr('id', 'myDefs');
30 }));
31
32 afterEach(function () {
33 d3.select('svg').remove();
34 });
35
36 it('should define SvgUtilService', function () {
37 expect(sus).toBeDefined();
38 });
39
40 it('should define api functions', function () {
41 expect(fs.areFunctions(sus, [
Simon Hunt48e61672015-01-30 14:48:25 -080042 'createDragBehavior', 'loadGlow', 'cat7', 'translate', 'stripPx'
Simon Hunt737c89f2015-01-28 12:23:19 -080043 ])).toBeTruthy();
44 });
45
Simon Hunt4b668592015-01-29 17:33:53 -080046
47 // TODO: add unit tests for drag behavior
48 // TODO: add unit tests for loadGlow
Simon Hunt4b668592015-01-29 17:33:53 -080049
Simon Hunt48e61672015-01-30 14:48:25 -080050 // === cat7
51
52 it('should define two methods on the api', function () {
53 var cat7 = sus.cat7();
54 expect(fs.areFunctions(cat7, [
55 'testCard', 'getColor'
56 ])).toBeTruthy();
57 });
58
59 it('should provide a certain shade of blue', function () {
60 expect(sus.cat7().getColor('foo', false, 'light')).toEqual('#3E5780');
61 });
62
63 it('should not matter what the ID really is for shade of blue', function () {
64 expect(sus.cat7().getColor('bar', false, 'light')).toEqual('#3E5780');
65 });
66
67 it('should provide different shade of blue for muted', function () {
68 expect(sus.cat7().getColor('foo', true, 'light')).toEqual('#A8B8CC');
69 });
70
71
72 it('should provide an alternate (dark) shade of blue', function () {
73 expect(sus.cat7().getColor('foo', false, 'dark')).toEqual('#3E5780');
74 });
75
76 it('should provide an alternate (dark) shade of blue for muted', function () {
77 expect(sus.cat7().getColor('foo', true, 'dark')).toEqual('#A8B8CC');
78 });
79
80 it('should iterate across the colors', function () {
81 expect(sus.cat7().getColor('foo', false, 'light')).toEqual('#3E5780');
82 expect(sus.cat7().getColor('bar', false, 'light')).toEqual('#78533B');
83 expect(sus.cat7().getColor('baz', false, 'light')).toEqual('#CB4D28');
84 expect(sus.cat7().getColor('goo', false, 'light')).toEqual('#018D61');
85 expect(sus.cat7().getColor('zoo', false, 'light')).toEqual('#8A2979');
86 expect(sus.cat7().getColor('pip', false, 'light')).toEqual('#006D73');
87 expect(sus.cat7().getColor('sdh', false, 'light')).toEqual('#56AF00');
88 // and cycle back to the first color for item #8
89 expect(sus.cat7().getColor('bri', false, 'light')).toEqual('#3E5780');
90 // and return the same color for the same ID
91 expect(sus.cat7().getColor('zoo', false, 'light')).toEqual('#8A2979');
92 });
Simon Hunt4b668592015-01-29 17:33:53 -080093
94 // === translate()
Simon Huntc9b73162015-01-29 14:02:15 -080095
96 it('should translate from two args', function () {
97 expect(sus.translate(1,2)).toEqual('translate(1,2)');
98 });
99
100 it('should translate from an array', function () {
101 expect(sus.translate([3,4])).toEqual('translate(3,4)');
102 });
103
Simon Hunt4b668592015-01-29 17:33:53 -0800104
105 // === stripPx()
106
107 it('should not affect a number', function () {
108 expect(sus.stripPx('4')).toEqual('4');
109 });
110
111 it('should remove trailing px', function () {
112 expect(sus.stripPx('4px')).toEqual('4');
113 });
Simon Hunt737c89f2015-01-28 12:23:19 -0800114});