fixing markup in a template
[fnpeditor.git] / modules / documentCanvas / tests / utils.js
index e23808c..fcb9853 100644 (file)
@@ -1,29 +1,49 @@
-define(['libs/jquery-1.9.1.min'], function($) {\r
-    return {\r
-        cleanUp: function(xml) {\r
-            \r
-            var rmws = function(node) {\r
-                if(node.nodeType === 3) {\r
-                    node.data = $.trim(node.data);\r
-                }\r
-                else {\r
-                    $(node).contents().each(function() {\r
-                        rmws(this);\r
-                    });\r
-                }\r
-            }\r
-            \r
-            xml = $($.trim(xml));\r
-            xml.each(function() {\r
-                rmws(this);\r
-            });\r
-            \r
-            /*var toret = xml\r
-                .replace(/(<.*>)\s*(<.*>)/gm, '$1$2')\r
-                .replace(/(<\/.*>)\s*(<\/.*>)/gm, '$1$2')\r
-                .replace(/(<\/.*>)\s*(<.*>)/gm, '$1$2');\r
-            return $.trim(toret);*/\r
-            return $('<div>').append(xml).html();\r
-        }\r
-    }\r
+define(['libs/jquery-1.9.1.min', 'libs/chai'], function($, chai) {
+    return {
+        cleanUp: function(xml) {
+            var rmws = function(node) {
+                if(node.nodeType === 3) {
+                    node.data = $.trim(node.data);
+                }
+                else {
+                    $(node).contents().each(function() {
+                        rmws(this);
+                    });
+                }
+            };
+            
+            xml = $($.trim(xml));
+            xml.each(function() {
+                rmws(this);
+            });
+            
+            /*var toret = xml
+                .replace(/(<.*>)\s*(<.*>)/gm, '$1$2')
+                .replace(/(<\/.*>)\s*(<\/.*>)/gm, '$1$2')
+                .replace(/(<\/.*>)\s*(<.*>)/gm, '$1$2');
+            return $.trim(toret);*/
+            return $('<div>').append(xml).html();
+        },
+        
+        assertDomEqual: function(lhs, rhs) {
+            lhs = lhs.clone();
+            var rhsArr = $.parseHTML(rhs);
+            if(rhsArr.length === 1) {
+                rhs = $(rhsArr[0]);
+            } else {
+                rhs = $('<div>');
+                $.each(rhsArr, function(i, el) {
+                    rhs.append(el);
+                });            
+            }
+            if(lhs.length > 1) {
+                lhs = $('<div>').append(lhs);
+            }
+            lhs.attr('id', '');
+            rhs.attr('id', '');
+            lhs.find('*').each(function() {$(this).attr('id', '');});
+            rhs.find('*').each(function() {$(this).attr('id', '');});
+            return chai.assert.ok(lhs[0].isEqualNode(rhs[0]), 'nodes are equal');
+        }
+    };
 });
\ No newline at end of file