diff options
Diffstat (limited to 'test/ngRoute/routeParamsSpec.js')
| -rw-r--r-- | test/ngRoute/routeParamsSpec.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/ngRoute/routeParamsSpec.js b/test/ngRoute/routeParamsSpec.js new file mode 100644 index 00000000..1391151c --- /dev/null +++ b/test/ngRoute/routeParamsSpec.js @@ -0,0 +1,48 @@ +'use strict'; + +describe('$routeParams', function() { + + beforeEach(module('ngRoute')); + + + it('should publish the params into a service', function() { + module(function($routeProvider) { + $routeProvider.when('/foo', {}); + $routeProvider.when('/bar/:barId', {}); + }); + + inject(function($rootScope, $route, $location, $routeParams) { + $location.path('/foo').search('a=b'); + $rootScope.$digest(); + expect($routeParams).toEqual({a:'b'}); + + $location.path('/bar/123').search('x=abc'); + $rootScope.$digest(); + expect($routeParams).toEqual({barId:'123', x:'abc'}); + }); + }); + + it('should correctly extract the params when a param name is part of the route', function() { + module(function($routeProvider) { + $routeProvider.when('/bar/:foo/:bar', {}); + }); + + inject(function($rootScope, $route, $location, $routeParams) { + $location.path('/bar/foovalue/barvalue'); + $rootScope.$digest(); + expect($routeParams).toEqual({bar:'barvalue', foo:'foovalue'}); + }); + }); + + it('should support route params not preceded by slashes', function() { + module(function($routeProvider) { + $routeProvider.when('/bar:barId/foo:fooId/', {}); + }); + + inject(function($rootScope, $route, $location, $routeParams) { + $location.path('/barbarvalue/foofoovalue/'); + $rootScope.$digest(); + expect($routeParams).toEqual({barId: 'barvalue', fooId: 'foovalue'}); + }); + }); +}); |
