diff options
| -rw-r--r-- | src/Angular.js | 8 | ||||
| -rw-r--r-- | test/AngularSpec.js | 68 |
2 files changed, 72 insertions, 4 deletions
diff --git a/src/Angular.js b/src/Angular.js index b97c4226..97ca7663 100644 --- a/src/Angular.js +++ b/src/Angular.js @@ -48,7 +48,8 @@ var _undefined = undefined, angularFormatter = extensionMap(angular, 'formatter'), angularService = extensionMap(angular, 'service'), angularCallbacks = extensionMap(angular, 'callbacks'), - nodeName; + nodeName, + rngScript = /^(|.*\/)angular(-.*)?(\.min)?.js(\?[^#]*)?(#(.*))?$/; function foreach(obj, iterator, context) { var key; @@ -422,8 +423,7 @@ function angularInit(config){ } function angularJsConfig(document, config) { - var filename = /^(.*)angular(-([^\/]*))?.js(\?[^#]*)?(#(.*))?$/, - scripts = document.getElementsByTagName("script"), + var scripts = document.getElementsByTagName("script"), match; config = extend({ base_url: '', @@ -431,7 +431,7 @@ function angularJsConfig(document, config) { ie_compat_id: 'ng-ie-compat' }, config); for(var j = 0; j < scripts.length; j++) { - match = (scripts[j].src || "").match(filename); + match = (scripts[j].src || "").match(rngScript); if (match) { config.base_url = match[1]; extend(config, parseKeyValue(match[6])); diff --git a/test/AngularSpec.js b/test/AngularSpec.js index ef81d030..ce9927e2 100644 --- a/test/AngularSpec.js +++ b/test/AngularSpec.js @@ -120,3 +120,71 @@ describe('toKeyValue', function() { expect(toKeyValue({flag1: true, key: 'value', flag2: true})).toEqual('flag1&key=value&flag2'); }); }); + + +describe ('rngScript', function() { + it('should match angular.js', function() { + expect('angular.js'.match(rngScript)).not.toBeNull(); + expect('../angular.js'.match(rngScript)).not.toBeNull(); + expect('foo/angular.js'.match(rngScript)).not.toBeNull(); + + expect('foo.js'.match(rngScript)).toBeNull(); + expect('foo/foo.js'.match(rngScript)).toBeNull(); + expect('my-angular-app.js'.match(rngScript)).toBeNull(); + expect('foo/../my-angular-app.js'.match(rngScript)).toBeNull(); + }); + + it('should match angular.min.js', function() { + expect('angular.min.js'.match(rngScript)).not.toBeNull(); + expect('../angular.min.js'.match(rngScript)).not.toBeNull(); + expect('foo/angular.min.js'.match(rngScript)).not.toBeNull(); + + expect('my-angular-app.min.js'.match(rngScript)).toBeNull(); + expect('foo/../my-angular-app.min.js'.match(rngScript)).toBeNull(); + }); + + it('should match angular-bootstrap.js', function() { + expect('angular-bootstrap.js'.match(rngScript)).not.toBeNull(); + expect('../angular-bootstrap.js'.match(rngScript)).not.toBeNull(); + expect('foo/angular-bootstrap.js'.match(rngScript)).not.toBeNull(); + + expect('my-angular-app-bootstrap.js'.match(rngScript)).toBeNull(); + expect('foo/../my-angular-app-bootstrap.js'.match(rngScript)).toBeNull(); + }); + + it('should match angular-0.9.0.js', function() { + expect('angular-0.9.0.js'.match(rngScript)).not.toBeNull(); + expect('../angular-0.9.0.js'.match(rngScript)).not.toBeNull(); + expect('foo/angular-0.9.0.js'.match(rngScript)).not.toBeNull(); + + expect('my-angular-app-0.9.0.js'.match(rngScript)).toBeNull(); + expect('foo/../my-angular-app-0.9.0.js'.match(rngScript)).toBeNull(); + }); + + it('should match angular-0.9.0.min.js', function() { + expect('angular-0.9.0.min.js'.match(rngScript)).not.toBeNull(); + expect('../angular-0.9.0.min.js'.match(rngScript)).not.toBeNull(); + expect('foo/angular-0.9.0.min.js'.match(rngScript)).not.toBeNull(); + + expect('my-angular-app-0.9.0.min.js'.match(rngScript)).toBeNull(); + expect('foo/../my-angular-app-0.9.0.min.js'.match(rngScript)).toBeNull(); + }); + + it('should match angular-0.9.0-de0a8612.js', function() { + expect('angular-0.9.0-de0a8612.js'.match(rngScript)).not.toBeNull(); + expect('../angular-0.9.0-de0a8612.js'.match(rngScript)).not.toBeNull(); + expect('foo/angular-0.9.0-de0a8612.js'.match(rngScript)).not.toBeNull(); + + expect('my-angular-app-0.9.0-de0a8612.js'.match(rngScript)).toBeNull(); + expect('foo/../my-angular-app-0.9.0-de0a8612.js'.match(rngScript)).toBeNull(); + }); + + it('should match angular-0.9.0-de0a8612.min.js', function() { + expect('angular-0.9.0-de0a8612.min.js'.match(rngScript)).not.toBeNull(); + expect('../angular-0.9.0-de0a8612.min.js'.match(rngScript)).not.toBeNull(); + expect('foo/angular-0.9.0-de0a8612.min.js'.match(rngScript)).not.toBeNull(); + + expect('my-angular-app-0.9.0-de0a8612.min.js'.match(rngScript)).toBeNull(); + expect('foo/../my-angular-app-0.9.0-de0a8612.min.js'.match(rngScript)).toBeNull(); + }); +}); |
