Add 'setWidget' action for plugin registration

Change-Id: I1ecdc14b7f906e2d3e15f3775af1dc98fd5bf2f8
diff --git a/dev/js/spec/pluginSpec.js b/dev/js/spec/pluginSpec.js
index cabeae9..36d6f64 100644
--- a/dev/js/spec/pluginSpec.js
+++ b/dev/js/spec/pluginSpec.js
@@ -150,6 +150,88 @@
       expect(manager.buttonGroup('result').length).toEqual(1);
       manager.destroy();
     });
+
+    it('should accept valid registrations for addWidget', function () {
+      let p = KorAP.Panel["result"] = panelClass.create();
+      
+      let manager = pluginServerClass.create();
+
+      manager.register({
+        name : 'Check',
+        embed : [{
+          panel : 'result',
+          title : 'Add',
+          onClick : {
+            template : 'about:blank',
+            action : 'addWidget'
+          }
+        }]
+      });
+
+      let b = p.actions.element().firstChild;
+      expect(b.hasAttribute("data-icon")).toBeFalsy();
+      expect(b.hasAttribute("cls")).toBeFalsy();
+      expect(b.getAttribute("title")).toEqual("Add");
+
+      expect(p.element().querySelectorAll("iframe").length).toEqual(0);
+
+      b.click();
+
+      expect(p.element().querySelectorAll("iframe").length).toEqual(1);
+      expect(p.element().querySelectorAll("div.view.widget").length).toEqual(1);
+      expect(p.element().querySelectorAll("div.view.show.widget").length).toEqual(1);
+
+      b.click();
+
+      expect(p.element().querySelectorAll("iframe").length).toEqual(2);
+      expect(p.element().querySelectorAll("div.view.widget").length).toEqual(2);
+      expect(p.element().querySelectorAll("div.view.show.widget").length).toEqual(2);
+      
+      manager.destroy();
+
+      KorAP.Panel["result"] = undefined;
+    });
+
+
+    it('should accept valid registrations for setWidget', function () {
+      let p = KorAP.Panel["result"] = panelClass.create();
+      
+      let manager = pluginServerClass.create();
+
+      manager.register({
+        name : 'Check',
+        embed : [{
+          panel : 'result',
+          title : 'Add',
+          onClick : {
+            template : 'about:blank',
+            action : 'setWidget'
+          }
+        }]
+      });
+
+      let b = p.actions.element().firstChild;
+      expect(b.hasAttribute("data-icon")).toBeFalsy();
+      expect(b.hasAttribute("cls")).toBeFalsy();
+      expect(b.getAttribute("title")).toEqual("Add");
+
+      expect(p.element().querySelectorAll("iframe").length).toEqual(0);
+
+      b.click();
+
+      expect(p.element().querySelectorAll("iframe").length).toEqual(1);
+      expect(p.element().querySelectorAll("div.view.show.widget").length).toEqual(1);
+
+      b.click();
+
+      expect(p.element().querySelectorAll("iframe").length).toEqual(1);
+      expect(p.element().querySelectorAll("div.view.widget").length).toEqual(1);
+      expect(p.element().querySelectorAll("div.view.show.widget").length).toEqual(0);
+      
+      manager.destroy();
+
+      KorAP.Panel["result"] = undefined;
+    });
   });
   
   describe('KorAP.Plugin.Widget', function () {