diff options
| author | Misko Hevery | 2010-04-08 15:05:05 -0700 |
|---|---|---|
| committer | Misko Hevery | 2010-04-08 15:05:05 -0700 |
| commit | 41a5c408c242269bf31bc0b774c7304fdf7c2f1c (patch) | |
| tree | aa48e2eff595691b4f4ee07d0307fcd95ebd0956 | |
| parent | c4ef1f2fdd73bdaeda879e596d3d96e4e68cb6fd (diff) | |
| download | angular.js-41a5c408c242269bf31bc0b774c7304fdf7c2f1c.tar.bz2 | |
tests pass jstd has issues
| -rw-r--r-- | angular-debug.js | 28 | ||||
| -rw-r--r-- | jstd.log | 773 | ||||
| -rw-r--r-- | src/services.js | 7 | ||||
| -rw-r--r-- | src/widgets.js | 10 | ||||
| -rw-r--r-- | test/BinderTest.js | 6 | ||||
| -rw-r--r-- | test/directivesSpec.js | 10 | ||||
| -rw-r--r-- | test/servicesSpec.js | 4 |
7 files changed, 804 insertions, 34 deletions
diff --git a/angular-debug.js b/angular-debug.js index f5172ff6..c3f419f7 100644 --- a/angular-debug.js +++ b/angular-debug.js @@ -107,7 +107,7 @@ function extensionMap(angular, name) { } function jqLiteWrap(element) { - if (typeof element == 'string') { + if (isString(element)) { var div = document.createElement('div'); div.innerHTML = element; element = div.childNodes[0]; @@ -126,6 +126,12 @@ function lowercase(value){ return isString(value) ? value.toLowerCase() : value; function uppercase(value){ return isString(value) ? value.toUpperCase() : value; } function trim(value) { return isString(value) ? value.replace(/^\s*/, '').replace(/\s*$/, '') : value; } function nodeName(element) { return (element[0] || element).nodeName; } + +function isVisible(element) { + var rect = element[0].getBoundingClientRect(); + return rect.width !=0 && rect.height !=0; +} + function map(obj, iterator, context) { var results = []; foreach(obj, function(value, index, list) { @@ -1940,6 +1946,11 @@ JQLite.prototype = { this[0].className = trim((" " + this[0].className + " ").replace(/[\n\t]/g, " ").replace(" " + selector + " ", "")); }, + toggleClass: function(selector, condition) { + var self = this; + (condition ? self.addClass : self.removeClass).call(self, selector); + }, + addClass: function( selector ) { if (!this.hasClass(selector)) { this[0].className = trim(this[0].className + ' ' + selector); @@ -2361,7 +2372,7 @@ var angularFilterGoogleChartApi; foreach({ 'currency': function(amount){ - jQuery(this.$element).toggleClass('ng-format-negative', amount < 0); + this.$element.toggleClass('ng-format-negative', amount < 0); return '$' + angularFilter['number'].apply(this, [amount, 2]); }, @@ -2397,7 +2408,7 @@ foreach({ }, 'json': function(object) { - jQuery(this.$element).addClass("ng-monospace"); + this.$element.addClass("ng-monospace"); return toJson(object, true); }, @@ -3124,7 +3135,9 @@ function valueAccessor(scope, element) { required = required || required === ''; if (!validator) throw "Validator named '" + validatorName + "' not found."; function validate(value) { - var error = required && !trim(value) ? "Required" : validator({state:scope, scope:{get:scope.$get, set:scope.$set}}, value); + var error = required && !trim(value) ? + "Required" : + validator({state:scope, scope:{get:scope.$get, set:scope.$set}}, value); if (error !== lastError) { elementError(element, NG_VALIDATION_ERROR, error); lastError = error; @@ -3450,6 +3463,13 @@ angularService("$invalidWidgets", function(){ if (index === -1) invalidWidgets.push(element); }; + invalidWidgets.visible = function() { + var count = 0; + foreach(invalidWidgets, function(widget){ + count = count + (isVisible(widget) ? 1 : 0); + }); + return count; + }; return invalidWidgets; }); var browserSingleton; @@ -1,11 +1,762 @@ -java.lang.IllegalArgumentException: /com/google/jstestdriver/javascript/mysrc: resource is null -java.lang.IllegalArgumentException: /com/google/jstestdriver/javascript/mysrc: resource is null -java.lang.IllegalArgumentException: /com/google/jstestdriver/javascript/mysrc: resource is null -java.lang.IllegalArgumentException: /com/google/jstestdriver/javascript/mysrc: resource is null -java.lang.IllegalArgumentException: /com/google/jstestdriver/javascript/mysrc: resource is null -java.lang.IllegalArgumentException: /com/google/jstestdriver/javascript/mysrc: resource is null -java.lang.IllegalArgumentException: /com/google/jstestdriver/javascript/mysrc: resource is null -java.lang.IllegalArgumentException: /com/google/jstestdriver/javascript/mysrc: resource is null -java.lang.IllegalArgumentException: /com/google/jstestdriver/javascript/mysrc: resource is null -java.lang.IllegalArgumentException: /com/google/jstestdriver/javascript/mysrc: resource is null -java.lang.IllegalArgumentException: /com/google/jstestdriver/javascript/mysrc: resource is null +Apr 8, 2010 2:04:32 PM com.google.jstestdriver.ServerStartupAction run +INFO: Starting server... +Apr 8, 2010 2:04:32 PM org.mortbay.log.Slf4jLog info +INFO: Transparent ProxyServlet @ forward to http://localhost:9876 +Apr 8, 2010 2:04:33 PM com.google.jstestdriver.BrowserHunter captureBrowser +INFO: Browser Captured: Firefox version 3.6.3 (1) +Apr 8, 2010 2:04:33 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1?start HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:04:33 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:04:36 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1?start HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:04:43 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:04:53 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:05:04 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:05:14 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:05:24 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:05:34 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:05:44 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:05:54 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:06:04 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:06:14 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:06:24 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:06:34 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:06:44 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:06:54 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:07:04 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:07:14 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:07:24 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:07:34 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Pragma: no-cache
+Cache-Control: no-cache
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+
+ +Apr 8, 2010 2:07:44 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:07:55 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:08:05 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:08:15 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:08:25 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:08:35 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:08:45 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:08:55 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:09:05 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:09:15 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:09:25 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:09:35 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:09:45 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:09:55 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Pragma: no-cache
+Cache-Control: no-cache
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+
+ +Apr 8, 2010 2:10:05 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:10:15 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:10:25 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:10:35 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:10:45 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Content-Type: text/plain; charset=UTF-8
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:10:55 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1?start HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+Pragma: no-cache
+Cache-Control: no-cache
+
+ +Apr 8, 2010 2:10:56 PM com.google.jstestdriver.BrowserQueryResponseServlet doPost +FINEST: POST: POST /query/1 HTTP/1.1 +Host: misko.i:9876
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
+Accept: */*
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Keep-Alive: 115
+Connection: keep-alive
+Referer: http://misko.i:9876/slave/1/Runnerstrict.html
+Pragma: no-cache
+Cache-Control: no-cache
+Content-Type: text/plain; charset=UTF-8
+X-Requested-With: XMLHttpRequest
+Content-Length: 0
+
+ diff --git a/src/services.js b/src/services.js index 291e1704..6e1a1945 100644 --- a/src/services.js +++ b/src/services.js @@ -100,5 +100,12 @@ angularService("$invalidWidgets", function(){ if (index === -1) invalidWidgets.push(element); }; + invalidWidgets.visible = function() { + var count = 0; + foreach(invalidWidgets, function(widget){ + count = count + (isVisible(widget) ? 1 : 0); + }); + return count; + }; return invalidWidgets; }); diff --git a/src/widgets.js b/src/widgets.js index faa60043..f87c1d02 100644 --- a/src/widgets.js +++ b/src/widgets.js @@ -22,20 +22,18 @@ function valueAccessor(scope, element) { var validatorName = element.attr('ng-validate') || NOOP, validator = compileValidator(validatorName), required = element.attr('ng-required'), - lastError, lastVisible, + lastError, invalidWidgets = scope.$invalidWidgets || {markValid:noop, markInvalid:noop}; required = required || required === ''; if (!validator) throw "Validator named '" + validatorName + "' not found."; function validate(value) { var error = required && !trim(value) ? "Required" : - validator({state:scope, scope:{get:scope.$get, set:scope.$set}}, value), - visible = isVisible(element); - if (error !== lastError || visible !== lastVisible) { + validator({state:scope, scope:{get:scope.$get, set:scope.$set}}, value); + if (error !== lastError) { elementError(element, NG_VALIDATION_ERROR, error); lastError = error; - lastVisible = visible; - if (error && visible) + if (error) invalidWidgets.markInvalid(element); else invalidWidgets.markValid(element); diff --git a/test/BinderTest.js b/test/BinderTest.js index e72afa9f..ec0c1cb4 100644 --- a/test/BinderTest.js +++ b/test/BinderTest.js @@ -506,10 +506,8 @@ BinderTest.prototype.testFillInOptionValueWhenMissing = function() { }; BinderTest.prototype.testValidateForm = function() { - var doc = jqLite(document.body); - doc.append('<div><input name="name" ng-required>' + + var c = this.compile('<div><input name="name" ng-required>' + '<div ng-repeat="item in items"><input name="item.name" ng-required/></div></div>'); - var c = this.compile(doc); var items = [{}, {}]; c.scope.$set("items", items); c.scope.$eval(); @@ -545,7 +543,7 @@ BinderTest.prototype.testValidateOnlyVisibleItems = function(){ c.scope.$set("show", false); c.scope.$eval(); - assertEquals(1, c.scope.$get("$invalidWidgets.length")); + assertEquals(1, c.scope.$invalidWidgets.visible()); }; BinderTest.prototype.testDeleteAttributeIfEvaluatesFalse = function() { diff --git a/test/directivesSpec.js b/test/directivesSpec.js index 0af61997..1def9584 100644 --- a/test/directivesSpec.js +++ b/test/directivesSpec.js @@ -141,22 +141,20 @@ describe("directives", function(){ it('should ng-show', function(){ var scope = compile('<div ng-hide="hide"></div>'); - jqLite(document.body).append(scope.$element); scope.$eval(); - expect(isVisible(scope.$element)).toEqual(true); + expect(isCssVisible(scope.$element)).toEqual(true); scope.$set('hide', true); scope.$eval(); - expect(isVisible(scope.$element)).toEqual(false); + expect(isCssVisible(scope.$element)).toEqual(false); }); it('should ng-hide', function(){ var scope = compile('<div ng-show="show"></div>'); - jqLite(document.body).append(scope.$element); scope.$eval(); - expect(isVisible(scope.$element)).toEqual(false); + expect(isCssVisible(scope.$element)).toEqual(false); scope.$set('show', true); scope.$eval(); - expect(isVisible(scope.$element)).toEqual(true); + expect(isCssVisible(scope.$element)).toEqual(true); }); it('should ng-controller', function(){ diff --git a/test/servicesSpec.js b/test/servicesSpec.js index a3841c2f..b7dfe4c8 100644 --- a/test/servicesSpec.js +++ b/test/servicesSpec.js @@ -66,9 +66,7 @@ describe("service $invalidWidgets", function(){ }); it("should count number of invalid widgets", function(){ - var doc = jqLite(window.document.body); - doc.append('<input name="price" ng-required></input>'); - var scope = compile(doc).$init(); + var scope = compile('<input name="price" ng-required></input>').$init(); expect(scope.$invalidWidgets.length).toEqual(1); scope.price = 123; scope.$eval(); |
