aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Angular.js8
-rw-r--r--test/AngularSpec.js68
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();
+ });
+});