Index: _source/tests/plugins/list/list.html
===================================================================
--- _source/tests/plugins/list/list.html	(revision 0)
+++ _source/tests/plugins/list/list.html	(revision 0)
@@ -0,0 +1,134 @@
+<!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: toolbar</title>
+	<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">
+	//<![CDATA[
+/**
+ * Load the editor and wait for fully interactable.
+ * @param {Object} elementId
+ * @parma {Object} mode
+ * @param {Object} config
+ * @param {Object} callback Continuation with {@param editor}.
+ * @param {Object} context
+ */
+function prepareEditor( elementId, mode, config, callback, context )
+{
+	CKEDITOR.on( 'instanceReady',
+		function( evt )
+		{
+			var isMe = mode == CKEDITOR.ELEMENT_MODE_REPLACE ? 
+				evt.editor.name == elementId
+				: evt.editor.element.$ == 
+					document.getElementById( elementId );
+			if ( isMe )
+			{
+				callback.call( context, evt.editor );
+			}
+		}, this );
+
+	mode = mode || CKEDITOR.ELEMENT_MODE_REPLACE;
+	switch( mode )
+	{
+		case CKEDITOR.ELEMENT_MODE_REPLACE :
+			CKEDITOR.replace( elementId, config );
+			break;
+		case CKEDITOR.ELEMENT_MODE_APPENDTO :
+			CKEDITOR.appendTo( elementId, config );
+			break;
+	}
+}
+
+/**
+ * Find the specific UI item by row and column index.
+ * @param {Object} editor
+ * @param {Object} rowIndex
+ * @param {Object} colIndex
+ */
+function getToolbarUIItem( editor, rowIndex, colIndex){
+	return editor.toolbox.toolbars[ rowIndex -1].items[ colIndex-1];
+}
+
+/**
+ * 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, '' );
+}
+
+CKEDITOR.test.addTestCase( ( function()
+	{
+		
+		// Local references.
+		var assert = CKEDITOR.test.assert, 
+			doc = CKEDITOR.document,
+			action = YAHOO.util.UserAction,
+			selector = YAHOO.util.Selector;
+			
+		return	{
+			
+			/**
+			 *  Test apply numbered list in table cell.
+			 */
+			test_applyNumberedList1 : function()
+			{
+				prepareEditor( 'editor1', null, null, function( editor )
+					{
+						this.resume( function()
+						{
+							editor.focus();
+							var sel = editor.getSelection();
+							sel.selectElement( editor.document.getById( 'listTarget1' ) );
+							
+							editor.execCommand( 'numberedlist' );
+							assert.areSame( getTextAreaValue( 'htmlResult1a' ), editor.getData(), 
+							'Content after apply list format doesn\'t match.' );
+							
+							editor.execCommand( 'numberedlist' );
+							assert.areSame(getTextAreaValue( 'htmlResult1b' ), editor.getData(), 
+							'Content after cancel  list format doesn\'t match.' );
+						} );
+					}, this );
+					this.wait();	
+			},
+
+			name :document.title
+		};
+	} )() );
+	//]]>
+	</script>
+</head>
+<body>
+	<textarea id="editor1" name="editor1"><table><tr><td><div id="listTarget1">text</div></td></tr></table></textarea>
+	<textarea id="htmlResult1a"><table>
+	<tbody>
+		<tr>
+			<td>
+				<ol>
+					<li>
+						text</li>
+				</ol>
+			</td>
+		</tr>
+	</tbody>
+</table>
+</textarea>
+	<textarea id="htmlResult1b"><table>
+	<tbody>
+		<tr>
+			<td>
+				<div id="listTarget1">
+					text</div>
+			</td>
+		</tr>
+	</tbody>
+</table>
+</textarea>
+	
+</body>
+</html>
