diff options
Diffstat (limited to 'test/scenario/dslSpec.js')
| -rw-r--r-- | test/scenario/dslSpec.js | 82 | 
1 files changed, 40 insertions, 42 deletions
| diff --git a/test/scenario/dslSpec.js b/test/scenario/dslSpec.js index 14ca8b2c..bbba0b7d 100644 --- a/test/scenario/dslSpec.js +++ b/test/scenario/dslSpec.js @@ -1,41 +1,21 @@ -/** - * Very basic Mock of angular. - */ -function AngularMock() { -  this.reset(); -  this.service = this; -} - -AngularMock.prototype.reset = function() { -  this.log = []; -}; - -AngularMock.prototype.$browser = function() { -  this.log.push('$brower()'); -  return this; -}; - -AngularMock.prototype.poll = function() { -  this.log.push('$brower.poll()'); -  return this; -}; - -AngularMock.prototype.notifyWhenNoOutstandingRequests = function(fn) { -  this.log.push('$brower.notifyWhenNoOutstandingRequests()'); -  fn(); -}; -  describe("angular.scenario.dsl", function() { -  var $window; -  var $root; -  var application; +  var $window, $root; +  var application, eventLog;    beforeEach(function() { +    eventLog = [];      $window = {        document: _jQuery("<div></div>"), -      angular: new AngularMock() +      angular: new angular.scenario.testing.MockAngular()      }; -    $root = angular.scope(); +    $root = angular.scope({ +      emit: function(eventName) { +        eventLog.push(eventName); +      }, +      on: function(eventName) { +        eventLog.push('Listener Added for ' + eventName); +      } +    });      $root.futures = [];      $root.futureLog = [];      $root.$window = $window; @@ -54,7 +34,7 @@ describe("angular.scenario.dsl", function() {        };      });      $root.application = new angular.scenario.Application($window.document); -    $root.application.getWindow = function() { +    $root.application.getWindow_ = function() {        return $window;      };      $root.application.navigateTo = function(url, callback) { @@ -74,13 +54,14 @@ describe("angular.scenario.dsl", function() {        expect($root.futureLog).toEqual([]);        $window.resume();        expect($root.futureLog). -        toEqual(['waiting for you to call resume() in the console']); +        toEqual(['waiting for you to resume']); +      expect(eventLog).toContain('InteractiveWait');      });    });    describe('Pause', function() {      beforeEach(function() { -      $root.setTimeout = function(fn, value) { +      $root.$window.setTimeout = function(fn, value) {          $root.timerValue = value;          fn();        }; @@ -127,13 +108,6 @@ describe("angular.scenario.dsl", function() {        expect($window.location).toEqual('http://myurl');        expect($root.futureResult).toEqual('http://myurl');      }); - -    it('should wait for angular notify when no requests pending', function() { -      $root.dsl.navigateTo('url'); -      expect($window.angular.log).toContain('$brower.poll()'); -      expect($window.angular.log). -        toContain('$brower.notifyWhenNoOutstandingRequests()'); -    });    });    describe('Element Finding', function() { @@ -199,6 +173,24 @@ describe("angular.scenario.dsl", function() {          $root.dsl.element('a').click();        }); +      it('should navigate page if click on anchor', function() { +        expect($window.location).not.toEqual('#foo'); +        doc.append('<a href="#foo"></a>'); +        $root.dsl.element('a').click(); +        expect($window.location).toEqual('#foo'); +      }); + +      it('should count matching elements', function() { +        doc.append('<span></span><span></span>'); +        $root.dsl.element('span').count(); +        expect($root.futureResult).toEqual(2); +      }); + +      it('should return count of 0 if no matching elements', function() { +        $root.dsl.element('span').count(); +        expect($root.futureResult).toEqual(0); +      }); +        it('should get attribute', function() {          doc.append('<div id="test" class="foo"></div>');          $root.dsl.element('#test').attr('class'); @@ -249,6 +241,12 @@ describe("angular.scenario.dsl", function() {          expect($root.futureResult).toEqual(2);        }); +      it('should return 0 if repeater doesnt match', function() { +        doc.find('ul').html(''); +        chain.count(); +        expect($root.futureResult).toEqual(0); +      }); +        it('should get a row of bindings', function() {          chain.row(1);          expect($root.futureResult).toEqual(['felisa', 'female']); | 
