Index: _source/tests/plugins/domiterator/domiterator.html
===================================================================
--- _source/tests/plugins/domiterator/domiterator.html	(revision 0)
+++ _source/tests/plugins/domiterator/domiterator.html	(revision 0)
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Plugin: domiterator</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+	<link rel="stylesheet" type="text/css" href="../../test.css" />
+	<script type="text/javascript" src="../../../../ckeditor_source.js"></script>
+	<script type="text/javascript" src="../../test.js"></script>
+	<script type="text/javascript">
+
+CKEDITOR.plugins.load( [ 'htmldataprocessor', 'htmlwriter', 'domiterator'] );
+
+
+	</script>
+	<script type="text/javascript">
+	//<![CDATA[
+
+/**
+ * IE always returning CRLF for linefeed, so remove it when retrieve pre-formated text from text area.
+ * @param {Object} id
+ */	
+function getTextAreaValue( id )
+{
+	return CKEDITOR.document.getById( id ).getValue().replace(/\r/gi,'');
+}
+
+CKEDITOR.test.addTestCase( (function()
+{
+	
+	// Local references.
+	var assert = CKEDITOR.test.assert,
+		arrayAssert = YAHOO.util.ArrayAssert;
+	
+	var doc = new CKEDITOR.dom.document( document );
+
+	// In these tests, we may "reset" the writer rules to avoid it formatting
+	// the output, making the assertion easier to the done. We don't need to
+	// test formatting features here, so this is ok.
+	var getDataProcessor = function()
+	{
+		var dataProcessor = new CKEDITOR.htmlDataProcessor();
+		dataProcessor.writer._.rules = [];
+		return dataProcessor;
+	};
+
+	/**
+	 * IE always returning CRLF for line-feed, so remove it when retrieving
+	 * pre-formated text from text area.
+	 */
+	function getTextAreaValue( id )
+	{
+		return CKEDITOR.document.getById( id ).getValue().replace( /\r/gi, '' );
+	}
+
+	function assumeElementContentAreSame( container, textareaId )
+	{
+		if( typeof container == 'string' )
+			container = doc.getById( container );
+		//Assume result document content
+		var html = getDataProcessor().toDataFormat( container );
+		assert.areSame( getTextAreaValue( textareaId ) , html );
+	}
+	
+	function assumeElementAreSame( element, textareaId )
+	{
+		if( typeof element == 'string' )
+			element = doc.getById( element );
+		//Assume result document content
+		var html = getDataProcessor().toDataFormat( element.getOuterHtml() );
+		assert.areSame( getTextAreaValue( textareaId ) , html );
+	}
+	
+	/**
+	 * 
+	 * @param {String|CKEDITOR.dom.range} containerId|range Either the id of html container which contents are treated as range, or a exisiting range object.
+	 * @param {Object} iteratorOption
+	 * @param {Array} expectedTagList block elements tagName list in iteration orders.
+	 */
+	function assumeIterationSameAs( containerIdOrRange, iteratorOption, expectedTagList )
+	{
+		var range;
+		if( typeof containerIdOrRange == 'string' )
+		{
+			range = new CKEDITOR.dom.range( doc );
+			range.selectNodeContents( doc.getById( containerIdOrRange ) );
+		}
+		else
+			range = containerIdOrRange;
+			
+		var iter = range.createIterator();
+		CKEDITOR.tools.extend( iter, iteratorOption, true );
+		var blockList = [], block;
+		while (( block = iter.getNextParagraph() ) ) 
+		{
+			blockList.push( block.getName() );
+		}
+		arrayAssert.itemsAreEqual( expectedTagList, blockList );
+	}
+	
+	return {
+		
+		/**
+		 * Test nested blocks
+		 */
+		test_toDataFormat5 : function()
+		{
+			var range = new CKEDITOR.dom.range( doc ), node = doc.getById( 'iterTarget5' );
+			range.setStartBefore( node );
+			range.setEndAfter( node );
+			assumeIterationSameAs( range , null, [ 'div' , 'p' ] );
+			assumeElementAreSame( 'iterTarget5', 'iterResult5' );
+		},
+
+		name : document.title
+	};
+})() );
+
+	//]]>
+	</script>
+</head>
+<body>
+
+<div id="iterTarget5"><p>text</p></div>
+<textarea id="iterResult5"><div id="iterTarget5"><p>text</p></div></textarea>
+</body>
+</html>
\ No newline at end of file
