Changeset 2816
- Timestamp:
- 11/23/07 06:34:42 (1 year ago)
- Files:
-
- tracwysiwygplugin/0.10/tests/testcase.js (modified) (1 diff)
- tracwysiwygplugin/0.10/tracwysiwyg/htdocs/wysiwyg.js (modified) (2 diffs)
- tracwysiwygplugin/0.11/tests/testcase.js (modified) (1 diff)
- tracwysiwygplugin/0.11/tracwysiwyg/htdocs/wysiwyg.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
tracwysiwygplugin/0.10/tests/testcase.js
r2814 r2816 36 36 var fragment = unit.fragment; 37 37 var element = unit.element; 38 39 unit.add("treeWalk", function() { 40 var list; 41 function iterator(node) { 42 var value; 43 if (node) { 44 switch (node.nodeType) { 45 case 1: value = node.tagName.toLowerCase(); break; 46 case 3: value = "#text"; break; 47 } 48 } 49 else { 50 value = "(null)"; 51 } 52 list.push(value); 53 } 54 55 function doTreeWalk(expected, dom) { 56 list = []; 57 instance.treeWalk(dom, iterator); 58 this.assertEqual(expected, list.join(" ")); 59 60 list = []; 61 instance._treeWalkEmulation(dom, iterator); 62 this.assertEqual(expected, list.join(" ")); 63 } 64 65 doTreeWalk.call(this, "p #text (null)", element("div", element("p", "paragraph"))); 66 doTreeWalk.call(this, "#text (null)", element("div", element("p", "paragraph")).firstChild); 67 doTreeWalk.call(this, "(null)", element("div", element("p")).firstChild); 68 69 var dom = element("div"); 70 dom.innerHTML = [ 71 '<h2 id="Tables">Tables</h2>', 72 '<p>', 73 'Simple tables can be created like this:', 74 '</p>', 75 '<pre class="wiki">||Cell 1||Cell 2||Cell 3||', 76 '||Cell 4||Cell 5||Cell 6||', 77 '</pre><p>', 78 'Display:', 79 '</p>', 80 '<table class="wiki">', 81 '<tbody><tr><td>Cell 1</td><td>Cell 2</td><td>Cell 3', 82 '</td></tr><tr><td>Cell 4</td><td>Cell 5</td><td>Cell 6', 83 '</td></tr></tbody></table>', 84 '<p>', 85 'Note that more complex tables can be created using', 86 '<a class="wiki" href="/practice/wiki/WikiRestructuredText#BiggerReSTExample">reStructuredText</a>.', 87 '</p>' ].join(""); 88 var expected = [ 89 'h2', '#text', 'p', '#text', 'pre', '#text', 'p', '#text', 90 'table', 'tbody', 91 'tr', 'td', '#text', 'td', '#text', 'td', '#text', 92 'tr', 'td', '#text', 'td', '#text', 'td', '#text', 93 'p', '#text', 'a', '#text', '#text', 94 '(null)'].join(" "); 95 doTreeWalk.call(this, expected, dom); 96 }); 38 97 39 98 unit.add("code block", function() { tracwysiwygplugin/0.10/tracwysiwyg/htdocs/wysiwyg.js
r2814 r2816 2616 2616 } 2617 2617 2618 TracWysiwyg.prototype._treeWalkEmulation = function(root, iterator) { 2619 if (!root.firstChild) { 2620 iterator(null); 2621 return; 2622 } 2623 var element = root; 2624 var tmp; 2625 while (element) { 2626 if (tmp = element.firstChild) { 2627 element = tmp; 2628 } 2629 else if (tmp = element.nextSibling) { 2630 element = tmp; 2631 } 2632 else { 2633 for ( ; ; ) { 2634 element = element.parentNode; 2635 if (element == root || !element) { 2636 iterator(null); 2637 return; 2638 } 2639 if (tmp = element.nextSibling) { 2640 element = tmp; 2641 break; 2642 } 2643 } 2644 } 2645 iterator(element); 2646 } 2647 }; 2648 2618 2649 if (document.createTreeWalker) { 2619 2650 TracWysiwyg.prototype.treeWalk = function(root, iterator) { … … 2627 2658 } 2628 2659 else { 2629 TracWysiwyg.prototype.treeWalk = function(root, iterator) { 2630 if (!root.firstChild) { 2631 iterator(null); 2632 return; 2633 } 2634 var element = root; 2635 var tmp; 2636 while (element) { 2637 if (tmp = element.firstChild) { 2638 element = tmp; 2639 } 2640 else if (tmp = element.nextSibling) { 2641 element = tmp; 2642 } 2643 else { 2644 for ( ; ; ) { 2645 element = element.parentNode; 2646 if (element == root || !element) { 2647 iterator(null); 2648 return; 2649 } 2650 if (tmp = element.nextSibling) { 2651 element = tmp; 2652 break; 2653 } 2654 } 2655 } 2656 iterator(element); 2657 } 2658 }; 2660 TracWysiwyg.prototype.treeWalk = TracWysiwyg.prototype._treeWalkEmulation; 2659 2661 } 2660 2662 tracwysiwygplugin/0.11/tests/testcase.js
r2814 r2816 36 36 var fragment = unit.fragment; 37 37 var element = unit.element; 38 39 unit.add("treeWalk", function() { 40 var list; 41 function iterator(node) { 42 var value; 43 if (node) { 44 switch (node.nodeType) { 45 case 1: value = node.tagName.toLowerCase(); break; 46 case 3: value = "#text"; break; 47 } 48 } 49 else { 50 value = "(null)"; 51 } 52 list.push(value); 53 } 54 55 function doTreeWalk(expected, dom) { 56 list = []; 57 instance.treeWalk(dom, iterator); 58 this.assertEqual(expected, list.join(" ")); 59 60 list = []; 61 instance._treeWalkEmulation(dom, iterator); 62 this.assertEqual(expected, list.join(" ")); 63 } 64 65 doTreeWalk.call(this, "p #text (null)", element("div", element("p", "paragraph"))); 66 doTreeWalk.call(this, "#text (null)", element("div", element("p", "paragraph")).firstChild); 67 doTreeWalk.call(this, "(null)", element("div", element("p")).firstChild); 68 69 var dom = element("div"); 70 dom.innerHTML = [ 71 '<h2 id="Tables">Tables</h2>', 72 '<p>', 73 'Simple tables can be created like this:', 74 '</p>', 75 '<pre class="wiki">||Cell 1||Cell 2||Cell 3||', 76 '||Cell 4||Cell 5||Cell 6||', 77 '</pre><p>', 78 'Display:', 79 '</p>', 80 '<table class="wiki">', 81 '<tbody><tr><td>Cell 1</td><td>Cell 2</td><td>Cell 3', 82 '</td></tr><tr><td>Cell 4</td><td>Cell 5</td><td>Cell 6', 83 '</td></tr></tbody></table>', 84 '<p>', 85 'Note that more complex tables can be created using', 86 '<a class="wiki" href="/practice/wiki/WikiRestructuredText#BiggerReSTExample">reStructuredText</a>.', 87 '</p>' ].join(""); 88 var expected = [ 89 'h2', '#text', 'p', '#text', 'pre', '#text', 'p', '#text', 90 'table', 'tbody', 91 'tr', 'td', '#text', 'td', '#text', 'td', '#text', 92 'tr', 'td', '#text', 'td', '#text', 'td', '#text', 93 'p', '#text', 'a', '#text', '#text', 94 '(null)'].join(" "); 95 doTreeWalk.call(this, expected, dom); 96 }); 38 97 39 98 unit.add("code block", function() { tracwysiwygplugin/0.11/tracwysiwyg/htdocs/wysiwyg.js
r2814 r2816 2616 2616 } 2617 2617 2618 TracWysiwyg.prototype._treeWalkEmulation = function(root, iterator) { 2619 if (!root.firstChild) { 2620 iterator(null); 2621 return; 2622 } 2623 var element = root; 2624 var tmp; 2625 while (element) { 2626 if (tmp = element.firstChild) { 2627 element = tmp; 2628 } 2629 else if (tmp = element.nextSibling) { 2630 element = tmp; 2631 } 2632 else { 2633 for ( ; ; ) { 2634 element = element.parentNode; 2635 if (element == root || !element) { 2636 iterator(null); 2637 return; 2638 } 2639 if (tmp = element.nextSibling) { 2640 element = tmp; 2641 break; 2642 } 2643 } 2644 } 2645 iterator(element); 2646 } 2647 }; 2648 2618 2649 if (document.createTreeWalker) { 2619 2650 TracWysiwyg.prototype.treeWalk = function(root, iterator) { … … 2627 2658 } 2628 2659 else { 2629 TracWysiwyg.prototype.treeWalk = function(root, iterator) { 2630 if (!root.firstChild) { 2631 iterator(null); 2632 return; 2633 } 2634 var element = root; 2635 var tmp; 2636 while (element) { 2637 if (tmp = element.firstChild) { 2638 element = tmp; 2639 } 2640 else if (tmp = element.nextSibling) { 2641 element = tmp; 2642 } 2643 else { 2644 for ( ; ; ) { 2645 element = element.parentNode; 2646 if (element == root || !element) { 2647 iterator(null); 2648 return; 2649 } 2650 if (tmp = element.nextSibling) { 2651 element = tmp; 2652 break; 2653 } 2654 } 2655 } 2656 iterator(element); 2657 } 2658 }; 2660 TracWysiwyg.prototype.treeWalk = TracWysiwyg.prototype._treeWalkEmulation; 2659 2661 } 2660 2662
