testdev/ite/test/com.nokia.testfw.test/src/com/nokia/testfw/test/framework/ControlTestCase.java
changeset 1 96906a986c3b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testdev/ite/test/com.nokia.testfw.test/src/com/nokia/testfw/test/framework/ControlTestCase.java	Tue Mar 30 14:39:29 2010 +0800
@@ -0,0 +1,86 @@
+/*
+* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+package com.nokia.testfw.test.framework;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+
+import com.nokia.testfw.test.utils.TestUtils;
+
+import junit.framework.TestCase;
+
+/**
+ * This abstract is for Composite testing. It will create a dialog to 
+ * hold target composite.
+ * <P>
+ * user need to implement the createTestComposite method to create
+ * the target composite for test
+ * @author xiaoma
+ *
+ */
+public abstract class ControlTestCase extends TestCase {
+	protected Dialog dialog;
+	
+	/**
+	 * Sets up the fixture, for example, open a network connection.
+	 * This method is called before a test is executed.
+	 */
+	protected void setUp() throws Exception {
+		Shell shell = Display.getDefault().getActiveShell();
+		dialog = new Dialog(shell) {
+			Control testComposite;
+			protected Control createDialogArea(Composite parent) {
+				testComposite = createTestControl(parent);
+				
+				String title = "Test:";
+				if (testComposite != null) {
+					String clsName = testComposite.getClass().getName();
+					int index = clsName.lastIndexOf(".");
+					if (index > 0) {
+						clsName = clsName.substring(index + 1);
+					}
+					title = title + clsName;
+				}
+				parent.getShell().setText(title);
+				
+				return testComposite;
+				
+			}
+			
+		};
+		dialog.setBlockOnOpen(false);
+		dialog.open();
+		//delay for 2 seconds after dialog open
+		TestUtils.delay(2000);
+	}
+	
+	
+	
+	/**
+	 * Tears down the fixture, for example, close a network connection.
+	 * This method is called after a test is executed.
+	 */
+	protected void tearDown() throws Exception {
+		dialog.close();
+	}
+	
+	abstract protected Control createTestControl(Composite parent); 
+
+}