diff -r f1112f777ce9 -r 96906a986c3b 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. + *

+ * 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); + +}