diff --git a/src/Angular.js b/src/Angular.js index 0a64cd016273..5702d0e83b71 100644 --- a/src/Angular.js +++ b/src/Angular.js @@ -943,18 +943,15 @@ var csp = function() { var jq = function() { if (isDefined(jq.name_)) return jq.name_; var el; - var i, ii = ngAttrPrefixes.length; + var i, ii = ngAttrPrefixes.length, prefix, name; for (i = 0; i < ii; ++i) { - if (el = document.querySelector('[' + ngAttrPrefixes[i].replace(':', '\\:') + 'jq]')) { + prefix = ngAttrPrefixes[i]; + if (el = document.querySelector('[' + prefix.replace(':', '\\:') + 'jq]')) { + name = el.getAttribute(prefix + 'jq'); break; } } - var name; - if (el) { - name = getNgAttribute(el, "jq"); - } - return (jq.name_ = name); }; @@ -1195,10 +1192,9 @@ var ngAttrPrefixes = ['ng-', 'data-ng-', 'ng:', 'x-ng-']; function getNgAttribute(element, ngAttr) { var attr, i, ii = ngAttrPrefixes.length; - element = jqLite(element); for (i = 0; i < ii; ++i) { attr = ngAttrPrefixes[i] + ngAttr; - if (isString(attr = element.attr(attr))) { + if (isString(attr = element.getAttribute(attr))) { return attr; } } diff --git a/test/e2e/fixtures/ngJq/index.html b/test/e2e/fixtures/ngJq/index.html new file mode 100644 index 000000000000..00f268c86066 --- /dev/null +++ b/test/e2e/fixtures/ngJq/index.html @@ -0,0 +1,10 @@ + + +
+ {{jqueryVersion}} + + + + + + diff --git a/test/e2e/fixtures/ngJq/script.js b/test/e2e/fixtures/ngJq/script.js new file mode 100644 index 000000000000..653ebc6b8beb --- /dev/null +++ b/test/e2e/fixtures/ngJq/script.js @@ -0,0 +1,6 @@ +'use strict'; + +angular.module('test', []) + .run(function($rootScope) { + $rootScope.jqueryVersion = window.angular.element().jquery || 'jqLite'; + }); diff --git a/test/e2e/fixtures/ngJqJquery/index.html b/test/e2e/fixtures/ngJqJquery/index.html new file mode 100644 index 000000000000..2370107d333d --- /dev/null +++ b/test/e2e/fixtures/ngJqJquery/index.html @@ -0,0 +1,14 @@ + + + + {{jqueryVersion}} + + + + + + + + diff --git a/test/e2e/fixtures/ngJqJquery/script.js b/test/e2e/fixtures/ngJqJquery/script.js new file mode 100644 index 000000000000..653ebc6b8beb --- /dev/null +++ b/test/e2e/fixtures/ngJqJquery/script.js @@ -0,0 +1,6 @@ +'use strict'; + +angular.module('test', []) + .run(function($rootScope) { + $rootScope.jqueryVersion = window.angular.element().jquery || 'jqLite'; + }); diff --git a/test/e2e/tests/ngJqSpec.js b/test/e2e/tests/ngJqSpec.js new file mode 100644 index 000000000000..fd9ea368fc0d --- /dev/null +++ b/test/e2e/tests/ngJqSpec.js @@ -0,0 +1,12 @@ +describe('Customizing the jqlite / jquery version', function() { + + it('should be able to force jqlite', function() { + loadFixture("ngJq").andWaitForAngular(); + expect(element(by.binding('jqueryVersion')).getText()).toBe('jqLite'); + }); + + it('should be able to use a specific version jQuery', function() { + loadFixture("ngJqJquery").andWaitForAngular(); + expect(element(by.binding('jqueryVersion')).getText()).toBe('2.1.0'); + }); +}); diff --git a/test/e2e/tools/util.js b/test/e2e/tools/util.js index 313e9bda66db..286bbe21ffcf 100644 --- a/test/e2e/tools/util.js +++ b/test/e2e/tools/util.js @@ -24,6 +24,10 @@ function testExists(testname) { } function rewriteTestFile(testname, testfile) { + if (testfile.indexOf('http') === 0) { + return testfile; + } + var i = 0; while (testfile[i] === '/') ++i; testfile = testfile.slice(i);