GUI -- Modified Toolbar service to have multiple rows of buttons. Added more buttons in topoToolbar - WIP.

Change-Id: Ibc749b4ecdcb07ecf63d50817f8af3d455b4cde0
diff --git a/web/gui/src/main/webapp/tests/app/fw/widget/toolbar-spec.js b/web/gui/src/main/webapp/tests/app/fw/widget/toolbar-spec.js
index 63d77b5..10a22b4 100644
--- a/web/gui/src/main/webapp/tests/app/fw/widget/toolbar-spec.js
+++ b/web/gui/src/main/webapp/tests/app/fw/widget/toolbar-spec.js
@@ -141,8 +141,8 @@
 
     it('should create a separator div', function () {
         spyOn($log, 'warn');
-        var toolbar = tbs.createToolbar('foo');
-        var tbar = d3.select('#toolbar-foo');
+        var toolbar = tbs.createToolbar('foo'),
+            tbar = d3.select('#toolbar-foo');
 
         toolbar.addSeparator();
         expect($log.warn).not.toHaveBeenCalled();
@@ -150,4 +150,31 @@
         expect(tbar.select('.separator').size()).toBe(1);
     });
 
+    it('should add another row of buttons', function () {
+        var toolbar = tbs.createToolbar('foo'),
+            tbar = d3.select('#toolbar-foo'),
+            rows;
+        toolbar.addButton('btn0', 'gid');
+        toolbar.addRow();
+        toolbar.addButton('btn1', 'gid');
+
+        rows = tbar.selectAll('.tbar-row');
+        expect(rows.size()).toBe(2);
+        rows.each(function (d, i) {
+            expect(d3.select(this)
+                .select('div')
+                .attr('id','toolbar-foo-btn' + i)
+                .empty())
+                .toBe(false);
+        });
+    });
+
+    it('should not add a row if current row is empty', function () {
+        var toolbar = tbs.createToolbar('foo');
+        expect(toolbar.addRow()).toBeNull();
+        toolbar.addButton('btn0', 'gid');
+        expect(toolbar.addRow()).not.toBeNull();
+        expect(toolbar.addRow()).toBeNull();
+    });
+
 });