@@ -4198,45 +4198,56 @@ describe('$compile', function() {
41984198
41994199
42004200 it ( 'should respect explicit return value from controller' , function ( ) {
4201+ var expectedController ;
42014202 module ( function ( ) {
42024203 directive ( 'logControllerProp' , function ( log ) {
42034204 return {
42044205 controller : function ( $scope ) {
42054206 this . foo = 'baz' ; // value should not be used.
4206- return { foo : 'bar' } ;
4207+ return expectedController = { foo : 'bar' } ;
42074208 } ,
42084209 link : function ( scope , element , attrs , controller ) {
4209- log ( controller . foo ) ;
4210+ expect ( expectedController ) . toBeDefined ( ) ;
4211+ expect ( controller ) . toBe ( expectedController ) ;
4212+ expect ( controller . foo ) . toBe ( 'bar' ) ;
4213+ log ( 'done' ) ;
42104214 }
42114215 } ;
42124216 } ) ;
42134217 } ) ;
42144218 inject ( function ( log , $compile , $rootScope ) {
42154219 element = $compile ( '<log-controller-prop></log-controller-prop>' ) ( $rootScope ) ;
4216- expect ( log ) . toEqual ( 'bar ' ) ;
4217- expect ( element . data ( '$logControllerPropController' ) . foo ) . toEqual ( 'bar' ) ;
4220+ expect ( log ) . toEqual ( 'done ' ) ;
4221+ expect ( element . data ( '$logControllerPropController' ) ) . toBe ( expectedController ) ;
42184222 } ) ;
42194223 } ) ;
42204224
42214225
42224226 it ( 'should get explicit return value of required parent controller' , function ( ) {
4227+ var expectedController ;
42234228 module ( function ( ) {
42244229 directive ( 'nested' , function ( log ) {
42254230 return {
42264231 require : '^^?nested' ,
42274232 controller : function ( ) {
4228- return { foo : 'bar' } ;
4233+ if ( ! expectedController ) expectedController = { foo : 'bar' } ;
4234+ return expectedController ;
42294235 } ,
42304236 link : function ( scope , element , attrs , controller ) {
4231- log ( ! ! controller && controller . foo ) ;
4237+ if ( element . parent ( ) . length ) {
4238+ expect ( expectedController ) . toBeDefined ( ) ;
4239+ expect ( controller ) . toBe ( expectedController ) ;
4240+ expect ( controller . foo ) . toBe ( 'bar' ) ;
4241+ log ( 'done' ) ;
4242+ }
42324243 }
42334244 } ;
42344245 } ) ;
42354246 } ) ;
42364247 inject ( function ( log , $compile , $rootScope ) {
42374248 element = $compile ( '<div nested><div nested></div></div>' ) ( $rootScope ) ;
4238-
4239- expect ( log ) . toEqual ( 'bar; false' ) ;
4249+ expect ( log ) . toEqual ( 'done' ) ;
4250+ expect ( element . data ( '$nestedController' ) ) . toBe ( expectedController ) ;
42404251 } ) ;
42414252 } ) ;
42424253
@@ -4268,11 +4279,10 @@ describe('$compile', function() {
42684279 var expectedController ;
42694280 module ( function ( ) {
42704281 directive ( 'nester' , valueFn ( {
4271- transclude : 'content' ,
4282+ transclude : true ,
42724283 controller : function ( $transclude ) {
42734284 this . foo = 'baz' ;
4274- expectedController = { transclude :$transclude , foo : 'bar' } ;
4275- return expectedController ;
4285+ return expectedController = { transclude :$transclude , foo : 'bar' } ;
42764286 } ,
42774287 link : function ( scope , el , attr , ctrl ) {
42784288 ctrl . transclude ( cloneAttach ) ;
@@ -4285,6 +4295,7 @@ describe('$compile', function() {
42854295 return {
42864296 require : '^^nester' ,
42874297 link : function ( scope , element , attrs , controller ) {
4298+ expect ( controller ) . toBeDefined ( ) ;
42884299 expect ( controller ) . toBe ( expectedController ) ;
42894300 log ( 'done' ) ;
42904301 }
@@ -4294,7 +4305,8 @@ describe('$compile', function() {
42944305 inject ( function ( log , $compile ) {
42954306 element = $compile ( '<div nester><div nested></div></div>' ) ( $rootScope ) ;
42964307 $rootScope . $apply ( ) ;
4297- expect ( log ) . toEqual ( 'done' ) ;
4308+ expect ( log . toString ( ) ) . toBe ( 'done' ) ;
4309+ expect ( element . data ( '$nesterController' ) ) . toBe ( expectedController ) ;
42984310 } ) ;
42994311 } ) ;
43004312
0 commit comments