From 62c0e5c46091d8b98a20c31ab26e715bad574bae Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Tue, 26 Oct 2010 22:02:24 -0700 Subject: Fix failing tests for ie, and mark elements as ng-widget, ng-directive, and ng-binding --- test/CompilerSpec.js | 6 +++++- test/directivesSpec.js | 2 ++ test/scenario/dslSpec.js | 6 ++---- test/testabilityPatch.js | 12 +++++++++--- 4 files changed, 18 insertions(+), 8 deletions(-) (limited to 'test') diff --git a/test/CompilerSpec.js b/test/CompilerSpec.js index 59c365e4..780fd7cb 100644 --- a/test/CompilerSpec.js +++ b/test/CompilerSpec.js @@ -46,6 +46,7 @@ describe('compiler', function(){ var init = template(e).$init; expect(log).toEqual("found"); init(); + expect(e.hasClass('ng-directive')).toEqual(true); expect(log).toEqual("found:init"); }); @@ -102,12 +103,13 @@ describe('compiler', function(){ } }); var scope = compile('beforemiddleafter'); - expect(lowercase(scope.$element[0].innerHTML)).toEqual('beforereplacedafter'); + expect(sortedHtml(scope.$element[0], true)).toEqual('
beforereplacedafter
'); expect(log).toEqual("hello middle"); }); it('should replace widgets', function(){ widgets['NG:BUTTON'] = function(element) { + expect(element.hasClass('ng-widget')).toEqual(true); element.replaceWith('
button
'); return function(element) { log += 'init'; @@ -120,6 +122,8 @@ describe('compiler', function(){ it('should use the replaced element after calling widget', function(){ widgets['H1'] = function(element) { + // HTML elements which are augmented by acting as widgets, should not be marked as so + expect(element.hasClass('ng-widget')).toEqual(false); var span = angular.element('{{1+2}}'); element.replaceWith(span); this.descend(true); diff --git a/test/directivesSpec.js b/test/directivesSpec.js index fa2abd46..2e5aa2a0 100644 --- a/test/directivesSpec.js +++ b/test/directivesSpec.js @@ -35,6 +35,7 @@ describe("directives", function(){ expect(element.text()).toEqual(''); scope.a = 'misko'; scope.$eval(); + expect(element.hasClass('ng-binding')).toEqual(true); expect(element.text()).toEqual('misko'); }); @@ -87,6 +88,7 @@ describe("directives", function(){ var scope = compile('
'); scope.$set('name', 'Misko'); scope.$eval(); + expect(element.hasClass('ng-binding')).toEqual(true); expect(element.text()).toEqual('Hello Misko!'); }); diff --git a/test/scenario/dslSpec.js b/test/scenario/dslSpec.js index efedeeb5..3d68925f 100644 --- a/test/scenario/dslSpec.js +++ b/test/scenario/dslSpec.js @@ -260,15 +260,13 @@ describe("angular.scenario.dsl", function() { describe('Binding', function() { it('should select binding by name', function() { - if (msie) return; // TODO reenable! - doc.append('some value'); + doc.append('some value'); $root.dsl.binding('foo.bar'); expect($root.futureResult).toEqual('some value'); }); it('should select binding in template by name', function() { - if (msie) return; // TODO reenable! - doc.append('
foo some baz
'); + doc.append('
foo some baz
'); $root.dsl.binding('bar'); expect($root.futureResult).toEqual('foo some baz'); }); diff --git a/test/testabilityPatch.js b/test/testabilityPatch.js index 5c6eaf4d..e8041ac7 100644 --- a/test/testabilityPatch.js +++ b/test/testabilityPatch.js @@ -81,7 +81,7 @@ extend(angular, { }); -function sortedHtml(element) { +function sortedHtml(element, showNgClass) { var html = ""; foreach(jqLite(element), function toString(node) { if (node.nodeName == "#text") { @@ -93,8 +93,14 @@ function sortedHtml(element) { html += '<' + node.nodeName.toLowerCase(); var attributes = node.attributes || []; var attrs = []; - if (node.className) - attrs.push(' class="' + node.className + '"'); + var className = node.className || ''; + if (!showNgClass) { + className = className.replace(/ng-[\w-]+\s*/g, ''); + } + className = trim(className); + if (className) { + attrs.push(' class="' + className + '"'); + } for(var i=0; i