@@ -204,13 +204,24 @@ describe('parser', function() {
204
204
205
205
describe ( 'csp: ' + cspEnabled + ", unwrapPromises: " + unwrapPromisesEnabled , function ( ) {
206
206
207
- beforeEach ( module ( function ( $parseProvider ) {
207
+ var originalSecurityPolicy ;
208
+
209
+
210
+ beforeEach ( function ( ) {
211
+ originalSecurityPolicy = window . document . securityPolicy ;
212
+ window . document . securityPolicy = { isActive : cspEnabled } ;
213
+ } ) ;
214
+
215
+ afterEach ( function ( ) {
216
+ window . document . securityPolicy = originalSecurityPolicy ;
217
+ } ) ;
218
+
219
+ beforeEach ( module ( function ( $parseProvider , $provide ) {
208
220
$parseProvider . unwrapPromises ( unwrapPromisesEnabled ) ;
209
221
} ) ) ;
210
222
211
- beforeEach ( inject ( function ( $rootScope , $sniffer ) {
223
+ beforeEach ( inject ( function ( $rootScope ) {
212
224
scope = $rootScope ;
213
- $sniffer . csp = cspEnabled ;
214
225
} ) ) ;
215
226
216
227
it ( 'should parse expressions' , function ( ) {
@@ -344,6 +355,25 @@ describe('parser', function() {
344
355
expect ( scope . $eval ( "a.b.c.d.e.f.g.h.i.j.k.l.m.n" , scope ) ) . toBe ( 'nooo!' ) ;
345
356
} ) ;
346
357
358
+ forEach ( [ 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 20 , 42 , 99 ] , function ( pathLength ) {
359
+ it ( 'should resolve nested paths of length ' + pathLength , function ( ) {
360
+ // Create a nested object {x2: {x3: {x4: ... {x[n]: 42} ... }}}.
361
+ var obj = 42 ;
362
+ for ( var i = pathLength ; i >= 2 ; i -- ) {
363
+ var newObj = { } ;
364
+ newObj [ 'x' + i ] = obj ;
365
+ obj = newObj ;
366
+ }
367
+ // Assign to x1 and build path 'x1.x2.x3. ... .x[n]' to access the final value.
368
+ scope . x1 = obj ;
369
+ var path = 'x1' ;
370
+ for ( var i = 2 ; i <= pathLength ; i ++ ) {
371
+ path += '.x' + i ;
372
+ }
373
+ expect ( scope . $eval ( path ) ) . toBe ( 42 ) ;
374
+ } ) ;
375
+ } ) ;
376
+
347
377
it ( 'should be forgiving' , function ( ) {
348
378
scope . a = { b : 23 } ;
349
379
expect ( scope . $eval ( 'b' ) ) . toBeUndefined ( ) ;
@@ -1069,6 +1099,17 @@ describe('parser', function() {
1069
1099
1070
1100
var $log ;
1071
1101
var PROMISE_WARNING_REGEXP = / \[ \$ p a r s e \] P r o m i s e f o u n d i n t h e e x p r e s s i o n ` [ ^ ` ] + ` . A u t o m a t i c u n w r a p p i n g o f p r o m i s e s i n A n g u l a r e x p r e s s i o n s i s d e p r e c a t e d \. / ;
1102
+ var originalSecurityPolicy ;
1103
+
1104
+
1105
+ beforeEach ( function ( ) {
1106
+ originalSecurityPolicy = window . document . securityPolicy ;
1107
+ window . document . securityPolicy = { isActive : cspEnabled } ;
1108
+ } ) ;
1109
+
1110
+ afterEach ( function ( ) {
1111
+ window . document . securityPolicy = originalSecurityPolicy ;
1112
+ } ) ;
1072
1113
1073
1114
beforeEach ( module ( function ( $parseProvider ) {
1074
1115
$parseProvider . unwrapPromises ( true ) ;
@@ -1142,15 +1183,27 @@ describe('parser', function() {
1142
1183
1143
1184
describe ( 'csp ' + cspEnabled , function ( ) {
1144
1185
1186
+ var originalSecurityPolicy ;
1187
+
1188
+
1189
+ beforeEach ( function ( ) {
1190
+ originalSecurityPolicy = window . document . securityPolicy ;
1191
+ window . document . securityPolicy = { isActive : cspEnabled } ;
1192
+ } ) ;
1193
+
1194
+ afterEach ( function ( ) {
1195
+ window . document . securityPolicy = originalSecurityPolicy ;
1196
+ } ) ;
1197
+
1198
+
1145
1199
beforeEach ( module ( function ( $parseProvider ) {
1146
1200
$parseProvider . unwrapPromises ( true ) ;
1147
1201
$parseProvider . logPromiseWarnings ( false ) ;
1148
1202
} ) ) ;
1149
1203
1150
1204
1151
- beforeEach ( inject ( function ( $rootScope , $sniffer , $ q) {
1205
+ beforeEach ( inject ( function ( $rootScope , $q ) {
1152
1206
scope = $rootScope ;
1153
- $sniffer . csp = cspEnabled ;
1154
1207
1155
1208
q = $q ;
1156
1209
deferred = q . defer ( ) ;
0 commit comments