diff options
| author | Misko Hevery | 2012-05-17 16:36:18 -0700 | 
|---|---|---|
| committer | Misko Hevery | 2012-06-01 17:01:10 -0700 | 
| commit | 0a6e464a93d9a1e76a624b356054ce9ca4015f55 (patch) | |
| tree | 46af841a16abbc7ab77843837e4b4d386ce1ab83 /test | |
| parent | 7c2428218893f59c6a4499667488009ca67f3385 (diff) | |
| download | angular.js-0a6e464a93d9a1e76a624b356054ce9ca4015f55.tar.bz2 | |
feat($route): rename template -> tempalteUrl and add support for inline templates
BREAKING CHANGE: template in $route definition is now templateUrl
To migrate just rename `template` to `templateUrl`.
Diffstat (limited to 'test')
| -rw-r--r-- | test/ng/directive/ngViewSpec.js | 65 | ||||
| -rw-r--r-- | test/ng/routeSpec.js | 91 | 
2 files changed, 88 insertions, 68 deletions
diff --git a/test/ng/directive/ngViewSpec.js b/test/ng/directive/ngViewSpec.js index efdefae8..e90bb3bd 100644 --- a/test/ng/directive/ngViewSpec.js +++ b/test/ng/directive/ngViewSpec.js @@ -39,7 +39,7 @@ describe('ngView', function() {          };        }); -      $routeProvider.when('/some', {template: '/tpl.html', controller: Ctrl}); +      $routeProvider.when('/some', {templateUrl: '/tpl.html', controller: Ctrl});      });      inject(function($route, $rootScope, $templateCache, $location) { @@ -59,7 +59,7 @@ describe('ngView', function() {      module(function($controllerProvider, $routeProvider) {        $controllerProvider.register('MyCtrl', ['$scope', MyCtrl]); -      $routeProvider.when('/foo', {controller: 'MyCtrl', template: '/tpl.html'}); +      $routeProvider.when('/foo', {controller: 'MyCtrl', templateUrl: '/tpl.html'});      });      inject(function($route, $location, $rootScope, $templateCache) { @@ -75,8 +75,8 @@ describe('ngView', function() {    it('should load content via xhr when route changes', function() {      module(function($routeProvider) { -      $routeProvider.when('/foo', {template: 'myUrl1'}); -      $routeProvider.when('/bar', {template: 'myUrl2'}); +      $routeProvider.when('/foo', {templateUrl: 'myUrl1'}); +      $routeProvider.when('/bar', {templateUrl: 'myUrl2'});      });      inject(function($rootScope, $compile, $httpBackend, $location, $route) { @@ -97,9 +97,34 @@ describe('ngView', function() {    }); +  it('should use inline content route changes', function() { +    module(function($routeProvider) { +      $routeProvider.when('/foo', {template: '<div>{{1+3}}</div>'}); +      $routeProvider.when('/bar', {template: 'angular is da best'}); +      $routeProvider.when('/blank', {template: ''}); +    }); + +    inject(function($rootScope, $compile, $location, $route) { +      expect(element.text()).toEqual(''); + +      $location.path('/foo'); +      $rootScope.$digest(); +      expect(element.text()).toEqual('4'); + +      $location.path('/bar'); +      $rootScope.$digest(); +      expect(element.text()).toEqual('angular is da best'); + +      $location.path('/blank'); +      $rootScope.$digest(); +      expect(element.text()).toEqual(''); +    }); +  }); + +    it('should remove all content when location changes to an unknown route', function() {      module(function($routeProvider) { -      $routeProvider.when('/foo', {template: 'myUrl1'}); +      $routeProvider.when('/foo', {templateUrl: 'myUrl1'});      });      inject(function($rootScope, $compile, $location, $httpBackend, $route) { @@ -118,7 +143,7 @@ describe('ngView', function() {    it('should chain scopes and propagate evals to the child scope', function() {      module(function($routeProvider) { -      $routeProvider.when('/foo', {template: 'myUrl1'}); +      $routeProvider.when('/foo', {templateUrl: 'myUrl1'});      });      inject(function($rootScope, $compile, $location, $httpBackend, $route) { @@ -140,7 +165,7 @@ describe('ngView', function() {    it('should be possible to nest ngView in ngInclude', function() {      module(function($routeProvider) { -      $routeProvider.when('/foo', {template: 'viewPartial.html'}); +      $routeProvider.when('/foo', {templateUrl: 'viewPartial.html'});      });      inject(function($httpBackend, $location, $route, $compile, $rootScope) { @@ -156,7 +181,7 @@ describe('ngView', function() {        $httpBackend.flush();        expect(elm.text()).toEqual('include: view: content'); -      expect($route.current.template).toEqual('viewPartial.html'); +      expect($route.current.templateUrl).toEqual('viewPartial.html');        dealoc(elm)      });    }); @@ -170,7 +195,7 @@ describe('ngView', function() {      }      module(function($routeProvider) { -      $routeProvider.when('/foo', {controller: ParentCtrl, template: 'viewPartial.html'}); +      $routeProvider.when('/foo', {controller: ParentCtrl, templateUrl: 'viewPartial.html'});      }); @@ -209,8 +234,8 @@ describe('ngView', function() {      // this is a test for a bad race condition that affected feedback      module(function($routeProvider) { -      $routeProvider.when('/foo', {template: 'myUrl1'}); -      $routeProvider.when('/bar', {template: 'myUrl2'}); +      $routeProvider.when('/foo', {templateUrl: 'myUrl1'}); +      $routeProvider.when('/bar', {templateUrl: 'myUrl2'});      });      inject(function($route, $rootScope, $location, $httpBackend) { @@ -231,7 +256,7 @@ describe('ngView', function() {    it('should be async even if served from cache', function() {      module(function($routeProvider) { -      $routeProvider.when('/foo', {controller: noop, template: 'myUrl1'}); +      $routeProvider.when('/foo', {controller: noop, templateUrl: 'myUrl1'});      });      inject(function($route, $rootScope, $location, $templateCache) { @@ -262,7 +287,7 @@ describe('ngView', function() {      };      module(function($routeProvider) { -      $routeProvider.when('/foo', {template: 'tpl.html', controller: Ctrl}); +      $routeProvider.when('/foo', {templateUrl: 'tpl.html', controller: Ctrl});      });      inject(function($templateCache, $rootScope, $location) { @@ -282,7 +307,7 @@ describe('ngView', function() {    it('should destroy previous scope', function() {      module(function($routeProvider) { -      $routeProvider.when('/foo', {template: 'tpl.html'}); +      $routeProvider.when('/foo', {templateUrl: 'tpl.html'});      });      inject(function($templateCache, $rootScope, $location) { @@ -319,8 +344,8 @@ describe('ngView', function() {      };      module(function($routeProvider) { -      $routeProvider.when('/one', {template: 'one.html', controller: createCtrl('ctrl1')}); -      $routeProvider.when('/two', {template: 'two.html', controller: createCtrl('ctrl2')}); +      $routeProvider.when('/one', {templateUrl: 'one.html', controller: createCtrl('ctrl1')}); +      $routeProvider.when('/two', {templateUrl: 'two.html', controller: createCtrl('ctrl2')});      });      inject(function($httpBackend, $rootScope, $location) { @@ -368,9 +393,9 @@ describe('ngView', function() {      }      module(function($routeProvider) { -      $routeProvider.when('/bar', {template: 'tpl.html', controller: createController('bar')}); +      $routeProvider.when('/bar', {templateUrl: 'tpl.html', controller: createController('bar')});        $routeProvider.when('/foo', { -          template: 'tpl.html', controller: createController('foo'), reloadOnSearch: false}); +          templateUrl: 'tpl.html', controller: createController('foo'), reloadOnSearch: false});      });      inject(function($templateCache, $location, $rootScope) { @@ -393,7 +418,7 @@ describe('ngView', function() {    it('should evaluate onload expression after linking the content', function() {      module(function($routeProvider) { -      $routeProvider.when('/foo', {template: 'tpl.html'}); +      $routeProvider.when('/foo', {templateUrl: 'tpl.html'});      });      inject(function($templateCache, $location, $rootScope) { @@ -414,7 +439,7 @@ describe('ngView', function() {      }      module(function($routeProvider) { -      $routeProvider.when('/foo', {template: 'tpl.html', controller: MyCtrl}); +      $routeProvider.when('/foo', {templateUrl: 'tpl.html', controller: MyCtrl});      });      inject(function($templateCache, $location, $rootScope, $route) { diff --git a/test/ng/routeSpec.js b/test/ng/routeSpec.js index c3f7b357..8c5f93f9 100644 --- a/test/ng/routeSpec.js +++ b/test/ng/routeSpec.js @@ -22,7 +22,7 @@ describe('$route', function() {      module(function($routeProvider) {        $routeProvider.when('/Book/:book/Chapter/:chapter', -          {controller: noop, template: 'Chapter.html'}); +          {controller: noop, templateUrl: 'Chapter.html'});        $routeProvider.when('/Blank', {});      });      inject(function($route, $location, $rootScope) { @@ -62,7 +62,7 @@ describe('$route', function() {    it('should match a route that contains special chars in the path', function() {      module(function($routeProvider) { -      $routeProvider.when('/$test.23/foo(bar)/:baz', {template: 'test.html'}); +      $routeProvider.when('/$test.23/foo(bar)/:baz', {templateUrl: 'test.html'});      });      inject(function($route, $location, $rootScope) { @@ -87,7 +87,7 @@ describe('$route', function() {    it('should change route even when only search param changes', function() {      module(function($routeProvider) { -      $routeProvider.when('/test', {template: 'test.html'}); +      $routeProvider.when('/test', {templateUrl: 'test.html'});      });      inject(function($route, $location, $rootScope) { @@ -108,7 +108,7 @@ describe('$route', function() {    it('should allow routes to be defined with just templates without controllers', function() {      module(function($routeProvider) { -      $routeProvider.when('/foo', {template: 'foo.html'}); +      $routeProvider.when('/foo', {templateUrl: 'foo.html'});      });      inject(function($route, $location, $rootScope) { @@ -121,7 +121,7 @@ describe('$route', function() {        $location.path('/foo');        $rootScope.$digest(); -      expect($route.current.template).toEqual('foo.html'); +      expect($route.current.templateUrl).toEqual('foo.html');        expect($route.current.controller).toBeUndefined();        expect(onChangeSpy).toHaveBeenCalled();      }); @@ -132,8 +132,8 @@ describe('$route', function() {      function NotFoundCtrl() {}      module(function($routeProvider){ -      $routeProvider.when('/foo', {template: 'foo.html'}); -      $routeProvider.otherwise({template: '404.html', controller: NotFoundCtrl}); +      $routeProvider.when('/foo', {templateUrl: 'foo.html'}); +      $routeProvider.otherwise({templateUrl: '404.html', controller: NotFoundCtrl});      });      inject(function($route, $location, $rootScope) { @@ -146,7 +146,7 @@ describe('$route', function() {        $location.path('/unknownRoute');        $rootScope.$digest(); -      expect($route.current.template).toBe('404.html'); +      expect($route.current.templateUrl).toBe('404.html');        expect($route.current.controller).toBe(NotFoundCtrl);        expect(onChangeSpy).toHaveBeenCalled(); @@ -154,7 +154,7 @@ describe('$route', function() {        $location.path('/foo');        $rootScope.$digest(); -      expect($route.current.template).toEqual('foo.html'); +      expect($route.current.templateUrl).toEqual('foo.html');        expect($route.current.controller).toBeUndefined();        expect(onChangeSpy).toHaveBeenCalled();      }); @@ -163,18 +163,18 @@ describe('$route', function() {    it('should chain whens and otherwise', function() {      module(function($routeProvider){ -      $routeProvider.when('/foo', {template: 'foo.html'}). -                     otherwise({template: 'bar.html'}). -                     when('/baz', {template: 'baz.html'}); +      $routeProvider.when('/foo', {templateUrl: 'foo.html'}). +                     otherwise({templateUrl: 'bar.html'}). +                     when('/baz', {templateUrl: 'baz.html'});      });      inject(function($route, $location, $rootScope) {        $rootScope.$digest(); -      expect($route.current.template).toBe('bar.html'); +      expect($route.current.templateUrl).toBe('bar.html');        $location.url('/baz');        $rootScope.$digest(); -      expect($route.current.template).toBe('baz.html'); +      expect($route.current.templateUrl).toBe('baz.html');      });    }); @@ -209,7 +209,7 @@ describe('$route', function() {            deferB = $q.defer();            return deferB.promise;          }); -        $routeProvider.when('/path', { template: 'foo.html', resolve: { +        $routeProvider.when('/path', { templateUrl: 'foo.html', resolve: {            a: function($q) {              deferA = $q.defer();              return deferA.promise; @@ -253,13 +253,8 @@ describe('$route', function() {        inject(function($location, $route, $rootScope) {          var log = ''; -<<<<<<< HEAD -        $rootScope.$on('$beforeRouteChange', function() { log += 'before();'; }); -        $rootScope.$on('$routeChangeError', function(e, n, l, reason) { log += 'failed(' + reason + ');'; }); -=======          $rootScope.$on('$routeChangeStart', function() { log += 'before();'; }); -        $rootScope.$on('$routeChangeFailed', function(e, n, l, reason) { log += 'failed(' + reason + ');'; }); ->>>>>>> ebebe46... chore($route): rename events +        $rootScope.$on('$routeChangeError', function(e, n, l, reason) { log += 'failed(' + reason + ');'; });          $location.path('/path');          $rootScope.$digest(); @@ -275,14 +270,14 @@ describe('$route', function() {      it('should fetch templates', function() {        module(function($routeProvider) {          $routeProvider. -          when('/r1', { template: 'r1.html' }). -          when('/r2', { template: 'r2.html' }); +          when('/r1', { templateUrl: 'r1.html' }). +          when('/r2', { templateUrl: 'r2.html' });        });        inject(function($route, $httpBackend, $location, $rootScope) {          var log = ''; -        $rootScope.$on('$routeChangeStart', function(e, next) { log += '$before(' + next.template + ');'}); -        $rootScope.$on('$routeChangeSuccess', function(e, next) { log += '$after(' + next.template + ');'}); +        $rootScope.$on('$routeChangeStart', function(e, next) { log += '$before(' + next.templateUrl + ');'}); +        $rootScope.$on('$routeChangeSuccess', function(e, next) { log += '$after(' + next.templateUrl + ');'});          $httpBackend.expectGET('r1.html').respond('R1');          $httpBackend.expectGET('r2.html').respond('R2'); @@ -305,8 +300,8 @@ describe('$route', function() {      it('should not update $routeParams until $routeChangeSuccess', function() {        module(function($routeProvider) {          $routeProvider. -          when('/r1/:id', { template: 'r1.html' }). -          when('/r2/:id', { template: 'r2.html' }); +          when('/r1/:id', { templateUrl: 'r1.html' }). +          when('/r2/:id', { templateUrl: 'r2.html' });        });        inject(function($route, $httpBackend, $location, $rootScope, $routeParams) { @@ -337,14 +332,14 @@ describe('$route', function() {      it('should drop in progress route change when new route change occurs', function() {        module(function($routeProvider) {          $routeProvider. -          when('/r1', { template: 'r1.html' }). -          when('/r2', { template: 'r2.html' }); +          when('/r1', { templateUrl: 'r1.html' }). +          when('/r2', { templateUrl: 'r2.html' });        });        inject(function($route, $httpBackend, $location, $rootScope) {          var log = ''; -        $rootScope.$on('$routeChangeStart', function(e, next) { log += '$before(' + next.template + ');'}); -        $rootScope.$on('$routeChangeSuccess', function(e, next) { log += '$after(' + next.template + ');'}); +        $rootScope.$on('$routeChangeStart', function(e, next) { log += '$before(' + next.templateUrl + ');'}); +        $rootScope.$on('$routeChangeSuccess', function(e, next) { log += '$after(' + next.templateUrl + ');'});          $httpBackend.expectGET('r1.html').respond('R1');          $httpBackend.expectGET('r2.html').respond('R2'); @@ -421,30 +416,30 @@ describe('$route', function() {    it('should match route with and without trailing slash', function() {      module(function($routeProvider){ -      $routeProvider.when('/foo', {template: 'foo.html'}); -      $routeProvider.when('/bar/', {template: 'bar.html'}); +      $routeProvider.when('/foo', {templateUrl: 'foo.html'}); +      $routeProvider.when('/bar/', {templateUrl: 'bar.html'});      });      inject(function($route, $location, $rootScope) {        $location.path('/foo');        $rootScope.$digest();        expect($location.path()).toBe('/foo'); -      expect($route.current.template).toBe('foo.html'); +      expect($route.current.templateUrl).toBe('foo.html');        $location.path('/foo/');        $rootScope.$digest();        expect($location.path()).toBe('/foo'); -      expect($route.current.template).toBe('foo.html'); +      expect($route.current.templateUrl).toBe('foo.html');        $location.path('/bar');        $rootScope.$digest();        expect($location.path()).toBe('/bar/'); -      expect($route.current.template).toBe('bar.html'); +      expect($route.current.templateUrl).toBe('bar.html');        $location.path('/bar/');        $rootScope.$digest();        expect($location.path()).toBe('/bar/'); -      expect($route.current.template).toBe('bar.html'); +      expect($route.current.templateUrl).toBe('bar.html');      });    }); @@ -453,10 +448,10 @@ describe('$route', function() {      it('should support redirection via redirectTo property by updating $location', function() {        module(function($routeProvider) {          $routeProvider.when('/', {redirectTo: '/foo'}); -        $routeProvider.when('/foo', {template: 'foo.html'}); -        $routeProvider.when('/bar', {template: 'bar.html'}); +        $routeProvider.when('/foo', {templateUrl: 'foo.html'}); +        $routeProvider.when('/bar', {templateUrl: 'bar.html'});          $routeProvider.when('/baz', {redirectTo: '/bar'}); -        $routeProvider.otherwise({template: '404.html'}); +        $routeProvider.otherwise({templateUrl: '404.html'});        });        inject(function($route, $location, $rootScope) { @@ -469,14 +464,14 @@ describe('$route', function() {          $location.path('/');          $rootScope.$digest();          expect($location.path()).toBe('/foo'); -        expect($route.current.template).toBe('foo.html'); +        expect($route.current.templateUrl).toBe('foo.html');          expect(onChangeSpy.callCount).toBe(2);          onChangeSpy.reset();          $location.path('/baz');          $rootScope.$digest();          expect($location.path()).toBe('/bar'); -        expect($route.current.template).toBe('bar.html'); +        expect($route.current.templateUrl).toBe('bar.html');          expect(onChangeSpy.callCount).toBe(2);        });      }); @@ -485,7 +480,7 @@ describe('$route', function() {      it('should interpolate route vars in the redirected path from original path', function() {        module(function($routeProvider) {          $routeProvider.when('/foo/:id/foo/:subid/:extraId', {redirectTo: '/bar/:id/:subid/23'}); -        $routeProvider.when('/bar/:id/:subid/:subsubid', {template: 'bar.html'}); +        $routeProvider.when('/bar/:id/:subid/:subsubid', {templateUrl: 'bar.html'});        });        inject(function($route, $location, $rootScope) { @@ -494,14 +489,14 @@ describe('$route', function() {          expect($location.path()).toEqual('/bar/id1/subid3/23');          expect($location.search()).toEqual({extraId: 'gah'}); -        expect($route.current.template).toEqual('bar.html'); +        expect($route.current.templateUrl).toEqual('bar.html');        });      });      it('should interpolate route vars in the redirected path from original search', function() {        module(function($routeProvider) { -        $routeProvider.when('/bar/:id/:subid/:subsubid', {template: 'bar.html'}); +        $routeProvider.when('/bar/:id/:subid/:subsubid', {templateUrl: 'bar.html'});          $routeProvider.when('/foo/:id/:extra', {redirectTo: '/bar/:id/:subid/99'});        }); @@ -511,7 +506,7 @@ describe('$route', function() {          expect($location.path()).toEqual('/bar/id3/sid1/99');          expect($location.search()).toEqual({appended: 'true', extra: 'eId'}); -        expect($route.current.template).toEqual('bar.html'); +        expect($route.current.templateUrl).toEqual('bar.html');        });      }); @@ -525,7 +520,7 @@ describe('$route', function() {        }        module(function($routeProvider){ -        $routeProvider.when('/bar/:id/:subid/:subsubid', {template: 'bar.html'}); +        $routeProvider.when('/bar/:id/:subid/:subsubid', {templateUrl: 'bar.html'});          $routeProvider.when('/foo/:id', {redirectTo: customRedirectFn});        }); @@ -540,7 +535,7 @@ describe('$route', function() {      it('should replace the url when redirecting',  function() {        module(function($routeProvider) { -        $routeProvider.when('/bar/:id', {template: 'bar.html'}); +        $routeProvider.when('/bar/:id', {templateUrl: 'bar.html'});          $routeProvider.when('/foo/:id/:extra', {redirectTo: '/bar/:id'});        });        inject(function($route, $location, $rootScope) {  | 
