From 3fab5d9879272b9f991a67c8135754f00c055834 Mon Sep 17 00:00:00 2001 From: Andres Ornelas Date: Mon, 24 May 2010 15:25:30 -0700 Subject: added error handling on scenario definition --- src/scenario/DSL.js | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/scenario/DSL.js (limited to 'src/scenario/DSL.js') diff --git a/src/scenario/DSL.js b/src/scenario/DSL.js new file mode 100644 index 00000000..4bc21d6c --- /dev/null +++ b/src/scenario/DSL.js @@ -0,0 +1,47 @@ +angular.scenario.dsl.browser = { + navigateTo: function(url){ + $scenario.addStep('Navigate to: ' + url, function(done){ + var self = this; + self.testFrame.load(function(){ + self.testFrame.unbind(); + self.testDocument = jQuery(self.testWindow.document); + done(); + }); + if (this.testFrame.attr('src') == url) { + this.testWindow.location.reload(); + } else { + this.testFrame.attr('src', url); + } + }); + } +}; + +angular.scenario.dsl.input = function(selector) { + return { + enter: function(value){ + $scenario.addStep("Set input text of '" + selector + "' to value '" + + value + "'", function(done){ + var input = this.testDocument.find('input[name=' + selector + ']'); + input.val(value); + input.trigger('change'); + this.testWindow.angular.element(input[0]).trigger('change'); + done(); + }); + } + }; +}; + +angular.scenario.dsl.expect = function(selector) { + return { + toEqual: function(expected) { + $scenario.addStep("Expect that " + selector + " equals '" + expected + "'", function(done){ + var attrName = selector.substring(2, selector.length - 2); + var binding = this.testDocument.find('span[ng-bind=' + attrName + ']'); + if (binding.text() != expected) { + this.result.fail("Expected '" + expected + "' but was '" + binding.text() + "'"); + } + done(); + }); + } + }; +}; -- cgit v1.2.3 From 55c0767f16e60e77e9d1b4d46698ddbf343ed8b1 Mon Sep 17 00:00:00 2001 From: Andres Ornelas Date: Mon, 24 May 2010 17:48:17 -0700 Subject: added dsl tests and select method --- src/scenario/DSL.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/scenario/DSL.js') diff --git a/src/scenario/DSL.js b/src/scenario/DSL.js index 4bc21d6c..842f7c7a 100644 --- a/src/scenario/DSL.js +++ b/src/scenario/DSL.js @@ -19,14 +19,24 @@ angular.scenario.dsl.browser = { angular.scenario.dsl.input = function(selector) { return { enter: function(value){ - $scenario.addStep("Set input text of '" + selector + "' to value '" + + $scenario.addStep("Set input text of '" + selector + "' to '" + value + "'", function(done){ var input = this.testDocument.find('input[name=' + selector + ']'); input.val(value); - input.trigger('change'); this.testWindow.angular.element(input[0]).trigger('change'); done(); }); + }, + select: function(value){ + $scenario.addStep("Select radio '" + selector + "' to '" + + value + "'", function(done){ + var input = this.testDocument. + find(':radio[name$=@' + selector + '][value=' + value + ']'); + var event = this.testWindow.document.createEvent('MouseEvent'); + event.initMouseEvent('click', true, true, this.testWindow, 0,0,0,0,0, false, false, false, false, 0, null); + input[0].dispatchEvent(event); + done(); + }); } }; }; -- cgit v1.2.3 From 5992e81b2e302c3b3375567e347227f6a9496585 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Tue, 25 May 2010 14:23:52 -0700 Subject: added rake task to create a single file for scenario runner --- src/scenario/DSL.js | 1 + 1 file changed, 1 insertion(+) (limited to 'src/scenario/DSL.js') diff --git a/src/scenario/DSL.js b/src/scenario/DSL.js index 842f7c7a..8cbb256d 100644 --- a/src/scenario/DSL.js +++ b/src/scenario/DSL.js @@ -5,6 +5,7 @@ angular.scenario.dsl.browser = { self.testFrame.load(function(){ self.testFrame.unbind(); self.testDocument = jQuery(self.testWindow.document); + self.testWindow = self.testFrame[0].contentWindow; done(); }); if (this.testFrame.attr('src') == url) { -- cgit v1.2.3 From 177873df86b6b069892184f24518959e7cef33cd Mon Sep 17 00:00:00 2001 From: Andres Ornelas Date: Wed, 26 May 2010 16:09:48 -0700 Subject: navigate to scenario waits for outstanding requests to clear before proceeding. --- src/scenario/DSL.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/scenario/DSL.js') diff --git a/src/scenario/DSL.js b/src/scenario/DSL.js index 8cbb256d..f1b9c226 100644 --- a/src/scenario/DSL.js +++ b/src/scenario/DSL.js @@ -6,7 +6,9 @@ angular.scenario.dsl.browser = { self.testFrame.unbind(); self.testDocument = jQuery(self.testWindow.document); self.testWindow = self.testFrame[0].contentWindow; - done(); + self.$browser = self.testWindow.angular.service.$browser(); + self.notifyWhenNoOutstandingRequests = bind(self.$browser, self.$browser.notifyWhenNoOutstandingRequests); + self.notifyWhenNoOutstandingRequests(done); }); if (this.testFrame.attr('src') == url) { this.testWindow.location.reload(); -- cgit v1.2.3 From cb5d21192787985bbff20b369e885639de253345 Mon Sep 17 00:00:00 2001 From: Andres Ornelas Date: Thu, 27 May 2010 11:26:23 -0700 Subject: extracted switchRouteMatcher and added necessary libraries to angular-scenario --- src/scenario/DSL.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/scenario/DSL.js') diff --git a/src/scenario/DSL.js b/src/scenario/DSL.js index f1b9c226..b318e99c 100644 --- a/src/scenario/DSL.js +++ b/src/scenario/DSL.js @@ -4,8 +4,8 @@ angular.scenario.dsl.browser = { var self = this; self.testFrame.load(function(){ self.testFrame.unbind(); - self.testDocument = jQuery(self.testWindow.document); self.testWindow = self.testFrame[0].contentWindow; + self.testDocument = jQuery(self.testWindow.document); self.$browser = self.testWindow.angular.service.$browser(); self.notifyWhenNoOutstandingRequests = bind(self.$browser, self.$browser.notifyWhenNoOutstandingRequests); self.notifyWhenNoOutstandingRequests(done); -- cgit v1.2.3 From fe03ea0d1f8814817bee5a35d745db16858eb490 Mon Sep 17 00:00:00 2001 From: Andres Ornelas Date: Wed, 9 Jun 2010 12:35:40 -0700 Subject: add repeater DSL and fix typo --- src/scenario/DSL.js | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) (limited to 'src/scenario/DSL.js') diff --git a/src/scenario/DSL.js b/src/scenario/DSL.js index b318e99c..a017f29d 100644 --- a/src/scenario/DSL.js +++ b/src/scenario/DSL.js @@ -44,17 +44,20 @@ angular.scenario.dsl.input = function(selector) { }; }; -angular.scenario.dsl.expect = function(selector) { - return { - toEqual: function(expected) { - $scenario.addStep("Expect that " + selector + " equals '" + expected + "'", function(done){ - var attrName = selector.substring(2, selector.length - 2); - var binding = this.testDocument.find('span[ng-bind=' + attrName + ']'); - if (binding.text() != expected) { - this.result.fail("Expected '" + expected + "' but was '" + binding.text() + "'"); +angular.scenario.dsl.expect = { + repeater: function(selector) { + return { + count: { + toEqual: function(number) { + $scenario.addStep("Expect to see " + number + " items repeated with selector '" + selector + "'", function(done) { + var items = this.testDocument.find(selector); + if (items.length != number) { + this.result.fail("Expected " + number + " but was " + items.length); + } + done(); + }); } - done(); - }); - } - }; + } + }; + } }; -- cgit v1.2.3 From f6a405c283ba1f2e0037e0bedb52e5cee618d4ff Mon Sep 17 00:00:00 2001 From: Andres Ornelas Date: Wed, 9 Jun 2010 13:30:54 -0700 Subject: change repeater count expectation wording --- src/scenario/DSL.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/scenario/DSL.js') diff --git a/src/scenario/DSL.js b/src/scenario/DSL.js index a017f29d..feedcdcc 100644 --- a/src/scenario/DSL.js +++ b/src/scenario/DSL.js @@ -49,7 +49,7 @@ angular.scenario.dsl.expect = { return { count: { toEqual: function(number) { - $scenario.addStep("Expect to see " + number + " items repeated with selector '" + selector + "'", function(done) { + $scenario.addStep("Expect that there are " + number + " items in Repeater with selector '" + selector + "'", function(done) { var items = this.testDocument.find(selector); if (items.length != number) { this.result.fail("Expected " + number + " but was " + items.length); -- cgit v1.2.3 From d0a468153d98c892323cb135b509cb46f67e44fd Mon Sep 17 00:00:00 2001 From: Andres Ornelas Date: Wed, 9 Jun 2010 15:38:56 -0700 Subject: fixed undefined testWindow bug --- src/scenario/DSL.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/scenario/DSL.js') diff --git a/src/scenario/DSL.js b/src/scenario/DSL.js index feedcdcc..194a28d6 100644 --- a/src/scenario/DSL.js +++ b/src/scenario/DSL.js @@ -2,7 +2,7 @@ angular.scenario.dsl.browser = { navigateTo: function(url){ $scenario.addStep('Navigate to: ' + url, function(done){ var self = this; - self.testFrame.load(function(){ + this.testFrame.load(function(){ self.testFrame.unbind(); self.testWindow = self.testFrame[0].contentWindow; self.testDocument = jQuery(self.testWindow.document); @@ -11,7 +11,7 @@ angular.scenario.dsl.browser = { self.notifyWhenNoOutstandingRequests(done); }); if (this.testFrame.attr('src') == url) { - this.testWindow.location.reload(); + this.testFrame[0].contentWindow.location.reload(); } else { this.testFrame.attr('src', url); } -- cgit v1.2.3