diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/scenario/dsl.js | 107 | 
1 files changed, 80 insertions, 27 deletions
diff --git a/src/scenario/dsl.js b/src/scenario/dsl.js index 8235e9e0..b2270cea 100644 --- a/src/scenario/dsl.js +++ b/src/scenario/dsl.js @@ -16,15 +16,87 @@ angular.scenario.dsl('wait', function() {  });  /** -* Usage: -*    pause(seconds) pauses the test for specified number of seconds -*/ + * Usage: + *    pause(seconds) pauses the test for specified number of seconds + */  angular.scenario.dsl('pause', function() { - return function(time) { -   return this.addFuture('pause for ' + time + ' seconds', function(done) { -     this.$window.setTimeout(function() { done(null, time * 1000); }, time * 1000); -   }); - }; +  return function(time) { +    return this.addFuture('pause for ' + time + ' seconds', function(done) { +      this.$window.setTimeout(function() { done(null, time * 1000); }, time * 1000); +    }); +  }; +}); + +/** + * Usage: + *    browser().navigateTo(url) Loads the url into the frame + *    browser().navigateTo(url, fn) where fn(url) is called and returns the URL to navigate to + *    browser().location().href() the full URL of the page + *    browser().location().hash() the full hash in the url + *    browser().location().path() the full path in the url + *    browser().location().hashSearch() the hashSearch Object from angular + *    browser().location().hashPath() the hashPath string from angular + */ +angular.scenario.dsl('browser', function() { +  var chain = {}; + +  chain.navigateTo = function(url, delegate) { +    var application = this.application; +    return this.addFuture('browser navigate to ' + url, function(done) { +      if (delegate) { +        url = delegate.call(this, url); +      } +      application.navigateTo(url, function() { +        done(null, url); +      }, done); +    }); +  }; + +  chain.location = function() { +    var api = {}; + +    api.href = function() { +      return this.addFutureAction('browser url', function($window, $document, done) { +        done(null, $window.location.href); +      }); +    }; + +    api.hash = function() { +      return this.addFutureAction('browser url hash', function($window, $document, done) { +        done(null, $window.location.hash.replace('#', '')); +      }); +    }; + +    api.path = function() { +      return this.addFutureAction('browser url path', function($window, $document, done) { +        done(null, $window.location.pathname); +      }); +    }; + +    api.search = function() { +      return this.addFutureAction('browser url search', function($window, $document, done) { +        done(null, $window.angular.scope().$location.search); +      }); +    }; + +    api.hashSearch = function() { +      return this.addFutureAction('browser url hash search', function($window, $document, done) { +        done(null, $window.angular.scope().$location.hashSearch); +      }); +    }; + +    api.hashPath = function() { +      return this.addFutureAction('browser url hash path', function($window, $document, done) { +        done(null, $window.angular.scope().$location.hashPath); +      }); +    }; + +    return api; +  }; + +  return function(time) { +    return chain; +  };  });  /** @@ -50,25 +122,6 @@ angular.scenario.dsl('expect', function() {  /**   * Usage: - *    navigateTo(url) Loads the url into the frame - *    navigateTo(url, fn) where fn(url) is called and returns the URL to navigate to - */ -angular.scenario.dsl('navigateTo', function() { -  return function(url, delegate) { -    var application = this.application; -    return this.addFuture('navigate to ' + url, function(done) { -      if (delegate) { -        url = delegate.call(this, url); -      } -      application.navigateTo(url, function() { -        done(null, url); -      }, done); -    }); -  }; -}); - -/** - * Usage:   *    using(selector, label) scopes the next DSL element selection   *   * ex.  | 
