testdev/ite/test/com.nokia.testfw.test/src/com/nokia/testfw/test/framework/ControlTestCase.java
--- /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);
+
+}