@@ -2055,69 +2055,77 @@ describe('ngMock', function() {
2055
2055
2056
2056
2057
2057
describe ( '$controllerDecorator' , function ( ) {
2058
- it ( 'should support creating controller with bindings' , function ( ) {
2059
- var called = false ;
2060
- var data = [
2061
- { name : 'derp1' , id : 0 } ,
2062
- { name : 'testname' , id : 1 } ,
2063
- { name : 'flurp' , id : 2 }
2064
- ] ;
2065
- module ( function ( $controllerProvider ) {
2066
- $controllerProvider . register ( 'testCtrl' , function ( ) {
2067
- called = true ;
2068
- expect ( this . data ) . toBe ( data ) ;
2058
+ forEach ( [ true , false ] , function ( enabled ) {
2059
+ describe ( 'with `preAssignBindingsEnabled(' + enabled + ')`' , function ( ) {
2060
+ beforeEach ( module ( function ( $compileProvider ) {
2061
+ $compileProvider . preAssignBindingsEnabled ( enabled ) ;
2062
+ } ) ) ;
2063
+
2064
+ it ( 'should support creating controller with bindings' , function ( ) {
2065
+ var called = false ;
2066
+ var data = [
2067
+ { name : 'derp1' , id : 0 } ,
2068
+ { name : 'testname' , id : 1 } ,
2069
+ { name : 'flurp' , id : 2 }
2070
+ ] ;
2071
+ module ( function ( $controllerProvider ) {
2072
+ $controllerProvider . register ( 'testCtrl' , function ( ) {
2073
+ expect ( this . data ) . toBe ( enabled ? data : undefined ) ;
2074
+ called = true ;
2075
+ } ) ;
2076
+ } ) ;
2077
+ inject ( function ( $controller , $rootScope ) {
2078
+ var ctrl = $controller ( 'testCtrl' , { scope : $rootScope } , { data : data } ) ;
2079
+ expect ( ctrl . data ) . toBe ( data ) ;
2080
+ expect ( called ) . toBe ( true ) ;
2081
+ } ) ;
2069
2082
} ) ;
2070
- } ) ;
2071
- inject ( function ( $controller , $rootScope ) {
2072
- $controller ( 'testCtrl' , { scope : $rootScope } , { data : data } ) ;
2073
- expect ( called ) . toBe ( true ) ;
2074
- } ) ;
2075
- } ) ;
2076
2083
2077
- it ( 'should support assigning bindings when a value is returned from the constructor' ,
2078
- function ( ) {
2079
- var called = false ;
2080
- var data = [
2081
- { name : 'derp1' , id : 0 } ,
2082
- { name : 'testname' , id : 1 } ,
2083
- { name : 'flurp' , id : 2 }
2084
- ] ;
2085
- module ( function ( $controllerProvider ) {
2086
- $controllerProvider . register ( 'testCtrl' , function ( ) {
2087
- called = true ;
2088
- expect ( this . data ) . toBe ( data ) ;
2084
+ it ( 'should support assigning bindings when a value is returned from the constructor' ,
2085
+ function ( ) {
2086
+ var called = false ;
2087
+ var data = [
2088
+ { name : 'derp1' , id : 0 } ,
2089
+ { name : 'testname' , id : 1 } ,
2090
+ { name : 'flurp' , id : 2 }
2091
+ ] ;
2092
+ module ( function ( $controllerProvider ) {
2093
+ $controllerProvider . register ( 'testCtrl' , function ( ) {
2094
+ expect ( this . data ) . toBe ( enabled ? data : undefined ) ;
2095
+ called = true ;
2096
+ return { } ;
2097
+ } ) ;
2098
+ } ) ;
2099
+ inject ( function ( $controller , $rootScope ) {
2100
+ var ctrl = $controller ( 'testCtrl' , { scope : $rootScope } , { data : data } ) ;
2101
+ expect ( ctrl . data ) . toBe ( data ) ;
2102
+ expect ( called ) . toBe ( true ) ;
2103
+ } ) ;
2104
+ }
2105
+ ) ;
2089
2106
2090
- return { } ;
2107
+ if ( / c h r o m e / . test ( window . navigator . userAgent ) ) {
2108
+ it ( 'should support assigning bindings to class-based controller' , function ( ) {
2109
+ var called = false ;
2110
+ var data = [
2111
+ { name : 'derp1' , id : 0 } ,
2112
+ { name : 'testname' , id : 1 } ,
2113
+ { name : 'flurp' , id : 2 }
2114
+ ] ;
2115
+ module ( function ( $controllerProvider ) {
2116
+ // eslint-disable-next-line no-eval
2117
+ var TestCtrl = eval ( '(class { constructor() { called = true; } })' ) ;
2118
+ $controllerProvider . register ( 'testCtrl' , TestCtrl ) ;
2119
+ } ) ;
2120
+ inject ( function ( $controller , $rootScope ) {
2121
+ var ctrl = $controller ( 'testCtrl' , { scope : $rootScope } , { data : data } ) ;
2122
+ expect ( ctrl . data ) . toBe ( data ) ;
2123
+ expect ( called ) . toBe ( true ) ;
2124
+ } ) ;
2091
2125
} ) ;
2092
- } ) ;
2093
- inject ( function ( $controller , $rootScope ) {
2094
- var ctrl = $controller ( 'testCtrl' , { scope : $rootScope } , { data : data } ) ;
2095
- expect ( ctrl . data ) . toBe ( data ) ;
2096
- expect ( called ) . toBe ( true ) ;
2097
- } ) ;
2098
- }
2099
- ) ;
2100
-
2101
- if ( / c h r o m e / . test ( window . navigator . userAgent ) ) {
2102
- it ( 'should support assigning bindings to class-based controller' , function ( ) {
2103
- var called = false ;
2104
- var data = [
2105
- { name : 'derp1' , id : 0 } ,
2106
- { name : 'testname' , id : 1 } ,
2107
- { name : 'flurp' , id : 2 }
2108
- ] ;
2109
- module ( function ( $controllerProvider ) {
2110
- // eslint-disable-next-line no-eval
2111
- var TestCtrl = eval ( '(class { constructor() { called = true; } })' ) ;
2112
- $controllerProvider . register ( 'testCtrl' , TestCtrl ) ;
2113
- } ) ;
2114
- inject ( function ( $controller , $rootScope ) {
2115
- var ctrl = $controller ( 'testCtrl' , { scope : $rootScope } , { data : data } ) ;
2116
- expect ( ctrl . data ) . toBe ( data ) ;
2117
- expect ( called ) . toBe ( true ) ;
2118
- } ) ;
2126
+ }
2119
2127
} ) ;
2120
- }
2128
+ } ) ;
2121
2129
} ) ;
2122
2130
2123
2131
0 commit comments