@@ -228,181 +228,97 @@ describe('angular', function() {
228228 } ) ;
229229
230230
231- describe ( 'rngScript' , function ( ) {
232- it ( 'should match angular.js' , function ( ) {
233- expect ( 'angular.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
234- expect ( '../angular.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
235- expect ( 'foo/angular.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
236-
237- expect ( 'foo.js' . match ( rngScript ) ) . toBeNull ( ) ;
238- expect ( 'foo/foo.js' . match ( rngScript ) ) . toBeNull ( ) ;
239- expect ( 'my-angular-app.js' . match ( rngScript ) ) . toBeNull ( ) ;
240- expect ( 'foo/../my-angular-app.js' . match ( rngScript ) ) . toBeNull ( ) ;
241- } ) ;
242-
243- it ( 'should match angular.min.js' , function ( ) {
244- expect ( 'angular.min.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
245- expect ( '../angular.min.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
246- expect ( 'foo/angular.min.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
247-
248- expect ( 'my-angular-app.min.js' . match ( rngScript ) ) . toBeNull ( ) ;
249- expect ( 'foo/../my-angular-app.min.js' . match ( rngScript ) ) . toBeNull ( ) ;
250- } ) ;
251-
252- it ( 'should match angular-bootstrap.js' , function ( ) {
253- expect ( 'angular-bootstrap.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
254- expect ( '../angular-bootstrap.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
255- expect ( 'foo/angular-bootstrap.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
256-
257- expect ( 'my-angular-app-bootstrap.js' . match ( rngScript ) ) . toBeNull ( ) ;
258- expect ( 'foo/../my-angular-app-bootstrap.js' . match ( rngScript ) ) . toBeNull ( ) ;
259- } ) ;
260-
261- it ( 'should match angular-0.9.0.js' , function ( ) {
262- expect ( 'angular-0.9.0.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
263- expect ( '../angular-0.9.0.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
264- expect ( 'foo/angular-0.9.0.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
265-
266- expect ( 'my-angular-app-0.9.0.js' . match ( rngScript ) ) . toBeNull ( ) ;
267- expect ( 'foo/../my-angular-app-0.9.0.js' . match ( rngScript ) ) . toBeNull ( ) ;
268- } ) ;
269-
270- it ( 'should match angular-0.9.0.min.js' , function ( ) {
271- expect ( 'angular-0.9.0.min.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
272- expect ( '../angular-0.9.0.min.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
273- expect ( 'foo/angular-0.9.0.min.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
274-
275- expect ( 'my-angular-app-0.9.0.min.js' . match ( rngScript ) ) . toBeNull ( ) ;
276- expect ( 'foo/../my-angular-app-0.9.0.min.js' . match ( rngScript ) ) . toBeNull ( ) ;
277- } ) ;
278-
279- it ( 'should match angular-0.9.0-de0a8612.js' , function ( ) {
280- expect ( 'angular-0.9.0-de0a8612.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
281- expect ( '../angular-0.9.0-de0a8612.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
282- expect ( 'foo/angular-0.9.0-de0a8612.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
283-
284- expect ( 'my-angular-app-0.9.0-de0a8612.js' . match ( rngScript ) ) . toBeNull ( ) ;
285- expect ( 'foo/../my-angular-app-0.9.0-de0a8612.js' . match ( rngScript ) ) . toBeNull ( ) ;
286- } ) ;
287-
288- it ( 'should match angular-0.9.0-de0a8612.min.js' , function ( ) {
289- expect ( 'angular-0.9.0-de0a8612.min.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
290- expect ( '../angular-0.9.0-de0a8612.min.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
291- expect ( 'foo/angular-0.9.0-de0a8612.min.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
292-
293- expect ( 'my-angular-app-0.9.0-de0a8612.min.js' . match ( rngScript ) ) . toBeNull ( ) ;
294- expect ( 'foo/../my-angular-app-0.9.0-de0a8612.min.js' . match ( rngScript ) ) . toBeNull ( ) ;
295- } ) ;
296-
297- it ( 'should match angular-scenario.js' , function ( ) {
298- expect ( 'angular-scenario.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
299- expect ( 'angular-scenario.min.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
300- expect ( '../angular-scenario.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
301- expect ( 'foo/angular-scenario.min.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
302- } ) ;
303-
304- it ( 'should match angular-scenario-0.9.0(.min).js' , function ( ) {
305- expect ( 'angular-scenario-0.9.0.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
306- expect ( 'angular-scenario-0.9.0.min.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
307- expect ( '../angular-scenario-0.9.0.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
308- expect ( 'foo/angular-scenario-0.9.0.min.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
309- } ) ;
310-
311- it ( 'should match angular-scenario-0.9.0-de0a8612(.min).js' , function ( ) {
312- expect ( 'angular-scenario-0.9.0-de0a8612.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
313- expect ( 'angular-scenario-0.9.0-de0a8612.min.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
314- expect ( '../angular-scenario-0.9.0-de0a8612.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
315- expect ( 'foo/angular-scenario-0.9.0-de0a8612.min.js' . match ( rngScript ) ) . not . toBeNull ( ) ;
316- } ) ;
317- } ) ;
231+ describe ( 'angularJsConfig' , function ( ) {
232+ it ( 'should always consider angular.js script tag to be the last script tag' , function ( ) {
233+ var doc = {
234+ getElementsByTagName : function ( tagName ) {
235+ expect ( tagName ) . toEqual ( 'script' ) ;
236+ return [ { nodeName : 'SCRIPT' , src : 'random.js' ,
237+ attributes : [ { name : 'ng:autobind' , value : 'wrong' } ] } ,
238+ { nodeName : 'SCRIPT' , src : 'angular.js' ,
239+ attributes : [ { name : 'ng:autobind' , value : 'correct' } ] } ] ;
240+ }
241+ } ;
318242
243+ expect ( angularJsConfig ( doc ) ) . toEqual ( { autobind : 'correct' } ) ;
319244
320- describe ( 'angularJsConfig' , function ( ) {
321- it ( 'should find angular.js script tag and config' , function ( ) {
322- var doc = { getElementsByTagName : function ( tagName ) {
323- expect ( tagName ) . toEqual ( 'script' ) ;
324- return [ { nodeName : 'SCRIPT ' , src : 'random.js' } ,
325- { nodeName : 'SCRIPT' , src : 'angular .js' } ,
326- { nodeName : 'SCRIPT ' , src : 'my-angular-app.js' } ] ;
327- }
245+ doc = {
246+ getElementsByTagName : function ( tagName ) {
247+ expect ( tagName ) . toEqual ( 'script' ) ;
248+ return [ { nodeName : 'SCRIPT' , src : 'angular.js' ,
249+ attributes : [ { name : 'ng:autobind ' , value : 'wrong' } ] } ,
250+ { nodeName : 'SCRIPT' , src : 'concatinatedAndObfuscadedScriptWithOurScript .js' ,
251+ attributes : [ { name : 'ng:autobind ' , value : 'correct' } ] } ] ;
252+ }
328253 } ;
329254
330- expect ( angularJsConfig ( doc ) ) . toEqual ( { base_url : '' } ) ;
255+ expect ( angularJsConfig ( doc ) ) . toEqual ( { autobind : 'correct ' } ) ;
331256 } ) ;
332257
333258
334- it ( 'should extract angular config from the ng: attributes' ,
335- function ( ) {
259+ it ( 'should extract angular config from the ng: attributes' , function ( ) {
336260 var doc = { getElementsByTagName : function ( tagName ) {
337261 expect ( lowercase ( tagName ) ) . toEqual ( 'script' ) ;
338- return [ { nodeName : 'SCRIPT' ,
262+ return [ {
263+ nodeName : 'SCRIPT' ,
339264 src : 'angularjs/angular.js' ,
340265 attributes : [ { name : 'ng:autobind' , value :'elementIdToCompile' } ,
341266 { name : 'ng:css' , value : 'css/my_custom_angular.css' } ] } ] ;
342267 } } ;
343268
344- expect ( angularJsConfig ( doc ) ) . toEqual ( { base_url : 'angularjs/' ,
269+ expect ( angularJsConfig ( doc ) ) . toEqual ( {
345270 autobind : 'elementIdToCompile' ,
346- css : 'css/my_custom_angular.css' } ) ;
271+ css : 'css/my_custom_angular.css'
272+ } ) ;
347273 } ) ;
348274
349275
350276 it ( 'should extract angular config and default autobind value to true if present' , function ( ) {
351277 var doc = { getElementsByTagName : function ( tagName ) {
352278 expect ( lowercase ( tagName ) ) . toEqual ( 'script' ) ;
353- return [ { nodeName : 'SCRIPT' ,
279+ return [ {
280+ nodeName : 'SCRIPT' ,
354281 src : 'angularjs/angular.js' ,
355282 attributes : [ { name : 'ng:autobind' , value :undefined } ] } ] ;
356283 } } ;
357284
358- expect ( angularJsConfig ( doc ) ) . toEqual ( { autobind : true ,
359- base_url : 'angularjs/' } ) ;
285+ expect ( angularJsConfig ( doc ) ) . toEqual ( { autobind : true } ) ;
360286 } ) ;
361287
362288
363289 it ( 'should extract angular autobind config from the script hashpath attributes' , function ( ) {
364290 var doc = { getElementsByTagName : function ( tagName ) {
365291 expect ( lowercase ( tagName ) ) . toEqual ( 'script' ) ;
366- return [ { nodeName : 'SCRIPT' ,
292+ return [ {
293+ nodeName : 'SCRIPT' ,
367294 src : 'angularjs/angular.js#autobind' } ] ;
368295 } } ;
369296
370- expect ( angularJsConfig ( doc ) ) . toEqual ( { base_url : 'angularjs/' ,
371- autobind : true } ) ;
297+ expect ( angularJsConfig ( doc ) ) . toEqual ( { autobind : true } ) ;
372298 } ) ;
373299
374300
375301 it ( 'should extract autobind config with element id from the script hashpath' , function ( ) {
376302 var doc = { getElementsByTagName : function ( tagName ) {
377303 expect ( lowercase ( tagName ) ) . toEqual ( 'script' ) ;
378- return [ { nodeName : 'SCRIPT' ,
304+ return [ {
305+ nodeName : 'SCRIPT' ,
379306 src : 'angularjs/angular.js#autobind=foo' } ] ;
380307 } } ;
381308
382- expect ( angularJsConfig ( doc ) ) . toEqual ( { base_url : 'angularjs/' ,
383- autobind : 'foo' } ) ;
309+ expect ( angularJsConfig ( doc ) ) . toEqual ( { autobind : 'foo' } ) ;
384310 } ) ;
385311
386312
387- it ( " should default to versioned ie-compat file if angular file is versioned" , function ( ) {
313+ it ( ' should default to versioned ie-compat file if angular file is versioned' , function ( ) {
388314 var doc = { getElementsByTagName : function ( tagName ) {
389315 expect ( lowercase ( tagName ) ) . toEqual ( 'script' ) ;
390- return [ { nodeName : 'SCRIPT' ,
316+ return [ {
317+ nodeName : 'SCRIPT' ,
391318 src : 'js/angular-0.9.0.js' } ] ;
392319 } } ;
393320
394- expect ( angularJsConfig ( doc ) ) . toEqual ( { base_url : 'js/' } ) ;
395- } ) ;
396-
397-
398- it ( "should default to versioned ie-compat file if angular file is versioned and minified" , function ( ) {
399- var doc = { getElementsByTagName : function ( tagName ) {
400- expect ( lowercase ( tagName ) ) . toEqual ( 'script' ) ;
401- return [ { nodeName : 'SCRIPT' ,
402- src : 'js/angular-0.9.0-cba23f00.min.js' } ] ;
403- } } ;
404-
405- expect ( angularJsConfig ( doc ) ) . toEqual ( { base_url : 'js/' } ) ;
321+ expect ( angularJsConfig ( doc ) ) . toEqual ( { } ) ;
406322 } ) ;
407323 } ) ;
408324
0 commit comments