aboutsummaryrefslogtreecommitdiffstats
path: root/test/service/controllerSpec.js
diff options
context:
space:
mode:
authorIgor Minar2012-03-26 13:01:24 -0700
committerIgor Minar2012-03-26 15:23:29 -0700
commitd54dfecb00fba41455536c5ddd55310592fdaf84 (patch)
treefa146933a2056b69c558f8e0bc0d15a315afeaaa /test/service/controllerSpec.js
parent4b8d926062eb4d4483555bdbdec4656f585ab40b (diff)
downloadangular.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.js41
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);