fix(specs): fix jQuery to jqLite binding on IE8

It appears that this whole time all IE8 unit tests ran only with jqLite. Due to a weird bug in IE[1], we never overwrote jqLite implementation with jQuery, so the tests ran with our jqLite instead.

This affected only IE8 (and likely older) and only in unit testing mode. angular.js - the built artifact binds to jQuery just find.

[1] https://plus.google.com/104744871076396904202/posts/Kqjuj6RSbbT
This commit is contained in:
Igor Minar 2011-09-15 04:54:00 +02:00
parent 0e5a24c584
commit 2170c06924
4 changed files with 17 additions and 2 deletions

View file

@ -39,6 +39,11 @@ describe('jqLite', function(){
}); });
it('should be jqLite when jqLiteMode is on, otherwise jQuery', function() {
expect(jqLite).toBe(_jqLiteMode ? jqLiteWrap : _jQuery);
});
describe('construction', function(){ describe('construction', function(){
it('should allow construction with text node', function(){ it('should allow construction with text node', function(){
var text = a.firstChild; var text = a.firstChild;

View file

@ -1,3 +1,4 @@
'use strict'; 'use strict';
var _jQuery = jQuery; var _jQuery = jQuery,
_jqLiteMode = false;

View file

@ -1,3 +1,4 @@
'use strict'; 'use strict';
var _jQuery = jQuery.noConflict(true); var _jQuery = jQuery.noConflict(true),
_jqLiteMode = true;

View file

@ -28,6 +28,14 @@ if (window.jstestdriver) {
beforeEach(function(){ beforeEach(function(){
// This is to reset parsers global cache of expressions. // This is to reset parsers global cache of expressions.
compileCache = {}; compileCache = {};
// workaround for IE bug https://plus.google.com/104744871076396904202/posts/Kqjuj6RSbbT
// IE overwrite window.jQuery with undefined because of empty jQuery var statement, so we have to
// correct this, but only if we are not running in jqLite mode
if (!_jqLiteMode && _jQuery !== jQuery) {
jQuery = _jQuery;
}
// reset to jQuery or default to us. // reset to jQuery or default to us.
bindJQuery(); bindJQuery();
jqLite(document.body).html(''); jqLite(document.body).html('');