diff options
Diffstat (limited to 'test/service/controllerSpec.js')
| -rw-r--r-- | test/service/controllerSpec.js | 41 |
1 files changed, 38 insertions, 3 deletions
diff --git a/test/service/controllerSpec.js b/test/service/controllerSpec.js index 2c0f8c62..91389013 100644 --- a/test/service/controllerSpec.js +++ b/test/service/controllerSpec.js @@ -1,12 +1,47 @@ 'use strict'; describe('$controller', function() { - var $controller; + var $controllerProvider, $controller; - beforeEach(inject(function($injector) { - $controller = $injector.get('$controller'); + beforeEach(module(function(_$controllerProvider_) { + $controllerProvider = _$controllerProvider_; })); + + beforeEach(inject(function(_$controller_) { + $controller = _$controller_; + })); + + + describe('provider', function() { + + it('should allow registration of controllers', function() { + var FooCtrl = function($scope) { $scope.foo = 'bar' }, + scope = {}, + ctrl; + + $controllerProvider.register('FooCtrl', FooCtrl); + ctrl = $controller('FooCtrl', {$scope: scope}); + + expect(scope.foo).toBe('bar'); + expect(ctrl instanceof FooCtrl).toBe(true); + }); + + + it('should allow registration of controllers annotated with arrays', function() { + var FooCtrl = function($scope) { $scope.foo = 'bar' }, + scope = {}, + ctrl; + + $controllerProvider.register('FooCtrl', ['$scope', FooCtrl]); + ctrl = $controller('FooCtrl', {$scope: scope}); + + expect(scope.foo).toBe('bar'); + expect(ctrl instanceof FooCtrl).toBe(true); + }); + }); + + it('should return instance of given controller class', function() { var MyClass = function() {}, ctrl = $controller(MyClass); |
