aboutsummaryrefslogtreecommitdiffstats
path: root/test/ng/directive/ngControllerSpec.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/ng/directive/ngControllerSpec.js')
-rw-r--r--test/ng/directive/ngControllerSpec.js23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/ng/directive/ngControllerSpec.js b/test/ng/directive/ngControllerSpec.js
index ab85c569..402ddf09 100644
--- a/test/ng/directive/ngControllerSpec.js
+++ b/test/ng/directive/ngControllerSpec.js
@@ -3,6 +3,11 @@
describe('ngController', function() {
var element;
+ beforeEach(module(function($controllerProvider) {
+ $controllerProvider.register('PublicModule', function() {
+ this.mark = 'works';
+ });
+ }));
beforeEach(inject(function($window) {
$window.Greeter = function($scope) {
// private stuff (not exported to scope)
@@ -27,6 +32,10 @@ describe('ngController', function() {
$window.Child = function($scope) {
$scope.name = 'Adam';
};
+
+ $window.Public = function() {
+ this.mark = 'works';
+ }
}));
afterEach(function() {
@@ -41,6 +50,20 @@ describe('ngController', function() {
}));
+ it('should publish controller into scope', inject(function($compile, $rootScope) {
+ element = $compile('<div ng-controller="Public as p">{{p.mark}}</div>')($rootScope);
+ $rootScope.$digest();
+ expect(element.text()).toBe('works');
+ }));
+
+
+ it('should publish controller into scope from module', inject(function($compile, $rootScope) {
+ element = $compile('<div ng-controller="PublicModule as p">{{p.mark}}</div>')($rootScope);
+ $rootScope.$digest();
+ expect(element.text()).toBe('works');
+ }));
+
+
it('should allow nested controllers', inject(function($compile, $rootScope) {
element = $compile('<div ng-controller="Greeter"><div ng-controller="Child">{{greet(name)}}</div></div>')($rootScope);
$rootScope.$digest();