From 5fdb117b32b72a908a3938bee8f1bce9854a0004 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Thu, 22 Apr 2010 22:09:17 -0700 Subject: clean up failing test with jquery --- src/directives.js | 17 +++++++++-------- test.sh | 3 ++- test/FiltersTest.js | 19 +++++-------------- test/directivesSpec.js | 15 ++++++++------- test/testabilityPatch.js | 4 ++-- test/widgetsSpec.js | 2 +- 6 files changed, 27 insertions(+), 33 deletions(-) diff --git a/src/directives.js b/src/directives.js index aa75aa5b..2d318be2 100644 --- a/src/directives.js +++ b/src/directives.js @@ -97,20 +97,21 @@ angularDirective("ng-bind-template", function(expression){ }); var REMOVE_ATTRIBUTES = { - 'disabled':true, - 'readonly':true, - 'checked':true + 'disabled':'disabled', + 'readonly':'readOnly', + 'checked':'checked' }; angularDirective("ng-bind-attr", function(expression){ return function(element){ this.$onEval(function(){ foreach(this.$eval(expression), function(bindExp, key) { - var value = compileBindTemplate(bindExp).call(this, element); - if (REMOVE_ATTRIBUTES[lowercase(key)]) { - if (!toBoolean(value)) { - element.removeAttr(key); - } else { + var value = compileBindTemplate(bindExp).call(this, element), + specialName = REMOVE_ATTRIBUTES[lowercase(key)]; + if (specialName) { + if (element[specialName] = toBoolean(value)) { element.attr(key, value); + } else { + element.removeAttr(key); } (element.data('$validate')||noop)(); } else { diff --git a/test.sh b/test.sh index 8993c3ff..54e1a93a 100755 --- a/test.sh +++ b/test.sh @@ -1 +1,2 @@ -java -jar lib/jstestdriver/JsTestDriver.jar --tests all +# java -jar lib/jstestdriver/JsTestDriver.jar --tests all +java -jar lib/jstestdriver/JsTestDriver.jar --tests all --config jsTestDriver-jquery.conf diff --git a/test/FiltersTest.js b/test/FiltersTest.js index 5642f635..f839bb51 100644 --- a/test/FiltersTest.js +++ b/test/FiltersTest.js @@ -80,22 +80,13 @@ FiltersTest.prototype.testImage = function(){ assertEquals(null, angular.filter.image()); assertEquals(null, angular.filter.image({})); assertEquals(null, angular.filter.image("")); - assertEquals('', sortedHtml(angular.filter.image({url:"http://localhost/abc"}))); - assertEquals( - '', - sortedHtml(angular.filter.image({url:"http://localhost/abc"}, 10))); - assertEquals( - '', - sortedHtml(angular.filter.image({url:"http://localhost/abc"}, 10, 20))); + assertEquals('http://localhost/abc', angular.filter.image({url:"http://localhost/abc"}).attr('src')); }; FiltersTest.prototype.testQRcode = function() { assertEquals( - '', - sortedHtml(angular.filter.qrcode('Hello world'))); - assertEquals( - '', - sortedHtml(angular.filter.qrcode('http://server?a&b=c', 100))); + 'http://chart.apis.google.com/chart?chl=Hello%20world&chs=200x200&cht=qr', + angular.filter.qrcode('Hello world').attr('src')); }; FiltersTest.prototype.testLowercase = function() { @@ -128,8 +119,8 @@ FiltersTest.prototype.testUnless = function() { FiltersTest.prototype.testGoogleChartApiEncode = function() { assertEquals( - '', - sortedHtml(angular.filter.googleChartApi.encode({cht:"qr", chl:"Hello world"}))); + 'http://chart.apis.google.com/chart?chl=Hello world&chs=200x200&cht=qr', + angular.filter.googleChartApi.encode({cht:"qr", chl:"Hello world"}).attr('src')); }; FiltersTest.prototype.testHtml = function() { diff --git a/test/directivesSpec.js b/test/directivesSpec.js index 71402af7..eb8a9785 100644 --- a/test/directivesSpec.js +++ b/test/directivesSpec.js @@ -58,19 +58,20 @@ describe("directives", function(){ }); it('should remove special attributes on false', function(){ - var scope = compile('
'); - expect(scope.$element.attr('disabled')).toEqual(null); - expect(scope.$element.attr('readonly')).toEqual(null); - expect(scope.$element.attr('checked')).toEqual(null); + var scope = compile(''); + var input = scope.$element[0]; + expect(input.disabled).toEqual(false); + expect(input.readOnly).toEqual(false); + expect(input.checked).toEqual(false); scope.disabled = true; scope.readonly = true; scope.checked = true; scope.$eval(); - expect(scope.$element.attr('disabled')).not.toEqual(null); - expect(scope.$element.attr('readonly')).not.toEqual(null); - expect(scope.$element.attr('checked')).not.toEqual(null); + expect(input.disabled).toEqual(true); + expect(input.readOnly).toEqual(true); + expect(input.checked).toEqual(true); }); it('should ng-non-bindable', function(){ diff --git a/test/testabilityPatch.js b/test/testabilityPatch.js index 1e6ed970..ff537a09 100644 --- a/test/testabilityPatch.js +++ b/test/testabilityPatch.js @@ -145,9 +145,9 @@ error = noop; function click(element) { element = jqLite(element); - if ( (msie || jqLite == window.jQuery) && + if ( msie && nodeName(element) == 'INPUT' && (lowercase(element.attr('type')) == 'radio' || lowercase(element.attr('type')) == 'checkbox')) { element[0].checked = ! element[0].checked; } - element.trigger('click'); + JQLite.prototype.trigger.call(element, 'click'); } diff --git a/test/widgetsSpec.js b/test/widgetsSpec.js index 3aa5e250..5b1e7b8e 100644 --- a/test/widgetsSpec.js +++ b/test/widgetsSpec.js @@ -160,7 +160,7 @@ describe("widget", function(){ it('should support type="radio"', function(){ compile('
' + '' + - '' + + '' + '' + '
'); var a = element[0].childNodes[0]; -- cgit v1.2.3