aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMisko Hevery2010-04-21 14:29:05 -0700
committerMisko Hevery2010-04-21 14:29:05 -0700
commit8b29156a2ddcc738f9b0cf8dfc48a8648474884d (patch)
tree4bbb4e936ee8f2ab34ed03509ad5da0b46e4ef04
parent4aaec251dfebd01729c0726f07fc113b97679219 (diff)
downloadangular.js-8b29156a2ddcc738f9b0cf8dfc48a8648474884d.tar.bz2
ie6 now passes
-rw-r--r--scenario/widgets.html1
-rw-r--r--src/Browser.js2
-rw-r--r--src/jqLite.js2
-rw-r--r--src/widgets.js5
-rw-r--r--test/FiltersTest.js18
-rw-r--r--test/directivesSpec.js4
-rw-r--r--test/markupSpec.js26
7 files changed, 31 insertions, 27 deletions
diff --git a/scenario/widgets.html b/scenario/widgets.html
index 5449b218..43b1ddbb 100644
--- a/scenario/widgets.html
+++ b/scenario/widgets.html
@@ -93,6 +93,5 @@
<td></td>
</tr>
</table>
--->
</body>
</html>
diff --git a/src/Browser.js b/src/Browser.js
index e00f73a5..11b079f0 100644
--- a/src/Browser.js
+++ b/src/Browser.js
@@ -9,7 +9,7 @@ function Browser(location, document) {
this.urlListeners = [];
this.hoverListener = noop;
- this.XHR = XMLHttpRequest || function () {
+ this.XHR = window.XMLHttpRequest || function () {
try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch (e1) {}
try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch (e2) {}
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e3) {}
diff --git a/src/jqLite.js b/src/jqLite.js
index 0867f9c9..36248e71 100644
--- a/src/jqLite.js
+++ b/src/jqLite.js
@@ -187,7 +187,7 @@ JQLite.prototype = {
} else {
var attributes = e.attributes,
item = attributes ? attributes.getNamedItem(name) : undefined;
- return item ? item.value : undefined;
+ return item && item.specified ? item.value : undefined;
}
},
diff --git a/src/widgets.js b/src/widgets.js
index 2c084e29..239f12f8 100644
--- a/src/widgets.js
+++ b/src/widgets.js
@@ -45,10 +45,11 @@ function valueAccessor(scope, element) {
if (error !== lastError || force) {
elementError(element, NG_VALIDATION_ERROR, error);
lastError = error;
- if (error)
+ if (error) {
invalidWidgets.markInvalid(element);
- else
+ } else {
invalidWidgets.markValid(element);
+ }
}
return value;
}
diff --git a/test/FiltersTest.js b/test/FiltersTest.js
index 0fd80056..a71d30e2 100644
--- a/test/FiltersTest.js
+++ b/test/FiltersTest.js
@@ -80,13 +80,13 @@ FiltersTest.prototype.testImage = function(){
assertEquals(null, angular.filter.image());
assertEquals(null, angular.filter.image({}));
assertEquals(null, angular.filter.image(""));
- assertEquals('<img src="abc"></img>', sortedHtml(angular.filter.image({url:"abc"})));
+ assertEquals('<img src="http://localhost/abc"></img>', sortedHtml(angular.filter.image({url:"http://localhost/abc"})));
assertEquals(
- '<img src="abc" style="max-height: 10px; max-width: 10px;"></img>',
- sortedHtml(angular.filter.image({url:"abc"}, 10)));
+ '<img src="http://localhost/abc" style="max-height: 10px; max-width: 10px;"></img>',
+ sortedHtml(angular.filter.image({url:"http://localhost/abc"}, 10)));
assertEquals(
- '<img src="abc" style="max-height: 20px; max-width: 10px;"></img>',
- sortedHtml(angular.filter.image({url:"abc"}, 10, 20)));
+ '<img src="http://localhost/abc" style="max-height: 20px; max-width: 10px;"></img>',
+ sortedHtml(angular.filter.image({url:"http://localhost/abc"}, 10, 20)));
};
FiltersTest.prototype.testQRcode = function() {
@@ -141,11 +141,11 @@ FiltersTest.prototype.testHtml = function() {
FiltersTest.prototype.testLinky = function() {
var linky = angular.filter.linky;
assertEquals(
- '<a href="http://ab">http://ab</a> ' +
- '(<a href="http://a">http://a</a>) ' +
- '&lt;<a href="http://a">http://a</a>&gt; ' +
+ '<a href="http://ab/">http://ab/</a> ' +
+ '(<a href="http://a/">http://a/</a>) ' +
+ '&lt;<a href="http://a/">http://a/</a>&gt; ' +
'<a href="http://1.2/v:~-123">http://1.2/v:~-123</a>. c',
- sortedHtml(linky("http://ab (http://a) <http://a> http://1.2/v:~-123. c")));
+ sortedHtml(linky("http://ab/ (http://a/) <http://a/> http://1.2/v:~-123. c")));
assertEquals(undefined, linky(undefined));
};
diff --git a/test/directivesSpec.js b/test/directivesSpec.js
index d012fdd0..71402af7 100644
--- a/test/directivesSpec.js
+++ b/test/directivesSpec.js
@@ -52,8 +52,8 @@ describe("directives", function(){
});
it('should ng-bind-attr', function(){
- var scope = compile('<img ng-bind-attr="{src:\'mysrc\', alt:\'myalt\'}"/>');
- expect(element.attr('src')).toEqual('mysrc');
+ var scope = compile('<img ng-bind-attr="{src:\'http://localhost/mysrc\', alt:\'myalt\'}"/>');
+ expect(element.attr('src')).toEqual('http://localhost/mysrc');
expect(element.attr('alt')).toEqual('myalt');
});
diff --git a/test/markupSpec.js b/test/markupSpec.js
index cfc0f899..5e3b829a 100644
--- a/test/markupSpec.js
+++ b/test/markupSpec.js
@@ -27,11 +27,11 @@ describe("markups", function(){
});
it('should translate {{}} in terminal nodes', function(){
- compile('<select name="x"><option value="">Greet {{name}}!</option></select>');
- expect(sortedHtml(element)).toEqual('<select name="x"><option ng-bind-template="Greet {{name}}!">Greet !</option></select>');
+ compile('<select name="x"><option selected="true" value="">Greet {{name}}!</option></select>');
+ expect(sortedHtml(element)).toEqual('<select name="x"><option ng-bind-template="Greet {{name}}!" selected="true">Greet !</option></select>');
scope.$set('name', 'Misko');
scope.$eval();
- expect(sortedHtml(element)).toEqual('<select name="x"><option ng-bind-template="Greet {{name}}!">Greet Misko!</option></select>');
+ expect(sortedHtml(element)).toEqual('<select name="x"><option ng-bind-template="Greet {{name}}!" selected="true">Greet Misko!</option></select>');
});
it('should translate {{}} in attributes', function(){
@@ -43,14 +43,18 @@ describe("markups", function(){
});
it('should populate value attribute on OPTION', function(){
- compile('<select name="x"><option>a</option></select>');
- expect(sortedHtml(element)).toEqual('<select name="x"><option value="a">a</option></select>');
+ compile('<select name="x"><option selected="true">a</option></select>');
+ expect(sortedHtml(element)).toEqual('<select name="x"><option selected="true" value="a">a</option></select>');
});
it('should process all bindings when we have leading space', function(){
- compile('<a> {{a}}<br/>{{b}}</a>');
- var space = msie ? '<span>' + NBSP + '</span>': ' ';
- expect(sortedHtml(scope.$element)).toEqual('<a>' + space + '<span ng-bind="a"></span><br></br><span ng-bind="b"></span></a>');
+ var e = jqLite('<a> {{a}}<br/>{{b}}</a>');
+ if (sortedHtml(e).indexOf('<a>{{') != 0) {
+ // can only run this test if browser respects leading spaces
+ compile(e);
+ var space = msie ? '<span>' + NBSP + '</span>': ' ';
+ expect(sortedHtml(scope.$element)).toEqual('<a>' + space + '<span ng-bind="a"></span><br></br><span ng-bind="b"></span></a>');
+ }
});
});
@@ -138,7 +142,7 @@ BindingMarkupTest.prototype.testParseMultiline = function(){
};
BindingMarkupTest.prototype.testHasBinding = function(){
- assertTrue(hasBindings("{{a}}"));
- assertTrue(!hasBindings("a"));
- assertTrue(hasBindings("{{b}}x{{c}}"));
+ assertTrue(hasBindings(parseBindings("{{a}}")));
+ assertTrue(!hasBindings(parseBindings("a")));
+ assertTrue(hasBindings(parseBindings("{{b}}x{{c}}")));
};