diff options
| author | Igor Minar | 2012-03-26 13:01:24 -0700 |
|---|---|---|
| committer | Igor Minar | 2012-03-26 15:23:29 -0700 |
| commit | d54dfecb00fba41455536c5ddd55310592fdaf84 (patch) | |
| tree | fa146933a2056b69c558f8e0bc0d15a315afeaaa /test/service/controllerSpec.js | |
| parent | 4b8d926062eb4d4483555bdbdec4656f585ab40b (diff) | |
| download | angular.js-d54dfecb00fba41455536c5ddd55310592fdaf84.tar.bz2 | |
feat($controller): support controller registration via $controllerProvider
It's now possible to register controllers as:
.register('MyCtrl', function($scope) { ... });
// or
.register('MyCtrl', ['$scope', function($scope) { ... });
Additionally a module loader shortcut api was added as well:
myModule.controller('MyCtr', function($scope) { ... });
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); |
