Ticket #2935: 2935_10.patch
File 2935_10.patch, 50.0 KB (added by , 16 years ago) |
---|
-
_source/tests/core/dom/windowtestpopup2.html
1 <html xmlns="http://www.w3.org/1999/xhtml"> 2 <head> 3 <title>Popup Testing Window 2</title> 4 </head> 5 <body> 6 </body> 7 </html> 8 No newline at end of file -
_source/tests/core/dom/range.html
1294 1294 assert.areSame( 0, range.endOffset, 'range.endOffset' ); 1295 1295 assert.isTrue( range.collapsed, 'range.collapsed' ); 1296 1296 }, 1297 /** 1298 * Test extract text nodes contents. 1299 */ 1300 test_extractContents_Other_7 : function() 1301 { 1302 var container = CKEDITOR.document.getById( 'playground' ); 1303 container.setHtml( '' ); 1304 var textNode = new CKEDITOR.dom.text( 'text content' ); 1305 container.append( textNode ); 1306 1307 var range = new CKEDITOR.dom.range( doc ); 1308 1309 range.setStartAfter( textNode ); 1310 range.setEndBefore( textNode ); 1311 1312 var docFrag = range.extractContents(); 1313 1314 var tmpDiv = doc.createElement( 'div' ); 1315 docFrag.appendTo( tmpDiv ); 1297 1316 1317 assert.areSame( 'text content', getInnerHtml( tmpDiv.$ ), 1318 'Extracted HTML doesn\'t match.' ); 1319 assert.areSame( '', getInnerHtml( 'playground' ), 1320 'HTML doesn\'t match after extracted.' ); 1321 1322 assert.areSame( textNode, 1323 range.startContainer.$, 'range.startContainer' ); 1324 assert.areSame( 0, range.startOffset, 'range.startOffset' ); 1325 assert.areSame( textNode, 1326 range.endContainer.$, 'range.endContainer' ); 1327 assert.areSame( 12, range.endOffset, 'range.endOffset' ); 1328 assert.areSame( 1, container.getChildren().count(), 'Text nodes breaked.' ); 1329 }, 1330 1298 1331 test_cloneContents_W3C_1 : function() 1299 1332 { 1300 1333 // W3C DOM Range Specs - Section 2.7 - Example 1 … … 1510 1543 assert.areSame( 3, range.endOffset, 'range.endOffset' ); 1511 1544 assert.isFalse( range.collapsed, 'range.collapsed' ); 1512 1545 }, 1546 1547 /** 1548 * Make sure clone doesn't break text nodes. 1549 */ 1550 test_cloneContents_Other_5 : function() 1551 { 1552 var container = CKEDITOR.document.getById( 'playground' ); 1553 container.setHtml( '' ); 1554 var textNode = new CKEDITOR.dom.text( 'text content' ); 1555 container.append( textNode ); 1556 1557 var range = new CKEDITOR.dom.range( doc ); 1558 1559 range.setStart( textNode, 5 ); 1560 range.setEndBefore( textNode ); 1561 1562 var docFrag = range.cloneContents(); 1563 1564 var tmpDiv = doc.createElement( 'div' ); 1565 docFrag.appendTo( tmpDiv ); 1566 1567 assert.areSame( 'content', getInnerHtml( tmpDiv.$ ), 1568 'Cloned HTML doesn\'t match.' ); 1569 assert.areSame( 'text content', getInnerHtml( 'playground' ), 1570 'HTML doesn\'t match after cloning.' ); 1571 1572 assert.areSame( document.getElementById( 'playground' ).firstChild, 1573 range.startContainer.$, 'range.startContainer' ); 1574 assert.areSame( 5, range.startOffset, 'range.startOffset' ); 1575 assert.areSame( document.getElementById( 'playground' ), 1576 range.endContainer.$, 'range.endContainer' ); 1577 assert.areSame( 1, range.endOffset, 'range.endOffset' ); 1578 assert.areSame( 1, container.getChildren().count(), 1579 'Keep text nodes breaked.' ); 1580 }, 1513 1581 1514 1582 test_createBookmark2_1 : function() 1515 1583 { -
_source/tests/core/dom/windowtestpopup1.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <title>Popup Testing Window 1</title> 5 </head> 6 <body> 7 </body> 8 </html> 9 No newline at end of file -
_source/tests/core/dom/documentFragment.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <title>CKEDITOR.dom.documentFragment</title> 5 <link rel="stylesheet" type="text/css" href="../../test.css" /> 6 <script type="text/javascript" src="../../../../ckeditor_source.js"></script> <!-- %REMOVE_LINE% 7 <script type="text/javascript" src="../../../ckeditor.js"></script> 8 %REMOVE_LINE% --> 9 <script type="text/javascript" src="../../test.js"></script> 10 <script type="text/javascript"> 11 //<![CDATA[ 12 CKEDITOR.test.addTestCase( ( function() 13 { 14 // Local reference to the "assert" object. 15 var assert = YAHOO.util.Assert; 16 17 return 18 { 19 /** 20 * Test append documentFragment to document node 21 */ 22 test_docFragmentAppend1 : function() 23 { 24 var frag = new CKEDITOR.dom.documentFragment( CKEDITOR.document ); 25 var inner = new CKEDITOR.dom.element( 'b' ); 26 frag.append( inner ); 27 var container = CKEDITOR.document.getById( 'fragmentContainer1' ); 28 frag.appendTo( container ); 29 assert.isTrue( container.getLast().equals( inner ) ); 30 }, 31 32 /** 33 * Test append documentFragment to document node 34 */ 35 test_docFragmentAppend2 : function() 36 { 37 var frag = new CKEDITOR.dom.documentFragment( CKEDITOR.document ); 38 var inner = new CKEDITOR.dom.element( 'b' ); 39 frag.append( inner ); 40 var container = CKEDITOR.document.getById( 'fragmentContainer3' ); 41 container.append( frag ); 42 assert.isTrue( container.getLast().equals( inner ) ); 43 }, 44 45 /** 46 * Test insert documentFragment after document node 47 */ 48 test_docFragmentInsertAfter : function() 49 { 50 var frag = new CKEDITOR.dom.documentFragment( CKEDITOR.document ); 51 var inner = new CKEDITOR.dom.element( 'b' ); 52 frag.append( inner ); 53 var container = CKEDITOR.document.getById( 'fragmentContainer2' ); 54 var sibling = CKEDITOR.document.getById( 'fragmentSibling1' ); 55 frag.insertAfterNode( sibling ); 56 assert.isTrue( container.getLast().equals( inner ) ); 57 }, 58 name :document.title 59 }; 60 } )() ); 61 62 //]]> 63 </script> 64 </head> 65 <body> 66 <div id="fragmentContainer1"></div> 67 <div id="fragmentContainer2"><div id="fragmentSibling1"></div></div> 68 <div id="fragmentContainer3"></div> 69 </body> 70 </html> 71 No newline at end of file -
_source/tests/core/dom/nodelist.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <title>CKEDITOR.dom.nodelist</title> 5 <link rel="stylesheet" type="text/css" href="../../test.css" /> 6 <script type="text/javascript" src="../../../../ckeditor_source.js"></script> <!-- %REMOVE_LINE% 7 <script type="text/javascript" src="../../../ckeditor.js"></script> 8 %REMOVE_LINE% --> 9 <script type="text/javascript" src="../../test.js"></script> 10 <script type="text/javascript"> 11 //<![CDATA[ 12 13 CKEDITOR.test.addTestCase( ( function() 14 { 15 // Shortcuts 16 var assert = YAHOO.util.Assert, arrayAssert = YAHOO.util.ArrayAssert; 17 18 return { 19 /** 20 * Test nodes list of type: HTMLCollection/NodeList 21 */ 22 test_nodeList1 : function() 23 { 24 var container = document.getElementById( 'nodesContainer1' ); 25 var nativeList = container.getElementsByTagName( 'span' ), 26 children = new CKEDITOR.dom.element( 27 container ).getChildren(); 28 var nodeList = new CKEDITOR.dom.nodeList( nativeList ), nodeListCollection = []; 29 assert.areSame( 3, nodeList.count(), 'Items num doesn\'t match.' ); 30 31 var i, l = nodeList.count(); 32 for ( i = 0 ; i < l ; i++ ) 33 { 34 nodeListCollection.push( nodeList.getItem( i ) ); 35 } 36 arrayAssert.itemsAreEquivalent( children, 37 nodeListCollection, function( item1, item2 ) 38 { 39 return item1.equals( item2 ); 40 }, 'Specific item in nodelist doesn\'t match.' ); 41 }, 42 43 /** 44 * Test HTMLSelectElement options property 45 */ 46 test_nodeList2 : function() 47 { 48 var select = CKEDITOR.document.getById( 'select1' ); 49 var nativeList = select.$.options, resultList = select 50 .getElementsByTag( 'option' ); 51 52 var nodeList = new CKEDITOR.dom.nodeList( nativeList ), 53 nodeListCollection = []; 54 assert.areSame( 3, nodeList.count(), 'Items num doesn\'t match.' ); 55 56 var i, l = nodeList.count(); 57 for ( i = 0 ; i < l ; i++ ) 58 { 59 nodeListCollection.push( nodeList.getItem( i ) ); 60 } 61 arrayAssert.itemsAreEquivalent( resultList, 62 nodeListCollection, function( item1, item2 ) 63 { 64 return item1.equals( item2 ); 65 }, 'Specific item in nodelist doesn\'t match.' ); 66 }, 67 68 ///////////// 69 70 name :document.title 71 }; 72 } )() ); 73 //]]> 74 </script> 75 </head> 76 <body> 77 <div id="nodesContainer1"><span>text<span>text</span></span><span>text</span></div> 78 <select id="select1"><optgroup><option>label</option><option>label</option></optgroup><option>label</option></select> 79 </body> 80 </html> 81 No newline at end of file -
_source/tests/core/dom/element.html
15 15 // Local reference to the "assert" object. 16 16 var assert = CKEDITOR.test.assert; 17 17 var getInnerHtml = CKEDITOR.test.getInnerHtml; 18 18 19 function trimExpando(str){ 20 var newStr = str.replace(/\s?_cke_[\w]+=\".*?\"\s?/gi,''); 21 return newStr; 22 } 23 19 24 return { 20 25 test_$ : function() 21 26 { … … 46 51 var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) ); 47 52 assert.isNull( element.getNameAtt() ); 48 53 }, 54 /** 55 * Test dynamic created all elements which support 'name' attribute. 56 */ 57 test_getNameAtt2 : function() 58 { 59 var supportNameTags = [ 'a', 'applet', 'button', 'embed', 'form', 60 'frame', 'iframe', 'input', 'meta', 'object', 'param', 'select' ], element; 61 62 var i, l = supportNameTags.length; 63 for ( i = 0 ; i < l ; i++ ) 64 { 65 element = new CKEDITOR.dom.element( supportNameTags[ i ] ); 66 element.setAttribute( 'name', 'test' ); 67 assert.areEqual( 'test', element.getNameAtt(), 68 'name attribute doesn\'t match on ' + supportNameTags[ i ] ); 69 } 70 }, 49 71 50 72 test_getName : function() 51 73 { … … 75 97 76 98 assert.areEqual( '', nativeElement.style.display ); 77 99 }, 100 /** 101 * Test display inheritance 102 */ 103 test_show2 : function() 104 { 105 var element = CKEDITOR.document.getById( 'show2' ); 106 element.show(); 107 assert.areEqual( 'block', element.getComputedStyle( 'display' ), 108 '"display" doesn\'t match' ); 109 }, 110 111 /** 112 * Test visibility inheritance 113 */ 114 test_show3 : function() 115 { 116 var element = CKEDITOR.document.getById( 'show2' ); 117 element.show(); 118 assert.areEqual( 'visible', element.getComputedStyle( 'visibility' ), 119 '"visibility" doesn\'t match' ); 120 }, 78 121 79 test_createFromHtml : function()122 test_createFromHtml1 : function() 80 123 { 81 124 var element = CKEDITOR.dom.element.createFromHtml( '<p>My test</p>' ); 82 125 assert.areEqual( 'p', element.getName(), 'element name doesn\'t match' ); … … 233 294 assert.areEqual( 'absolute', document.getElementById( 'setStyle' ).style.position ); 234 295 assert.areEqual( 'right', document.getElementById( 'setStyle' ).style.cssFloat ); 235 296 }, 297 /** 298 * Test boundary opacity style values. 299 */ 300 test_setOpacity : function() 301 { 302 var opacityValues = [ 1, 0.5, 0 ]; 303 304 var i, l = opacityValues.length; 305 for ( i = 0 ; i < l ; i++ ) 306 { 307 var element = new CKEDITOR.dom.element( 'span' ); 308 element.setOpacity( opacityValues[ i ] ); 309 assert.areEqual( opacityValues[ i ], element 310 .getComputedStyle( 'opacity' ), "Opacity style value of " 311 + opacityValues[ i ] + " doesn\'t match." ); 312 } 313 }, 236 314 237 315 test_setText1 : function() 238 316 { … … 400 478 var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexScriptDef' ) ); 401 479 assert.areEqual( null, element.getAttribute( 'tabindex' ) ); 402 480 }, 481 482 test_getAttribute_Style : function() 483 { 484 var element = new CKEDITOR.dom.element( 'span' ); 485 if ( CKEDITOR.env.ie ) 486 element.$.style.cssText = 'float:right'; 487 else 488 element.$.setAttribute( 'style', 'float:right' ); 489 490 assert.areSame( 'float: right;', element.getAttribute( 'style' ) ); 491 }, 403 492 404 493 test_getTabIndex1 : function() 405 494 { … … 486 575 var element = new CKEDITOR.dom.element( document.getElementsByTagName( 'small' )[0] ); 487 576 assert.isTrue( element.hasAttributes() ); 488 577 }, 578 /** 579 * Test dynamic attribute existence 580 */ 581 test_hasAttributes3 : function() 582 { 583 var element = new CKEDITOR.dom.element( 'span' ); 584 element.setAttribute( 'class', 'testclass' ); 585 element.removeAttribute( 'class' ); 586 assert.isFalse( element.hasAttributes() ); 587 }, 588 589 /** 590 * Test attribute abbreviation 591 */ 592 test_hasAttributes4 : function() 593 { 594 var element = CKEDITOR.document.getById( 'attributed1' ); 595 assert.isTrue( element.hasAttributes() ); 596 }, 597 /** 598 * Test 'float' style computed value 599 */ 600 test_getComputedStyle1 : function() 601 { 602 var element = document.createElement( 'span' ); 603 if ( CKEDITOR.env.ie ) 604 element.style.cssText = 'float:right'; 605 else 606 element.setAttribute( 'style', 'float:right' ); 607 608 element = new CKEDITOR.dom.element( element ); 609 assert.areSame( 'right', element.getComputedStyle( 'float' ), 610 'float style doesn\'t match' ); 611 element.remove(); 612 }, 613 614 /** 615 * Test box-model computed styles. 616 */ 617 test_getComputedStyle2 : function() 618 { 619 var element = CKEDITOR.document.getById( 'test-computed' ); 620 var nativeElement = element.$; 621 622 nativeElement.style.zoom = 1; 623 nativeElement.style.border = 'medium solid #000'; 624 625 var bw = CKEDITOR.env.ie ? 4 : 3; 626 var h = nativeElement.offsetHeight - 20 - 2 * bw; 627 assert.areEqual( bw + 'px', element 628 .getComputedStyle( 'border-top-width' ), 629 'borderTopWidth: medium doesn\'t match' ); 630 assert.areEqual( h, Math.round( parseFloat( element 631 .getComputedStyle( 'height' ) ) ), 632 'height: auto (offset minus padding and border) doesn\'t match' ); 633 nativeElement.style.padding = '1em'; 634 assert.areEqual( '16px', element.getComputedStyle( 'padding-top' ), 635 'padding:1em doesn\'t match' ); 636 nativeElement.style.margin = 'auto'; 637 assert.areEqual( '0px', element.getComputedStyle( 'margin-top' ), 638 'margin:auto doesn\'t match' ); 639 assert.areEqual( 493, 640 parseInt( element.getComputedStyle( 'width' ) ), 641 'percent:width (from CSS) doesn\'t match' ); 642 assert.areEqual( 'visible', 643 element.getComputedStyle( 'visibility' ), 644 'visibility doesn\'t match' ); 645 nativeElement.parentNode.style.visibility = 'hidden'; 646 assert.areEqual( 'hidden', 647 element.getComputedStyle( 'visibility' ), 648 'visibility doesn\'t match' ); 649 nativeElement.parentNode.style.visibility = 'visible'; 650 assert.areEqual( 2, element.getComputedStyle( 'z-index' ), 651 'element.getComputedStyle("zIndex") doesn\'t match' ); 652 }, 653 test_getComputedStyle2 : function() 654 { 655 var element = new CKEDITOR.dom.element( 'span' ); 656 element.setOpacity( 0.75 ); 657 assert.areSame( 0.75, element.getComputedStyle( 'opacity' ), 658 'opacity style doesn\'t match' ); 659 element.remove(); 660 }, 661 662 test_moveChildren1 : function() 663 { 664 var source = CKEDITOR.document.getById('childrenParent1'), 665 target = CKEDITOR.document.getById('childrenTarget1'), 666 firstChild = CKEDITOR.document.getById('firstChild1'); 667 668 source.moveChildren(target); 669 assert.areSame(firstChild.$, target.$.childNodes[1]); 670 }, 671 672 test_moveChildren2 : function() 673 { 674 var source = CKEDITOR.document.getById('childrenParent2'), 675 target = CKEDITOR.document.getById('childrenTarget2'), 676 secondChild = CKEDITOR.document.getById('firstChild2'); 677 678 source.moveChildren(target, true); 679 assert.areSame(secondChild.$, target.$.childNodes[0]); 680 }, 681 682 683 684 test_Markers : function() 685 { 686 var element1 = new CKEDITOR.dom.element( 'span' ), 687 element2 = new CKEDITOR.dom.element( 'span' ), 688 db = {}; 689 var markerName = 'fck_test_touched'; 690 691 CKEDITOR.dom.element.setMarker(db, element1, markerName, true); 692 assert.areSame(true, element1.getCustomData(markerName), 'Set marker of value: '+true+' failed.'); 693 CKEDITOR.dom.element.setMarker(db, element2, markerName, 1); 694 assert.areSame(1, element2.getCustomData(markerName), 'Set marker of value: '+1+' failed.'); 695 696 CKEDITOR.dom.element.clearAllMarkers(db); 697 assert.isNull(element1.getCustomData(markerName), 'Bounch clear markers failed.'); 698 assert.isNull(element2.getCustomData(markerName), 'Bounch clear markers failed.'); 699 700 }, 701 702 test_breakParent1 : function() 703 { 704 CKEDITOR.document.getById( 'breakParentLeaf1' ).breakParent( 705 CKEDITOR.document.getById( 'breakParentRoot1' ) ); 706 assert.areEqual( CKEDITOR.document.getById( 'breakParentResult1' ) 707 .getHtml(), trimExpando( CKEDITOR.document.getById( 708 'breakParentContainer1' ).getHtml() ) ); 709 }, 710 711 test_breakParent2 : function() 712 { 713 CKEDITOR.document.getById( 'breakParentLeaf2' ).breakParent( 714 CKEDITOR.document.getById( 'breakParentRoot2' ) ); 715 assert.areEqual( CKEDITOR.document.getById( 'breakParentResult2' ) 716 .getHtml(), trimExpando( CKEDITOR.document.getById( 717 'breakParentContainer2' ).getHtml() ) ); 718 }, 489 719 490 720 name : document.title 491 721 }; … … 493 723 494 724 //]]> 495 725 </script> 726 <style type="text/css" media="screen"> 727 #test-computed { 728 width:50%; 729 margin:auto; 730 padding:10px; 731 z-index: 2; 732 } 733 </style> 496 734 </head> 497 735 <body> 498 736 <textarea id="test1" rows="10" cols="80"></textarea> … … 515 753 B</div> 516 754 <big>Test</big> 517 755 <small title="Testing">Test</small> 756 <input id="attributed1" checked /> 757 <div style="display:none"><div id="show2"></div></div> 758 <div style="visibility:hidden"><div id="show3"></div></div> 759 <div id="childrenParent1"><span id="firstChild1">text</span></div> 760 <div id="childrenTarget1"><span>text</span></div> 761 <div id="childrenParent2"><span id="firstChild2">text</span></div> 762 <div id="childrenTarget2"><span>text</span></div> 763 <div id="test-computed">test computed style</div> 764 765 <div id="breakParentContainer1"><b id="breakParentRoot1">This <i>is some<span id="breakParentLeaf1"></span> sample</i> test text</b></div> 766 <pre id="breakParentResult1"><b id="breakParentRoot1">This <i>is some</i></b><span id="breakParentLeaf1"></span><b id="breakParentRoot1"><i> sample</i> test text</b></pre> 767 768 <div id="breakParentContainer2"><b>This <i id="breakParentRoot2">is some<span id="breakParentLeaf2"></span> sample</i> test text</b></div> 769 <pre id="breakParentResult2"><b>This <i id="breakParentRoot2">is some</i><span id="breakParentLeaf2"></span><i id="breakParentRoot2"> sample</i> test text</b></pre> 770 518 771 </body> 519 772 </html> -
_source/tests/core/dom/window.html
41 41 { 42 42 assert.isTrue( loadCalled ); 43 43 }, 44 45 // The following two test case require browser's popup-blocker been turned off 46 47 /** 48 * Test compat and quirk mode has same view size. 49 */ 50 test_getViewPaneSize1 : function() 51 { 52 var windowUrls = [ 'windowtestpopup1.html', 'windowtestpopup2.html' ]; 53 var i, l = windowUrls.length; 54 for ( i = 0 ; i < l ; i++ ) 55 { 56 // Standardize window size by popup new window. 57 var newWindow = window.open( windowUrls[ i ], 'testWindow', 58 'height=500,width=500' ); 59 var size = ( new CKEDITOR.dom.window( newWindow ) ) 60 .getViewPaneSize(); 61 assert.areEqual( 500, size.width, 62 'Width of viewport doesn\'t match.' ); 63 assert.areEqual( 500, size.height, 64 'Height of viewport doesn\'t match.' ); 65 newWindow.close(); 66 } 67 }, 44 68 69 /** 70 * Test focus between main window and popups. 71 */ 72 test_focus1 : function() 73 { 74 var newWindow = window.open( 'windowtestpopup1.html', 'testWindow', 75 'height=500,width=500' ); 76 var win = new CKEDITOR.dom.window( newWindow ), count = 0; 77 win.on( 'focus', function() 78 { 79 count++; 80 } ); 81 win.focus(); 82 this.wait( function() 83 { 84 assert.areEqual( 1, count ); 85 newWindow.close(); 86 }, 500 ); 87 }, 88 89 /** 90 * Test focus between main window and inline frames. 91 */ 92 test_focus2 : function() 93 { 94 var innerWindow = document.getElementById( 'innerFrame1' ).contentWindow; 95 innerWindow.focus(); 96 var win = CKEDITOR.document.getWindow(), count = 0; 97 win.on( 'focus', function() 98 { 99 count++; 100 } ); 101 win.focus(); 102 this.wait( function() 103 { 104 assert.areEqual( 1, count ); 105 }, 500 ); 106 }, 107 45 108 name : document.title 46 109 }; 47 110 })() ); … … 50 113 </script> 51 114 </head> 52 115 <body> 53 < div id="test1"></div>116 <iframe id="innerFrame1" src='windowtestpopup1.html'></iframe> 54 117 </body> 55 118 </html> -
_source/tests/core/dom/document.html
89 89 assert.areSame( document.body, doc.getBody().$, '1st call failed' ); 90 90 assert.areSame( document.body, doc.getBody().$, '2nd call failed' ); 91 91 }, 92 test_createText : function() 93 { 94 var doc = new CKEDITOR.dom.document( document ), contentText = 'text content'; 95 var textNode = doc.createText( contentText ); 96 assert.areSame( contentText, textNode.getText(), 97 'Create text node content doesn\'t match.' ); 92 98 99 }, 100 101 test_getByAddress1 : function() 102 { 103 var doc = new CKEDITOR.dom.document( document ); 104 var node = doc.getByAddress( [ 1, 3, 0, 1, 0, 0 ] ); 105 assert.areSame( 'target', node.getText(), 106 'Addressing target doesn\'t match.' ); 107 }, 108 /** 109 * Test get address of normalized text nodes. 110 */ 111 test_getByAddress2 : function() 112 { 113 var doc = new CKEDITOR.dom.document( document ); 114 var target = doc.getById( 'addressTarget2' ); 115 target.insertBeforeMe( new CKEDITOR.dom.text( 'text' ) ); 116 target.insertBeforeMe( new CKEDITOR.dom.text( 'text' ) ); 117 var node = doc.getByAddress( [ 1, 5, 1, 0 ], true ); 118 assert.areSame( 'target', node.getText(), 119 'Addressing normalized target doesn\'t match.' ); 120 }, 93 121 name : document.title 94 122 }; 95 123 })() ); … … 99 127 </head> 100 128 <body> 101 129 <div id="test1"></div> 130 <div><p>text<span><b id="addressTarget1">target</b>text</span>text</p></div> 131 <span ><b id="addressTarget2">target</b></span> 102 132 </body> 103 133 </html> -
_source/tests/core/dom/elementpath.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <title>CKEDITOR.dom.elementpath</title> 5 <link rel="stylesheet" type="text/css" href="../../test.css" /> 6 <script type="text/javascript" src="../../../../ckeditor_source.js"></script> <!-- %REMOVE_LINE% 7 <script type="text/javascript" src="../../../ckeditor.js"></script> 8 %REMOVE_LINE% --> 9 <script type="text/javascript" src="../../test.js"></script> 10 <script type="text/javascript"> 11 //<![CDATA[ 12 13 CKEDITOR.test.addTestCase( ( function() 14 { 15 // Refering to 'The Web Design Group(htmlhelp.com/reference/html40)' 16 var html4BlocklevelElementNames = [ 'address', 'blockquote', 'center', 'dir', 17 'div', 'dl', 'fieldset', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 18 'isindex', 'menu', 'noframes', 'noscript', 'ol', 'p', 'pre', 'table', 'ul', 19 'dd', 'dt', 'frameset', 'li', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr' ]; 20 var html4InlineElementNames = [ 'a', 'abbr', 'acronym', 'b', 'basefont', 'bdo', 21 'big', 'br', 'cite', 'code', 'dfn', 'em', 'font', 'i', 'img', 'input', 22 'kbd', 'label', 'q', 's', 'samp', 'select', 'small', 'span', 'strike', 23 'strong', 'sub', 'sup', 'textarea', 'tt', 'u', 'var' ]; 24 // var html4InlineOrBlocklevelNames = 25 // ['applet','button','del','iframe','ins','map','object','script']; 26 27 // Same as element set defined in _source/core/dom/elementpath.js 28 var blockLimitElementNames = [ 'div', 'td', 'th', 'tfoot', 'caption', 'form' ]; 29 30 // Shortcuts 31 var assert = YAHOO.util.Assert, arrayAssert = YAHOO.util.ArrayAssert; 32 33 return 34 { 35 /** 36 * Test element classificaton completeness. 37 */ 38 test_elementPath1 : function() 39 { 40 var body = CKEDITOR.document.getBody(); 41 var i, l = blockLimitElementNames.length, 42 j, s = html4BlocklevelElementNames.length, 43 k, t = html4InlineElementNames.length; 44 var blocklimit, block, inline, path; 45 46 for ( i = 0 ; i < l ; i++ ) 47 { 48 blocklimit = body.append( new CKEDITOR.dom.element( 49 blockLimitElementNames[ i ] ) ); 50 for ( j = 0 ; j < s ; j++ ) 51 { 52 block = blocklimit.append( new CKEDITOR.dom.element( 53 html4BlocklevelElementNames[ j ] ) ); 54 for ( k = 0 ; k < t ; k++ ) 55 { 56 inline = block.append( new CKEDITOR.dom.element( 57 html4InlineElementNames[ k ] ) ); 58 59 path = new CKEDITOR.dom.elementPath( inline ); 60 assert.isTrue( inline.equals( path.lastElement ), 61 'Last path element ' + html4InlineElementNames[ k ] + ' doesn\'t match.' ); 62 assert.isTrue( block.equals( path.block ), 63 'Block element ' + html4BlocklevelElementNames[ j ] + ' doesn\'t match.' ); 64 assert .isTrue( blocklimit.equals( path.blockLimit ), 65 'Block limit element ' + blockLimitElementNames[ i ] + ' doesn\'t match.' ); 66 arrayAssert.itemsAreEquivalent( path.elements, [ 67 inline, block, blocklimit, body ], function( item1, item2 ) 68 { 69 return item1.equals( item2 ); 70 }, 71 'Element path elements doesn\'t match.' ); 72 73 inline.remove(); 74 } 75 76 block.remove(); 77 } 78 79 blocklimit.remove(); 80 } 81 }, 82 83 ///////////// 84 85 name :document.title 86 }; 87 } )() ); 88 //]]> 89 </script> 90 </head> 91 <body> 92 </body> 93 </html> 94 No newline at end of file -
_source/tests/core/dom/domobject.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <title>CKEDITOR.dom.domobject</title> 5 <link rel="stylesheet" type="text/css" href="../../test.css" /> 6 <script type="text/javascript" src="../../../../ckeditor_source.js"></script> <!-- %REMOVE_LINE% 7 <script type="text/javascript" src="../../../ckeditor.js"></script> 8 %REMOVE_LINE% --> 9 <script type="text/javascript" src="../../test.js"></script> 10 <script type="text/javascript"> 11 //<![CDATA[ 12 13 CKEDITOR.test.addTestCase( (function() 14 { 15 // Local reference to mthe "assert" object. 16 var assert = YAHOO.util.Assert, action = YAHOO.util.UserAction; 17 18 return { 19 20 /** 21 * Test dom native listener invoked correct times. 22 */ 23 test_addEventListener1 : function() 24 { 25 var element = CKEDITOR.document.getById( 'nativeEvent' ), callbackCount = 0; 26 element.on( 'click', function() 27 { 28 callbackCount++; 29 } ); 30 element.on( 'click', function() 31 { 32 callbackCount++; 33 } ); 34 action.click( element.$ ); 35 // waits and then run assertion 36 this.wait( function() 37 { 38 assert.areEqual( 2, callbackCount, 39 'Event handler should be invoked ' + 2 + ' times.' ); 40 }, 500 ); 41 }, 42 43 /** 44 * Test prevent and stop dom native event. 45 */ 46 test_addEventListener2 : function() 47 { 48 var element = CKEDITOR.document.getById( 'nativeEvent' ), innerElement = CKEDITOR.document 49 .getById( 'nativeEventInner' ), preventFailed = false, stopFailed = false; 50 // Test stop propagation 51 element.on( 'click', function() 52 { 53 stopFailed = true; 54 } ); 55 innerElement.on( 'click', function( evt ) 56 { 57 evt.data.preventDefault( true ); 58 } ); 59 // Test prevent others 60 innerElement.on( 'click', function() 61 { 62 preventFailed = true; 63 } ); 64 65 action.click( innerElement.$ ); 66 // waits and then run assertion 67 this.wait( function() 68 { 69 assert.isFalse( preventFailed, 'Prevent event failed.' ); 70 assert.isFalse( stopFailed, 'Stop event failed.' ); 71 }, 500 ); 72 }, 73 name : document.title 74 }; 75 })() ); 76 77 //]]> 78 </script> 79 </head> 80 <body> 81 <div id='nativeEvent'><span id='nativeEventInner'></span></div> 82 </body> 83 </html> 84 No newline at end of file -
_source/tests/core/dom/domwalker.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <title>CKEDITOR.dom.domwalker</title> 5 <link rel="stylesheet" type="text/css" href="../../test.css" /> 6 <script type="text/javascript" src="../../../../ckeditor_source.js"></script> <!-- %REMOVE_LINE% 7 <script type="text/javascript" src="../../../ckeditor.js"></script> 8 %REMOVE_LINE% --> 9 <script type="text/javascript" src="../../test.js"></script> 10 <script type="text/javascript"> 11 //<![CDATA[ 12 CKEDITOR.test.addTestCase( ( function() 13 { 14 // Local reference to the "assert" object. 15 var assert = CKEDITOR.test.assert; 16 17 // Temporary 'getName' compensate for textnode. 18 CKEDITOR.dom.text.prototype.getName = function() 19 { 20 return '#text'; 21 }; 22 23 var tranverseSequence = [ "div", "h1", "a", "#text", "ul", "li", "#text", 24 "li", "#text", "br", "table", "tbody", "tr", "td", "#text", "span", 25 "form", "fieldset", "legend", "#text", "label", "#text", "input" ]; 26 return { 27 28 test_forward : function() 29 { 30 var steps = [], resultSteps = tranverseSequence.concat(); 31 32 var walker = new CKEDITOR.dom.domWalker( CKEDITOR.document 33 .getById( 'walkerStartMark1' ) ); 34 walker.on( 'step', function( evt ) 35 { 36 var node = evt.data.node; 37 steps.push( node.getName() ); 38 } ); 39 walker.forward( function( evt ) 40 { 41 var to = evt.data.to; 42 var id; 43 if ( ( to.type == CKEDITOR.NODE_ELEMENT ) 44 && ( id = to.getAttribute( 'id' ) ) 45 && id == 'walkerEndMark' ) 46 this.stop(); 47 } ); 48 assert.isTrue( CKEDITOR.tools.arrayCompare( resultSteps, steps ), 49 'Walking steps forward doesn\'t match.' ); 50 }, 51 52 test_reverse : function() 53 { 54 var steps = [], resultSteps = tranverseSequence.concat().reverse(); 55 56 var walker = new CKEDITOR.dom.domWalker( CKEDITOR.document 57 .getById( 'walkerEndMark' ) ); 58 walker.on( 'step', function( evt ) 59 { 60 var node = evt.data.node; 61 steps.push( node.getName() ); 62 } ); 63 walker.reverse( function( evt ) 64 { 65 var to = evt.data.to; 66 var id; 67 if ( ( to.type == CKEDITOR.NODE_ELEMENT ) 68 && ( id = to.getAttribute( 'id' ) ) 69 && id == 'walkerStartMark1' ) 70 this.stop(); 71 } ); 72 assert.isTrue( CKEDITOR.tools.arrayCompare( resultSteps, steps ), 73 'Walking steps reversely doesn\'t match.' ); 74 }, 75 76 test_stopBlockBoundary1 : function() 77 { 78 var walker = new CKEDITOR.dom.domWalker( CKEDITOR.document 79 .getById( 'walkerStartMark2' ) ); 80 var endNode = walker.forward( CKEDITOR.dom.domWalker 81 .blockBoundary() ).node, resultNode = CKEDITOR.document 82 .getById( 'walkerEndMark2' ); 83 assert.isTrue( resultNode.equals( endNode ), 84 'Walking foward doesn\'t stop at block boundaries.' ); 85 86 walker = new CKEDITOR.dom.domWalker( CKEDITOR.document 87 .getById( 'walkerStartMark3' ) ); 88 var startNode = walker.reverse( CKEDITOR.dom.domWalker 89 .blockBoundary() ).node; 90 resultNode = CKEDITOR.document.getById( 'walkerEndMark3' ); 91 assert.isTrue( resultNode.equals( startNode ), 92 'Walking reversely doesn\'t stop at block boundaries.' ); 93 }, 94 95 test_stopBlockBoundary2 : function() 96 { 97 var walker = new CKEDITOR.dom.domWalker( CKEDITOR.document 98 .getById( 'walkerStartMark6' ) ); 99 var endNode = walker.forward( CKEDITOR.dom.domWalker 100 .blockBoundary() ).node, resultNode = CKEDITOR.document 101 .getById( 'walkerEndMark6' ); 102 assert.isTrue( resultNode.equals( endNode ), 103 'Walking forward doesn\'t stop at block boundaries.' ); 104 }, 105 106 test_stopListItemBoundary : function() 107 { 108 var walker = new CKEDITOR.dom.domWalker( CKEDITOR.document 109 .getById( 'walkerStartMark4' ) ); 110 var endNode = walker.forward( CKEDITOR.dom.domWalker 111 .listItemBoundary() ).node, resultNode = CKEDITOR.document 112 .getById( 'walkerEndMark4' ); 113 assert.isTrue( resultNode.equals( endNode ), 114 'Walking forward doesn\'t stop at list items boundaries.' ); 115 116 walker = new CKEDITOR.dom.domWalker( CKEDITOR.document 117 .getById( 'walkerStartMark5' ) ); 118 var startNode = walker.reverse( CKEDITOR.dom.domWalker 119 .blockBoundary() ).node; 120 resultNode = CKEDITOR.document.getById( 'walkerEndMark5' ); 121 assert.isTrue( resultNode.equals( startNode ), 122 'Walking reversely doesn\'t stop at list items boundaries.' ); 123 }, 124 125 name :document.title 126 }; 127 } )() ); 128 //]]> 129 </script> 130 </head> 131 <body> 132 <span id="walkerStartMark1"></span><div><h1><a>text</a></h1><ul><li>text</li><li>text</li></ul><br/><table><tbody><tr><td>text</td></tr></tbody></table><span><form><fieldset><legend>text</legend><label>text</label><input type="text"/></fieldset></form></span></div><span id="walkerEndMark"></span> 133 134 <span id="walkerStartMark2"></span><span><b>text</b>text<input id="walkerEndMark2" type="hidden" /><p>text</p></span> 135 <span><p>text</p><input id="walkerEndMark3" type="hidden" /><b>text</b><span id="walkerStartMark3"></span></span> 136 137 <span id="walkerStartMark4"></span><span><b>text</b>text<input id="walkerEndMark4" type="hidden" /><br/></span> 138 <ul><li><input id="walkerEndMark5" type="hidden" /><b>text</b><span id="walkerStartMark5"></span></li></ul> 139 140 <table><tr><td><span id="walkerStartMark6"><span>text</span><input id="walkerEndMark6" type="hidden" /></td><td></td></tr></table> 141 </body> 142 </html> 143 No newline at end of file -
_source/tests/core/tools.html
46 46 assert.areSame( 'Good' , target.prop6, 'prop6 doesn\'t match' ); 47 47 assert.areSame( fakeArray , target.prop7, 'prop7 doesn\'t match' ); 48 48 }, 49 49 /** 50 * Test arguments and context object correctness. 51 */ 52 test_bind : function() 53 { 54 var context = {}, 55 args = ['string',1,true, /^/]; 56 var unbind = function(){ 57 assert.areSame( context, this, 'function context object doesn\'t match'); 58 var i, l = arguments.length; 59 for (i = 0; i < l; i++) { 60 assert.areSame( arguments[i], args[i], 'argument '+i+' doesn\t match'); 61 } 62 }; 63 64 CKEDITOR.tools.bind( unbind, context )(args[0], 65 args[1], args[2], args[3]); 66 }, 67 68 /** 69 * Test strict comparison of array element 70 */ 71 test_indexOf : function() 72 { 73 var array = [ 1 ]; 74 75 assert.areSame( -1, CKEDITOR.tools.indexOf(array, '1'), 'Doesn\'t distinguish array element type'); 76 }, 77 50 78 test_isArray1 : function() 51 79 { 52 80 assert.isTrue( CKEDITOR.tools.isArray( [] ) ); … … 66 94 { 67 95 assert.isFalse( CKEDITOR.tools.isArray( window.x ) ); 68 96 }, 69 97 test_isArray5 : function() 98 { 99 var iframe = document.createElement('iframe'); 100 document.body.appendChild(iframe); 101 xArray = window.frames[window.frames.length-1].Array; 102 var array = new xArray(1,2,3); // [1,2,3] 103 assert.isTrue ( CKEDITOR.tools.isArray(array) ); 104 }, 70 105 test_htmlEncode1 : function() 71 106 { 72 107 assert.areSame( '<b>Test</b>', CKEDITOR.tools.htmlEncode( '<b>Test</b>' ) ); -
_source/tests/plugins/editingblock/editingblock.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <title>Plugin: editingblock</title> 5 <link rel="stylesheet" type="text/css" href="../../test.css" /> 6 <script type="text/javascript" src="../../../../ckeditor_source.js"></script> 7 <script type="text/javascript" src="../../test.js"></script> 8 <script type="text/javascript"> 9 //<![CDATA[ 10 var testCase; 11 12 CKEDITOR.test.addTestCase( testCase = ( function() 13 { 14 // Local references. 15 var assert = YAHOO.util.Assert; 16 17 return { 18 /** 19 * Test init with 'wysiwyg' mode 20 */ 21 test_instanceReadyEvent1 : function() 22 { 23 var editor = CKEDITOR.replace( 'editor1' ); 24 var count = 0; 25 editor.on( 'instanceReady', function() 26 { 27 count++; 28 } ); 29 this.wait( function() 30 { 31 assert.areEqual( 1, count, 'Mode "wysiwyg" doesn\'t fully interacted ready.' ); 32 }, 1000 ); 33 }, 34 35 /** 36 * Test init with 'source' mode 37 */ 38 test_instanceReadyEvent2 : function() 39 { 40 var editor = CKEDITOR.replace( 'editor2', 41 { 42 startupMode :'source' 43 } ); 44 var count = 0; 45 editor.on( 'instanceReady', function() 46 { 47 count++; 48 } ); 49 50 this.wait( function() 51 { 52 assert.areEqual( 1, count, 'Mode "source" doesn\'t fully interacted ready.' ); 53 }, 1000 ); 54 }, 55 56 name :document.title 57 }; 58 } )() ); 59 //]]> 60 </script> 61 </head> 62 <body> 63 <textarea id="editor1" name="editor1"></textarea> 64 <textarea id="editor2" name="editor2"></textarea> 65 </body> 66 </html> 67 No newline at end of file -
_source/tests/plugins/htmlwriter/htmlwriter.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <title>Plugin: htmlwriter</title> 5 <link rel="stylesheet" type="text/css" href="../../test.css" /> 6 <script type="text/javascript" src="../../../../ckeditor_source.js"></script> 7 <script type="text/javascript" src="../../test.js"></script> 8 <script type="text/javascript"> 9 10 CKEDITOR.plugins.load( 'htmldataprocessor' ); 11 12 </script> 13 <script type="text/javascript"> 14 //<![CDATA[ 15 16 CKEDITOR.test.addTestCase( (function() 17 { 18 // Local references. 19 var assert = CKEDITOR.test.assert; 20 21 22 return { 23 /** 24 * Test content indentation on block-level elements after tag open. 25 */ 26 test_toDataFormat1 : function() 27 { 28 var element = new CKEDITOR.dom.element.createFromHtml( '<div><p>text</p></div>' ); 29 30 assert.areSame( '<p>\n\ttext</p>\n', new CKEDITOR.htmlDataProcessor().toDataFormat( element ), 31 'No identation after tag open.' ); 32 }, 33 34 /** 35 * Test no empty content indentation 36 */ 37 test_toDataFormat2 : function() 38 { 39 var element = new CKEDITOR.dom.element.createFromHtml( '<div><p></p></div>' ); 40 41 assert.areSame( '<p>\n</p>\n', new CKEDITOR.htmlDataProcessor().toDataFormat( element ), 42 'Incorrect identation after tag open when content is empty.' ); 43 }, 44 45 /** 46 * Test no indentation after tag open for inline elements 47 */ 48 test_toDataFormat3 : function() 49 { 50 var element = new CKEDITOR.dom.element.createFromHtml( '<div><b><a>text</a></b>text</div>' ); 51 assert.areSame( '<b><a>text</a></b>text', new CKEDITOR.htmlDataProcessor().toDataFormat( element ) , 52 'Incorrect identation after tag open when element are inline elements.'); 53 }, 54 55 /** 56 * Test no content indentation before tag close on inline elements. 57 */ 58 test_toDataFormat4 : function() 59 { 60 var element = new CKEDITOR.dom.element.createFromHtml( '<div><p><a>text</a></p></div>' ); 61 assert.areSame( '<p>\n\t<a>text</a></p>\n', new CKEDITOR.htmlDataProcessor().toDataFormat( element ) , 62 'Incorrect identation before tag close when contents are inline elements.'); 63 }, 64 65 /** 66 * Test table and table cells format. 67 */ 68 test_toDataFormat4 : function() 69 { 70 var element = new CKEDITOR.dom.element.createFromHtml( '<div><table><tr><td></td></tr></table></div>' ); 71 assert.areSame( CKEDITOR.document.getById('tableFormatResult').getText(), new CKEDITOR.htmlDataProcessor().toDataFormat( element ) , 72 'Incorrect identation on table elements.'); 73 }, 74 75 name : document.title 76 }; 77 })() ); 78 79 //]]> 80 </script> 81 </head> 82 <body> 83 <textarea id="tableFormatResult"><table> 84 <tbody> 85 <tr> 86 <td> 87 </td> 88 </tr> 89 </tbody> 90 </table> 91 </textarea> 92 </body> 93 </html> 94 No newline at end of file -
_source/tests/core/htmlparser/htmlparser.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <title>CKEDITOR.htmlParser</title> 5 <link rel="stylesheet" type="text/css" href="../../test.css" /> 6 <script type="text/javascript" src="../../../../ckeditor_source.js"></script> <!-- %REMOVE_LINE% 7 <script type="text/javascript" src="../../../ckeditor.js"></script> 8 %REMOVE_LINE% --> 9 <script type="text/javascript" src="../../test.js"></script> 10 <script type="text/javascript"> 11 //<![CDATA[ 12 13 CKEDITOR.plugins.load( 'htmlwriter' ); 14 15 CKEDITOR.test.addTestCase( ( function() 16 { 17 // Local reference to the "assert" object. 18 var assert = YAHOO.util.Assert; 19 20 /** 21 * Wrapper of the combination of htmlParser with htmlWriter, for convenience of 22 * testing, formatting of writer has been disabled. 23 */ 24 function htmlParse( htmlString ) 25 { 26 var writer = new CKEDITOR.htmlWriter(); 27 writer._.rules = []; 28 writer.reset(); 29 var fragment = CKEDITOR.htmlParser.fragment.fromHtml( htmlString ); 30 fragment.writeHtml( writer ); 31 return writer.getHtml(); 32 } 33 34 /** 35 * IE always returning CRLF for line-feed, so remove it when retrieving 36 * pre-formated text from text area. 37 */ 38 function getTextAreaValue( id ) 39 { 40 return CKEDITOR.document.getById( id ).getValue().replace( /\r/gi, '' ); 41 } 42 43 return 44 { 45 /** 46 * Test dtd disallowed child. 47 */ 48 test_fromHtml_1 : function() 49 { 50 assert.areSame( getTextAreaValue( 'htmlResult1' ), 51 htmlParse( getTextAreaValue( 'htmlOriginal1' ) ), 52 'HTML parsing result doesn\'t match.' ); 53 }, 54 55 /** 56 * Test dtd disallowed children but same element with parent. 57 */ 58 test_fromHtml_2 : function() 59 { 60 assert.areSame( getTextAreaValue( 'htmlResult2' ), 61 htmlParse( getTextAreaValue( 'htmlOriginal2' ) ), 62 'HTML parsing result doesn\'t match.' ); 63 }, 64 65 /** 66 * Test remove empty inline element. 67 */ 68 test_fromHtml_3 : function() 69 { 70 assert.areSame( getTextAreaValue( 'htmlResult3' ), 71 htmlParse( getTextAreaValue( 'htmlOriginal3' ) ), 72 'HTML parsing result doesn\'t match.' ); 73 }, 74 75 /** 76 * Test deep dtd disallowed children. 77 */ 78 test_fromHtml_4 : function() 79 { 80 assert.areSame( getTextAreaValue( 'htmlResult4' ), 81 htmlParse( getTextAreaValue( 'htmlOriginal4' ) ), 82 'HTML parsing result doesn\'t match.' ); 83 }, 84 85 /** 86 * Test element follow dtd disallowed children. 87 */ 88 test_fromHtml_5 : function() 89 { 90 assert.areSame( getTextAreaValue( 'htmlResult5' ), 91 htmlParse( getTextAreaValue( 'htmlOriginal5' ) ), 92 'HTML parsing result doesn\'t match.' ); 93 }, 94 95 /** 96 * Test self-closing elements. 97 */ 98 test_fromHtml_6 : function() 99 { 100 assert.areSame( getTextAreaValue( 'htmlResult6' ), 101 htmlParse( getTextAreaValue( 'htmlOriginal6' ) ), 102 'HTML parsing result doesn\'t match.' ); 103 }, 104 105 /** 106 * Test unknown elements. 107 */ 108 test_fromHtml_7 : function() 109 { 110 assert.areSame( getTextAreaValue( 'htmlResult7' ), 111 htmlParse( getTextAreaValue( 'htmlOriginal7' ) ), 112 'HTML parsing result doesn\'t match.' ); 113 }, 114 115 /** 116 * Test optional close elements. 117 */ 118 test_fromHtml_8 : function() 119 { 120 assert.areSame( getTextAreaValue( 'htmlResult8' ), 121 htmlParse( getTextAreaValue( 'htmlOriginal8' ) ), 122 'HTML parsing result doesn\'t match.' ); 123 }, 124 125 /** 126 * Test element attributes formatting. 127 */ 128 test_fromHtml_9 : function() 129 { 130 assert.areSame( getTextAreaValue( 'htmlResult9' ), 131 htmlParse( getTextAreaValue( 'htmlOriginal9' ) ), 132 'HTML parsing result doesn\'t match.' ); 133 }, 134 135 name :document.title 136 }; 137 } )() ); 138 139 //]]> 140 </script> 141 </head> 142 <body> 143 144 <textarea id="htmlOriginal1"><p><div>text</div><blockquote>text</blockquote></p></textarea> 145 <textarea id="htmlResult1"><p></p><div>text</div><blockquote>text</blockquote></textarea> 146 147 <textarea id="htmlOriginal2"><ul><li>text1<li>text2</li></li></ul></textarea> 148 <textarea id="htmlResult2"><ul><li>text1</li><li>text2</li></ul></textarea> 149 150 <textarea id="htmlOriginal3"><p><b></b>text</p></textarea> 151 <textarea id="htmlResult3"><p>text</p></textarea> 152 153 <textarea id="htmlOriginal4"><p><b><div>text</div></b></p></textarea> 154 <textarea id="htmlResult4"><p></p><div><b>text</b></div></textarea> 155 156 <textarea id="htmlOriginal5"><p>text1<div>text2</div><span>text3</span></p></textarea> 157 <textarea id="htmlResult5"><p>text1</p><div>text2</div><span>text3</span></textarea> 158 159 <textarea id="htmlOriginal6"><p>text1<input /></p></textarea> 160 <textarea id="htmlResult6"><p>text1<input /></p></textarea> 161 162 <textarea id="htmlOriginal7"><p>text1<o:xxx />text2</p></textarea> 163 <textarea id="htmlResult7"><p>text1<o:xxx />text2</p></textarea> 164 165 <textarea id="htmlOriginal8"><ul><li>item1<li>item2</ul></textarea> 166 <textarea id="htmlResult8"><ul><li>item1</li><li>item2</li></ul></textarea> 167 168 <textarea id="htmlOriginal9"><input type="checkbox" checked autocomplete=off /></textarea> 169 <textarea id="htmlResult9"><input autocomplete="off" checked="checked" type="checkbox" /></textarea> 170 171 </body> 172 </html> 173 No newline at end of file