Index: /CKEditor/trunk/_source/core/test.js
===================================================================
--- /CKEditor/trunk/_source/core/test.js	(revision 4036)
+++ /CKEditor/trunk/_source/core/test.js	(revision 4037)
@@ -30,4 +30,6 @@
 	 */
 	assert : YAHOO.util.Assert,
+
+	runner : YAHOO.tool.TestRunner,
 
 	/**
@@ -174,4 +176,9 @@
 
 		return retval;
-	}
+	},
+
+	/**
+	 * Whether control the runner manually instead of running on window onload.
+	 */
+	deferRunner : false
 };
Index: /CKEditor/trunk/_source/tests/plugins/htmldataprocessor/htmldataprocessor.html
===================================================================
--- /CKEditor/trunk/_source/tests/plugins/htmldataprocessor/htmldataprocessor.html	(revision 4036)
+++ /CKEditor/trunk/_source/tests/plugins/htmldataprocessor/htmldataprocessor.html	(revision 4037)
@@ -9,10 +9,12 @@
 	<script type="text/javascript" src="../../test.js"></script>
 	<script type="text/javascript">
-
-CKEDITOR.plugins.load( 'htmldataprocessor' );
-
-	</script>
-	<script type="text/javascript">
 	//<![CDATA[
+
+// Load the required plugins and launch the runner.
+CKEDITOR.test.deferRunner = true;
+CKEDITOR.plugins.load( 'htmldataprocessor' , function()
+{
+ CKEDITOR.test.runner.run();
+} );
 
 var testCase;
Index: /CKEditor/trunk/_source/tests/test.js
===================================================================
--- /CKEditor/trunk/_source/tests/test.js	(revision 4036)
+++ /CKEditor/trunk/_source/tests/test.js	(revision 4037)
@@ -91,5 +91,6 @@
 		}
 
-		runner.run();
+		if ( !CKEDITOR.test.deferRunner )
+			runner.run();
 	};
 })();
