Index: /CKEditor/tests/tt/4252/4252.html
===================================================================
--- /CKEditor/tests/tt/4252/4252.html	(revision 4138)
+++ /CKEditor/tests/tt/4252/4252.html	(revision 4138)
@@ -0,0 +1,137 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+	"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+	<title>Ticket: #4252</title>
+	<meta name="tags" content="editor,unit,all">
+	<script type="text/javascript" src="../../cktester/cell.js"></script>
+	<script>
+
+/**
+ * Load the editor and wait for fully interactable.
+ * @param {Object} elementId
+ * @param {Object} callback Continuation with {@param editor}.
+ * @param {Object} context
+ */
+function prepareEditor( elementId, callback, context )
+{
+	CKEDITOR.on( 'instanceReady',
+		function( evt )
+		{
+			callback.call( context, evt.editor );
+		}, this );
+	try
+	{
+		CKEDITOR.replace( elementId );
+	}
+	// Editor instance already existed, reuse it.
+	catch( er )
+	{
+		// Keep the async intrinsic. 
+		CKEDITOR.tools.setTimeout( callback, 0, context, CKEDITOR.instances[ elementId ] );
+	}
+}
+		
+( function()
+{
+	var assert = CKEDITOR.test.assert,
+		toolbarTools = CKEDITOR.test.toolbar;
+
+	CKEDITOR.test.addTestCase( {
+
+			/**
+			 * Click on a style button. 
+			 */
+			test_click_toolbar_style_button : function()
+			{
+				prepareEditor( 'playground', function( editor )
+				{
+					this.resume( function()
+					{
+						toolbarTools.clickButton( editor, 'Bold', function ()
+						{
+							this.resume( function()
+							{
+								var boldCommand = editor.getCommand( 'bold' );
+								assert.areSame( CKEDITOR.TRISTATE_ON, boldCommand.state );
+							} );
+						}, this );
+						this.wait();
+					} );
+				}, this );
+				this.wait();
+			},
+
+			/**
+			 * Click on a combo.
+			 */
+			test_click_toolbar_combo : function()
+			{
+				prepareEditor( 'playground', function( editor )
+				{
+					this.resume( function()
+					{
+						toolbarTools.clickButton( editor, 'Format', function ( combo )
+						{
+							this.resume( function()
+							{
+								assert.isTrue( !!combo._.panel.visible );
+							} );
+						}, this );
+						this.wait();
+					} );
+				}, this );
+				this.wait();
+			},
+
+			/**
+			 * Click on a panel button.
+			 */
+			test_click_toolbar_panel_button : function()
+			{
+				prepareEditor( 'playground', function( editor )
+				{
+					this.resume( function()
+					{
+						toolbarTools.clickButton( editor, 'TextColor', function ( colorbutton )
+						{
+							this.resume( function()
+							{
+								assert.isTrue( !!colorbutton._.panel.visible );
+							} );
+						}, this );
+						this.wait();
+					} );
+				}, this );
+				this.wait();
+			},
+
+			/**
+			 * Click on a dialog button.
+			 */
+			test_click_toolbar_dialog_button : function()
+			{
+				prepareEditor( 'playground', function( editor )
+				{
+					this.resume( function()
+					{
+						toolbarTools.clickButton( editor, 'Link', function ( dialog )
+						{
+							this.resume( function()
+							{
+								assert.isTrue( !!dialog._.element );
+							} );
+						}, this );
+						this.wait();
+					} );
+				}, this );
+				this.wait();
+			}
+	} );
+} )();
+	</script>
+</head>
+<body style="padding-top:100px;">
+<textarea id="playground"></textarea>
+</body>
+</html>
