From e31d1c287d972d633bdaf9c385d3012192f64918 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Wed, 15 Feb 2012 21:49:07 -0800 Subject: refactor($route): remove .parent(); ng:view scope creation --- test/service/routeSpec.js | 14 ++++++++++++++ test/widgetsSpec.js | 12 ++++++++++++ 2 files changed, 26 insertions(+) (limited to 'test') diff --git a/test/service/routeSpec.js b/test/service/routeSpec.js index 6c6828bc..97532f38 100644 --- a/test/service/routeSpec.js +++ b/test/service/routeSpec.js @@ -1,6 +1,20 @@ 'use strict'; describe('$route', function() { + + beforeEach(module(function() { + return function($rootScope, $controller) { + $rootScope.$on('$afterRouteChange', function(event, next) { + // emulate ng:view scope creation + if (next) { + next.scope = $rootScope.$new(); + next.controller && $controller(next.controller, {$scope: next.scope}); + } + }); + }; + })); + + it('should route and fire change event', function() { var log = '', lastRoute, diff --git a/test/widgetsSpec.js b/test/widgetsSpec.js index e762e7c0..3b245d11 100644 --- a/test/widgetsSpec.js +++ b/test/widgetsSpec.js @@ -633,6 +633,18 @@ describe('widget', function() { })); + it('should create controller instance on $afterRouteChange event', inject( + function($route, $rootScope) { + var controllerScope; + $route.current = { controller: function($scope) { controllerScope = $scope; } }; + $rootScope.$broadcast('$afterRouteChange', $route.current); + + expect(controllerScope.$parent.$id).toBe($rootScope.$id); + expect(controllerScope.$id).toBe($route.current.scope.$id); + } + )); + + it('should load content via xhr when route changes', function() { module(function($routeProvider) { $routeProvider.when('/foo', {template: 'myUrl1'}); -- cgit v1.2.3