Added testing interface for various widgets, dialogs and wizards associated with INF and MMP editors.
authorstechong
Tue, 12 May 2009 16:23:41 -0500
changeset 150 5021c72f5c75
parent 149 0662b9122d01
child 151 b4eb527d5316
Added testing interface for various widgets, dialogs and wizards associated with INF and MMP editors.
project/com.nokia.carbide.cpp.project.ui/META-INF/MANIFEST.MF
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/common/CarbideFormEditor.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/BldInfEditor.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/ExportFileDialog.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/ExportSectionPart.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/ExportsPage.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/MMPFileDialog.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/MakMakeFilesSectionPart.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/MakeFileDialog.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/OverviewPage.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/BldInfEditorTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/ExportFileDialogTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/ExpportsPageTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/MMPFileDialogTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/MMPWizardTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/MakeFileDialogTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/OverviewPageTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/CompilerSectionPart.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/KernelSectionPart.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/LibrariesPage.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/LibrarySectionPart.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/LinkerSectionPart.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/MMPEditor.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/MissingSourcesSectionPart.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/OptionsPage.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/OverviewPage.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/ResourcesSectionPart.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/RuntimeSectionPart.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/SourcesPage.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/SourcesSectionPart.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/AddLibraryDialog.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/CapabilitiesDialog.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/ChooseDirectoryComposite.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/ChooseFileComposite.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/EditLibraryDialog.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/IncludeDirectoryDialog.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/LanguageSelectionDialog.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/MMPFilePathDialog.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/ResourceBlockDialog.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/ToolOptionsDialog.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/AddLibraryDialogTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/CapabilitiesDialogTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/EditLibraryDialogTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/IncludeDirectoryDialogTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/LanguageSelectionDialogTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/LibrariesPageTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/MMPEditorTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/MMPFilePathDialogTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/OptionsPageTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/OverviewPageTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/ResourceBlockDialogTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/SourcesPageTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/ToolOptionsDialogTester.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/wizards/MMPWizard.java
project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/wizards/MMPWizardPage.java
--- a/project/com.nokia.carbide.cpp.project.ui/META-INF/MANIFEST.MF	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/META-INF/MANIFEST.MF	Tue May 12 16:23:41 2009 -0500
@@ -36,9 +36,11 @@
 Export-Package: com.nokia.carbide.cpp.internal.project.ui,
  com.nokia.carbide.cpp.internal.project.ui.actions,
  com.nokia.carbide.cpp.internal.project.ui.editors.images,
+ com.nokia.carbide.cpp.internal.project.ui.editors.inf.testapi;x-friends:="com.nokia.carbide.automation.utils",
  com.nokia.carbide.cpp.internal.project.ui.images,
  com.nokia.carbide.cpp.internal.project.ui.images.providers,
  com.nokia.carbide.cpp.internal.project.ui.importWizards,
+ com.nokia.carbide.cpp.internal.project.ui.mmpEditor.testapi;x-friends:="com.nokia.carbide.automation.utils",
  com.nokia.carbide.cpp.internal.project.ui.sharedui,
  com.nokia.carbide.cpp.internal.project.ui.views,
  com.nokia.carbide.cpp.internal.project.ui.wizards,
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/common/CarbideFormEditor.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/common/CarbideFormEditor.java	Tue May 12 16:23:41 2009 -0500
@@ -771,4 +771,10 @@
 		MultiPageEditorActionBarContributor contributor = (MultiPageEditorActionBarContributor) getEditorSite().getActionBarContributor();
 		contributor.setActivePage(activeEditor);
 	}
+
+	public CarbideTextEditor getTextEditorPage() {
+		setActivePage(textEditorPageIndex);
+		return textEditorPage;
+	}
+
 }
\ No newline at end of file
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/BldInfEditor.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/BldInfEditor.java	Tue May 12 16:23:41 2009 -0500
@@ -330,5 +330,12 @@
 		}
 	}
 
-	
+	public OverviewPage getOverviewPage() {
+		return overviewPage;
+	}
+
+	public ExportsPage getExportsPage() {
+		return exportsPage;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/ExportFileDialog.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/ExportFileDialog.java	Tue May 12 16:23:41 2009 -0500
@@ -229,4 +229,21 @@
 		updateStatus(status);
 		
 	}
+
+	public Text getSourcePathText() {
+		return sourcePath;
+	}
+
+	public Button getBrowseButton() {
+		return browseButton;
+	}
+
+	public Text getDestinationPath() {
+		return destinationPath;
+	}
+
+	public Button getIsArchiveButton() {
+		return isArchiveButton;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/ExportSectionPart.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/ExportSectionPart.java	Tue May 12 16:23:41 2009 -0500
@@ -55,6 +55,7 @@
 	private Button removeButton;
 	private TableViewer tableViewer;
 	private Composite buttonComposite;
+	private ExportFileDialog exportFileDialog;
 	
 	
 	private final int COLUMN_SOURCE = 0;
@@ -237,8 +238,8 @@
 	protected void addButtonPressed() {
 		IExport newExport = editorContext.bldInfView.createExport();
 		
-		ExportFileDialog dlg = new ExportFileDialog(getSection().getShell(), isTest ? Messages.ExportSectionPart_AddTestExport : Messages.ExportSectionPart_AddExport, newExport, editorContext.project);
-		int dlgResult = dlg.open();
+		exportFileDialog = new ExportFileDialog(getSection().getShell(), isTest ? Messages.ExportSectionPart_AddTestExport : Messages.ExportSectionPart_AddExport, newExport, editorContext.project);
+		int dlgResult = exportFileDialog.open();
 		if (dlgResult == Dialog.OK) {
 			List<IExport> addedList = new ArrayList<IExport>();
 			addedList.add(newExport);
@@ -265,8 +266,8 @@
 			newExport.setTargetPath(export.getTargetPath());
 			newExport.setZipped(export.isZipped());
 
-			ExportFileDialog dlg = new ExportFileDialog(getSection().getShell(), isTest ? Messages.ExportSectionPart_EditTestExport : Messages.ExportSectionPart_EditExport, newExport, editorContext.project);
-			int dlgResult = dlg.open();
+			exportFileDialog = new ExportFileDialog(getSection().getShell(), isTest ? Messages.ExportSectionPart_EditTestExport : Messages.ExportSectionPart_EditExport, newExport, editorContext.project);
+			int dlgResult = exportFileDialog.open();
 			if (dlgResult == Dialog.OK) {
 
 				Map<Integer, Object> replaceMap = new HashMap<Integer, Object>();
@@ -342,4 +343,33 @@
 		downButton.setEnabled(selectionSize == 1 && 
 				firstSelection < tableViewer.getTable().getItemCount() - 1);
 	}
+
+	public TableViewer getTableViewer() {
+		return tableViewer;
+	}
+
+	public Button getAddButton() {
+		return addButton;
+	}
+
+	public Button getEditButton() {
+		return editButton;
+	}
+
+	public Button getUpButton() {
+		return upButton;
+	}
+
+	public Button getDownButton() {
+		return downButton;
+	}
+
+	public Button getRemoveButton() {
+		return removeButton;
+	}
+
+	public Dialog getExportFileDialog() {
+		return exportFileDialog;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/ExportsPage.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/ExportsPage.java	Tue May 12 16:23:41 2009 -0500
@@ -22,6 +22,7 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.SectionPart;
 import org.eclipse.ui.forms.widgets.FormToolkit;
 import org.eclipse.ui.forms.widgets.ScrolledForm;
 import org.eclipse.ui.forms.widgets.Section;
@@ -95,4 +96,13 @@
 		super.createPartControl(parent);
 		WorkbenchUtils.setHelpContextId(getPartControl(), HelpContexts.EXPORTS_PAGE);
 	}
+
+	public SectionPart getExportsSection() {
+		return exports;
+	}
+
+	public SectionPart getTestExportsSection() {
+		return testExports;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/MMPFileDialog.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/MMPFileDialog.java	Tue May 12 16:23:41 2009 -0500
@@ -258,4 +258,29 @@
 	public int show() {
 		return open();
 	}
+
+	public Text getFilePathText() {
+		return filePath;
+	}
+
+	public Button getBrowseButton() {
+		return browseButton;
+	}
+
+	public Button getTidyButton() {
+		return tidyButton;
+	}
+
+	public Button getBuildAsARMButton() {
+		return buildAsArmButton;
+	}
+
+	public Button getManualButton() {
+		return manualButton;
+	}
+
+	public Button getSupportButton() {
+		return supportButton;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/MakMakeFilesSectionPart.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/MakMakeFilesSectionPart.java	Tue May 12 16:23:41 2009 -0500
@@ -27,12 +27,14 @@
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.viewers.*;
 import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.*;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.layout.*;
 import org.eclipse.swt.widgets.*;
+import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.forms.SectionPart;
@@ -58,6 +60,10 @@
 	private Button removeButton;
 	private TableViewer tableViewer;
 	private Composite buttonComposite;
+	private MMPWizard mmpWizard;
+	private MMPFileDialog mmpFileDialog;
+	private MakeFileDialog makeFileDialog;
+	private IEditorPart componentEditor;
 	
 	private final static String YES = Messages.MakMakeFilesSectionPart_Yes;
 	private final static String NO = Messages.MakMakeFilesSectionPart_No;
@@ -274,19 +280,19 @@
 	}
 	
 	protected void createMMPFileButtonPressed() {
-		MMPWizard wizard = new MMPWizard(isTest);
-		WizardDialog dlg = new WizardDialog(WorkbenchUtils.getActiveShell(), wizard);
+		mmpWizard = new MMPWizard(isTest);
+		WizardDialog dlg = new WizardDialog(WorkbenchUtils.getActiveShell(), mmpWizard);
 		if (dlg.open() == Window.OK) {
 			refresh();
 		}
 	}
 
 	protected void addMMPFileButtonPressed() {
-		MMPFileDialog dlg = new MMPFileDialog(getSection().getShell(), null, editorContext, isTest);
-		int dlgResult = dlg.open();
+		mmpFileDialog = new MMPFileDialog(getSection().getShell(), null, editorContext, isTest);
+		int dlgResult = mmpFileDialog.open();
 		if (dlgResult == Dialog.OK) {
 			List<IMakMakeReference> addedList = new ArrayList<IMakMakeReference>();
-			addedList.add(dlg.getMakeMakeFile());
+			addedList.add(mmpFileDialog.getMakeMakeFile());
 
 			AddListValueOperation op = new AddListValueOperation(
 					editorContext.bldInfView, 
@@ -299,11 +305,11 @@
 	}
 
 	protected void addMakeFileButtonPressed() {
-		MakeFileDialog dlg = new MakeFileDialog(getSection().getShell(), null, editorContext, isTest);
-		int dlgResult = dlg.open();
+		makeFileDialog = new MakeFileDialog(getSection().getShell(), null, editorContext, isTest);
+		int dlgResult = makeFileDialog.open();
 		if (dlgResult == Dialog.OK) {
 			List<IMakMakeReference> addedList = new ArrayList<IMakMakeReference>();
-			addedList.add(dlg.getMakeMakeFile());
+			addedList.add(makeFileDialog.getMakeMakeFile());
 
 			AddListValueOperation op = new AddListValueOperation(
 					editorContext.bldInfView, 
@@ -325,8 +331,10 @@
 			
 			if (ref instanceof IMMPReference) {
 				dlg = new MMPFileDialog(getSection().getShell(), (IMMPReference)ref, editorContext, isTest);
+				mmpFileDialog = (MMPFileDialog) dlg;
 			} else {
 				dlg = new MakeFileDialog(getSection().getShell(), (IMakefileReference)ref, editorContext, isTest);
+				makeFileDialog = (MakeFileDialog) dlg;
 			}
 
 			int dlgResult = dlg.show();
@@ -356,7 +364,7 @@
 			EpocEnginePathHelper pathHelper = new EpocEnginePathHelper(editorContext.project);
 
 			try {
-				IDE.openEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(), editorContext.project.getFile(pathHelper.convertToProject(ref.getPath())));
+				componentEditor = IDE.openEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(), editorContext.project.getFile(pathHelper.convertToProject(ref.getPath())));
 			} catch (PartInitException e) {
 				e.printStackTrace();
 			}
@@ -422,4 +430,56 @@
 		downButton.setEnabled(selectionSize == 1 && 
 				firstSelection < tableViewer.getTable().getItemCount() - 1);
 	}
+
+	public TableViewer getTableViewer() {
+		return tableViewer;
+	}
+
+	public Button getCreateMMPButton() {
+		return createMMPButton;
+	}
+
+	public Button getAddMMPButton() {
+		return addMMPButton;
+	}
+
+	public Button getAddMakeFileButton() {
+		return addMakeButton;
+	}
+
+	public Button getEditButton() {
+		return editButton;
+	}
+
+	public Button getOpenButton() {
+		return launchEditorButton;
+	}
+
+	public Button getUpButton() {
+		return upButton;
+	}
+
+	public Button getDownButton() {
+		return downButton;
+	}
+
+	public Button getRemoveButton() {
+		return removeButton;
+	}
+
+	public Wizard getMMPWizard() {
+		return mmpWizard;
+	}
+
+	public Dialog getMMPFileDialog() {
+		return mmpFileDialog;
+	}
+
+	public Dialog getMakeFileDialog() {
+		return makeFileDialog;
+	}
+
+	public IEditorPart getComponentEditor() {
+		return componentEditor;
+	}
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/MakeFileDialog.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/MakeFileDialog.java	Tue May 12 16:23:41 2009 -0500
@@ -293,4 +293,33 @@
 	public int show() {
 		return open();
 	}
+
+	public Text getFilePathText() {
+		return filePath;
+	}
+
+	public Button getBrowseButton() {
+		return browseButton;
+	}
+
+	public Button getTidyButton() {
+		return tidyButton;
+	}
+
+	public Button getBuildAsARMButton() {
+		return buildAsArmButton;
+	}
+
+	public Button getManualButton() {
+		return manualButton;
+	}
+
+	public Button getSupportButton() {
+		return supportButton;
+	}
+
+	public Combo getMakeFileTypeCombo() {
+		return makefileType;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/OverviewPage.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/OverviewPage.java	Tue May 12 16:23:41 2009 -0500
@@ -25,6 +25,7 @@
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.SectionPart;
 import org.eclipse.ui.forms.widgets.*;
 
 import java.util.LinkedHashSet;
@@ -176,4 +177,21 @@
 		super.createPartControl(parent);
 		WorkbenchUtils.setHelpContextId(getPartControl(), HelpContexts.OVERVIEW_PAGE);
 	}
+
+	public Label getActiveBuildConfigLabel() {
+		return activeBuildConfigLabel;
+	}
+
+	public Label getProjectPlatformsLabel() {
+		return prjPlatformsLabel;
+	}
+
+	public SectionPart getComponentsSectionPart() {
+		return makMakeFiles;
+	}
+
+	public SectionPart getTestComponentsSectionPart() {
+		return testMakMakeFiles;
+	}
+
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/BldInfEditorTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,70 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.editors.inf.testapi;
+
+import org.eclipse.ui.editors.text.TextEditor;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.forms.editor.FormPage;
+
+import com.nokia.carbide.cpp.internal.project.ui.editors.inf.BldInfEditor;
+
+/**
+ * An interface for testing the Bld.inf Editor
+ */
+public class BldInfEditorTester {
+
+	/**
+	 * Opens the Overview page of the Bld.inf editor and returns the page.
+	 * @param editor - editor part provided by caller
+	 * @return Overview page if success, null otherwise
+	 */
+	public static FormPage getOverviewPage(FormEditor editor) {
+		if (editor != null && editor instanceof BldInfEditor) {
+			BldInfEditor infEditor = (BldInfEditor) editor;
+			return infEditor.getOverviewPage();
+		}
+		return null;
+	}
+
+	/**
+	 * Opens the Exports page of the Bld.inf editor and returns the page.
+	 * @param editor - editor part provided by caller
+	 * @return Exports page if success, null otherwise
+	 */
+	public static FormPage getExportsPage(FormEditor editor) {
+		if (editor != null && editor instanceof BldInfEditor) {
+			BldInfEditor infEditor = (BldInfEditor) editor;
+			return infEditor.getExportsPage();
+		}
+		return null;
+	}
+
+	/**
+	 * Opens the text editor page of the Bld.inf editor and returns the page.
+	 * @param editor - editor part provided by caller
+	 * @return text editor page if success, null otherwise
+	 */
+	public static TextEditor getTextEditorPage(FormEditor editor) {
+		if (editor != null && editor instanceof BldInfEditor) {
+			BldInfEditor infEditor = (BldInfEditor) editor;
+			return infEditor.getTextEditorPage();
+		}
+		return null;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/ExportFileDialogTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,83 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.editors.inf.testapi;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Text;
+
+import com.nokia.carbide.cpp.internal.project.ui.editors.inf.ExportFileDialog;
+
+/**
+ * An interface for testing the Export File dialog of the Bld.inf Editor
+ */
+public class ExportFileDialogTester {
+
+	/**
+	 * Retrieves the "Source Path" text widget of the Export File dialog.
+	 * @param dialog - Export File dialog provided by caller
+	 * @return text widget if success, null otherwise
+	 */
+	public static Text getSourcePathText(Dialog dialog) {
+		if (dialog != null && dialog instanceof ExportFileDialog) {
+			ExportFileDialog eDialog = (ExportFileDialog) dialog;
+			return eDialog.getSourcePathText();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Browse" button widget of the Export File dialog.
+	 * @param dialog - Export File dialog provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getBrowseButton(Dialog dialog) {
+		if (dialog != null && dialog instanceof ExportFileDialog) {
+			ExportFileDialog eDialog = (ExportFileDialog) dialog;
+			return eDialog.getBrowseButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Destination Path" text widget of the Export File dialog.
+	 * @param dialog - Export File dialog provided by caller
+	 * @return text widget if success, null otherwise
+	 */
+	public static Text getDestinationPath(Dialog dialog) {
+		if (dialog != null && dialog instanceof ExportFileDialog) {
+			ExportFileDialog eDialog = (ExportFileDialog) dialog;
+			return eDialog.getDestinationPath();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Export is a zip file" button widget of the Export File dialog.
+	 * @param dialog - Export File dialog provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getIsArchiveButton(Dialog dialog) {
+		if (dialog != null && dialog instanceof ExportFileDialog) {
+			ExportFileDialog eDialog = (ExportFileDialog) dialog;
+			return eDialog.getIsArchiveButton();
+		}
+		return null;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/ExpportsPageTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,151 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.editors.inf.testapi;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.ui.forms.SectionPart;
+import org.eclipse.ui.forms.editor.FormPage;
+
+import com.nokia.carbide.cpp.internal.project.ui.editors.inf.ExportSectionPart;
+import com.nokia.carbide.cpp.internal.project.ui.editors.inf.ExportsPage;
+
+/**
+ * An interface for testing the Exports page of the Bld.inf Editor
+ */
+public class ExpportsPageTester {
+
+	/**
+	 * Retrieves the Exports section from an Exports page.
+	 * @param page - Exports page provided by caller
+	 * @return - Exports section if success, null otherwise
+	 */
+	public static SectionPart getExportsSection(FormPage page) {
+		if (page != null && page instanceof ExportsPage) {
+			ExportsPage exportsPage = (ExportsPage) page;
+			return exportsPage.getExportsSection();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the Test Exports section from an Exports page.
+	 * @param page - Exports page provided by caller
+	 * @return - Test Exports section if success, null otherwise
+	 */
+	public static SectionPart getTestExportsSection(FormPage page) {
+		if (page != null && page instanceof ExportsPage) {
+			ExportsPage exportsPage = (ExportsPage) page;
+			return exportsPage.getTestExportsSection();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the table viewer of an Exports section.
+	 * @param part - Exports section part provided by caller
+	 * @return - table viewer if success, null otherwise
+	 */
+	public static TableViewer getComponentsTableViewer(SectionPart part) {
+		if (part != null && part instanceof ExportSectionPart) {
+			ExportSectionPart ePart = (ExportSectionPart) part;
+			return ePart.getTableViewer();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Add" button widget of an Exports section.
+	 * @param part - Exports section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getAddButton(SectionPart part) {
+		if (part != null && part instanceof ExportSectionPart) {
+			ExportSectionPart ePart = (ExportSectionPart) part;
+			return ePart.getAddButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Edit" button widget of an Exports section.
+	 * @param part - Exports section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getEditButton(SectionPart part) {
+		if (part != null && part instanceof ExportSectionPart) {
+			ExportSectionPart ePart = (ExportSectionPart) part;
+			return ePart.getEditButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Up" button widget of an Exports section.
+	 * @param part - Exports section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getUpButton(SectionPart part) {
+		if (part != null && part instanceof ExportSectionPart) {
+			ExportSectionPart ePart = (ExportSectionPart) part;
+			return ePart.getUpButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Down" button widget of an Exports section.
+	 * @param part - Exports section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getDownButton(SectionPart part) {
+		if (part != null && part instanceof ExportSectionPart) {
+			ExportSectionPart ePart = (ExportSectionPart) part;
+			return ePart.getDownButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Remove" button widget of an Exports section.
+	 * @param part - Exports section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getRemoveButton(SectionPart part) {
+		if (part != null && part instanceof ExportSectionPart) {
+			ExportSectionPart ePart = (ExportSectionPart) part;
+			return ePart.getRemoveButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the export file dialog launched from an Exports section.
+	 * @param part - Exports section part provided by caller
+	 * @return - export file dialog if success, null otherwise
+	 */
+	public static Dialog getExportFileDialog(SectionPart part) {
+		if (part != null && part instanceof ExportSectionPart) {
+			ExportSectionPart ePart = (ExportSectionPart) part;
+			return ePart.getExportFileDialog();
+		}
+		return null;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/MMPFileDialogTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,109 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.editors.inf.testapi;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Text;
+
+import com.nokia.carbide.cpp.internal.project.ui.editors.inf.MMPFileDialog;
+
+/**
+ * An interface for testing the MMP File dialog of the Bld.inf Editor
+ */
+public class MMPFileDialogTester {
+
+	/**
+	 * Retrieves the "File Path" text widget of the MMP File dialog.
+	 * @param dialog - MMP File dialog provided by caller
+	 * @return text widget if success, null otherwise
+	 */
+	public static Text getFilePathText(Dialog dialog) {
+		if (dialog != null && dialog instanceof MMPFileDialog) {
+			MMPFileDialog mDialog = (MMPFileDialog) dialog;
+			return mDialog.getFilePathText();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Browse" button widget of the MMP File dialog.
+	 * @param dialog - MMP File dialog provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getBrowseButton(Dialog dialog) {
+		if (dialog != null && dialog instanceof MMPFileDialog) {
+			MMPFileDialog mDialog = (MMPFileDialog) dialog;
+			return mDialog.getBrowseButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Tidy" button widget of the MMP File dialog.
+	 * @param dialog - MMP File dialog provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getTidyButton(Dialog dialog) {
+		if (dialog != null && dialog instanceof MMPFileDialog) {
+			MMPFileDialog mDialog = (MMPFileDialog) dialog;
+			return mDialog.getTidyButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Build as ARM" button widget of the MMP File dialog.
+	 * @param dialog - MMP File dialog provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getBuildAsARMButton(Dialog dialog) {
+		if (dialog != null && dialog instanceof MMPFileDialog) {
+			MMPFileDialog mDialog = (MMPFileDialog) dialog;
+			return mDialog.getBuildAsARMButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Manual" button widget of the MMP File dialog.
+	 * @param dialog - MMP File dialog provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getManualButton(Dialog dialog) {
+		if (dialog != null && dialog instanceof MMPFileDialog) {
+			MMPFileDialog mDialog = (MMPFileDialog) dialog;
+			return mDialog.getManualButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Support" button widget of the MMP File dialog.
+	 * @param dialog - MMP File dialog provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getSupportButton(Dialog dialog) {
+		if (dialog != null && dialog instanceof MMPFileDialog) {
+			MMPFileDialog mDialog = (MMPFileDialog) dialog;
+			return mDialog.getSupportButton();
+		}
+		return null;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/MMPWizardTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,98 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.editors.inf.testapi;
+
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Text;
+
+import com.nokia.carbide.cpp.internal.project.ui.wizards.MMPWizard;
+import com.nokia.carbide.cpp.internal.project.ui.wizards.MMPWizardPage;
+
+/**
+ * An interface for testing the MMP wizard of the Bld.inf Editor
+ */
+public class MMPWizardTester {
+
+	/**
+	 * Retrieves the wizard page of the MMP wizard.
+	 * @param wizard - MMP wizard provided by caller
+	 * @return wizard page if success, null otherwise
+	 */
+	public static WizardPage getMMPWizardPage(Wizard wizard) {
+		if (wizard != null && wizard instanceof MMPWizard) {
+			MMPWizard mWizard = (MMPWizard) wizard;
+			return mWizard.getMMPWizardPage();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Folder" text widget of the MMP wizard page.
+	 * @param page - MMP wizard provided by caller
+	 * @return text widget if success, null otherwise
+	 */
+	public static Text getFolderText(WizardPage page) {
+		if (page != null && page instanceof MMPWizardPage) {
+			MMPWizardPage mPage = (MMPWizardPage) page;
+			return mPage.getContainerText();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "File name" text widget of the MMP wizard page.
+	 * @param page - MMP wizard provided by caller
+	 * @return text widget if success, null otherwise
+	 */
+	public static Text getFileNameText(WizardPage page) {
+		if (page != null && page instanceof MMPWizardPage) {
+			MMPWizardPage mPage = (MMPWizardPage) page;
+			return mPage.getFileNameText();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Browse" button widget of the MMP wizard page.
+	 * @param page - MMP wizard provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getBrowseButton(WizardPage page) {
+		if (page != null && page instanceof MMPWizardPage) {
+			MMPWizardPage mPage = (MMPWizardPage) page;
+			return mPage.getBrowseButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Test MMP" button widget of the MMP wizard page.
+	 * @param page - MMP wizard provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getTestMMPButton(WizardPage page) {
+		if (page != null && page instanceof MMPWizardPage) {
+			MMPWizardPage mPage = (MMPWizardPage) page;
+			return mPage.getTestMMPButton();
+		}
+		return null;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/MakeFileDialogTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,123 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.editors.inf.testapi;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Text;
+
+import com.nokia.carbide.cpp.internal.project.ui.editors.inf.MakeFileDialog;
+
+/**
+ * An interface for testing the Make File dialog of the Bld.inf Editor
+ */
+public class MakeFileDialogTester {
+
+	/**
+	 * Retrieves the "File Path" text widget of the Make File dialog.
+	 * @param dialog - Make File dialog provided by caller
+	 * @return text widget if success, null otherwise
+	 */
+	public static Text getFilePathText(Dialog dialog) {
+		if (dialog != null && dialog instanceof MakeFileDialog) {
+			MakeFileDialog mDialog = (MakeFileDialog) dialog;
+			return mDialog.getFilePathText();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Browse" button widget of the Make File dialog.
+	 * @param dialog - Make File dialog provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getBrowseButton(Dialog dialog) {
+		if (dialog != null && dialog instanceof MakeFileDialog) {
+			MakeFileDialog mDialog = (MakeFileDialog) dialog;
+			return mDialog.getBrowseButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Tidy" button widget of the Make File dialog.
+	 * @param dialog - Make File dialog provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getTidyButton(Dialog dialog) {
+		if (dialog != null && dialog instanceof MakeFileDialog) {
+			MakeFileDialog mDialog = (MakeFileDialog) dialog;
+			return mDialog.getTidyButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Build as ARM" button widget of the Make File dialog.
+	 * @param dialog - Make File dialog provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getBuildAsARMButton(Dialog dialog) {
+		if (dialog != null && dialog instanceof MakeFileDialog) {
+			MakeFileDialog mDialog = (MakeFileDialog) dialog;
+			return mDialog.getBuildAsARMButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Manual" button widget of the Make File dialog.
+	 * @param dialog - Make File dialog provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getManualButton(Dialog dialog) {
+		if (dialog != null && dialog instanceof MakeFileDialog) {
+			MakeFileDialog mDialog = (MakeFileDialog) dialog;
+			return mDialog.getManualButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Support" button widget of the Make File dialog.
+	 * @param dialog - Make File dialog provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getSupportButton(Dialog dialog) {
+		if (dialog != null && dialog instanceof MakeFileDialog) {
+			MakeFileDialog mDialog = (MakeFileDialog) dialog;
+			return mDialog.getSupportButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "MakeFile format" combo widget of the Make File dialog.
+	 * @param dialog - Make File dialog provided by caller
+	 * @return combo widget if success, null otherwise
+	 */
+	public static Combo getMakeFileTypeCombo(Dialog dialog) {
+		if (dialog != null && dialog instanceof MakeFileDialog) {
+			MakeFileDialog mDialog = (MakeFileDialog) dialog;
+			return mDialog.getMakeFileTypeCombo();
+		}
+		return null;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/inf/testapi/OverviewPageTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,258 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.editors.inf.testapi;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.forms.SectionPart;
+import org.eclipse.ui.forms.editor.FormPage;
+
+import com.nokia.carbide.cpp.internal.project.ui.editors.inf.MakMakeFilesSectionPart;
+import com.nokia.carbide.cpp.internal.project.ui.editors.inf.OverviewPage;
+
+/**
+ * An interface for testing the Overview page of the Bld.inf Editor
+ */
+public class OverviewPageTester {
+
+	/**
+	 * Retrieves the "Active Build Configuration" label from the Overview page.
+	 * @param page - Overview page provided by caller
+	 * @return - label widget if success, null otherwise
+	 */
+	public static Label getActiveBuildConfigLabel(FormPage page) {
+		if (page != null && page instanceof OverviewPage) {
+			OverviewPage overviewPage = (OverviewPage) page;
+			return overviewPage.getActiveBuildConfigLabel();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Project Build Platforms" label from the Overview page.
+	 * @param page - Overview page provided by caller
+	 * @return - label widget if success, null otherwise
+	 */
+	public static Label getProjectPlatformsLabel(FormPage page) {
+		if (page != null && page instanceof OverviewPage) {
+			OverviewPage overviewPage = (OverviewPage) page;
+			return overviewPage.getProjectPlatformsLabel();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the Components section from the Overview page.
+	 * @param page - Overview page provided by caller
+	 * @return - section part if success, null otherwise
+	 */
+	public static SectionPart getComponentsSection(FormPage page) {
+		if (page != null && page instanceof OverviewPage) {
+			OverviewPage overviewPage = (OverviewPage) page;
+			return overviewPage.getComponentsSectionPart();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the Test Components section from the Overview page.
+	 * @param page - Overview page provided by caller
+	 * @return - section part if success, null otherwise
+	 */
+	public static SectionPart getTestComponentsSection(FormPage page) {
+		if (page != null && page instanceof OverviewPage) {
+			OverviewPage overviewPage = (OverviewPage) page;
+			return overviewPage.getTestComponentsSectionPart();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the table viewer of a Components section.
+	 * @param part - Components section part provided by caller
+	 * @return - table viewer if success, null otherwise
+	 */
+	public static TableViewer getComponentsTableViewer(SectionPart part) {
+		if (part != null && part instanceof MakMakeFilesSectionPart) {
+			MakMakeFilesSectionPart mPart = (MakMakeFilesSectionPart) part;
+			return mPart.getTableViewer();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Create New MMP File" button widget of a Components section.
+	 * @param part - Components section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getCreateMMPButton(SectionPart part) {
+		if (part != null && part instanceof MakMakeFilesSectionPart) {
+			MakMakeFilesSectionPart mPart = (MakMakeFilesSectionPart) part;
+			return mPart.getCreateMMPButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Add Existing MMP File" button widget of a Components section.
+	 * @param part - Components section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getAddMMPButton(SectionPart part) {
+		if (part != null && part instanceof MakMakeFilesSectionPart) {
+			MakMakeFilesSectionPart mPart = (MakMakeFilesSectionPart) part;
+			return mPart.getAddMMPButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Add Existing Make File" button widget of a Components section.
+	 * @param part - Components section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getAddMakeFileButton(SectionPart part) {
+		if (part != null && part instanceof MakMakeFilesSectionPart) {
+			MakMakeFilesSectionPart mPart = (MakMakeFilesSectionPart) part;
+			return mPart.getAddMakeFileButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Edit" button widget of a Components section.
+	 * @param part - Components section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getEditButton(SectionPart part) {
+		if (part != null && part instanceof MakMakeFilesSectionPart) {
+			MakMakeFilesSectionPart mPart = (MakMakeFilesSectionPart) part;
+			return mPart.getEditButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Open" button widget of a Components section.
+	 * @param part - Components section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getOpenButton(SectionPart part) {
+		if (part != null && part instanceof MakMakeFilesSectionPart) {
+			MakMakeFilesSectionPart mPart = (MakMakeFilesSectionPart) part;
+			return mPart.getOpenButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Up" button widget of a Components section.
+	 * @param part - Components section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getUpButton(SectionPart part) {
+		if (part != null && part instanceof MakMakeFilesSectionPart) {
+			MakMakeFilesSectionPart mPart = (MakMakeFilesSectionPart) part;
+			return mPart.getUpButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Down" button widget of a Components section.
+	 * @param part - Components section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getDownButton(SectionPart part) {
+		if (part != null && part instanceof MakMakeFilesSectionPart) {
+			MakMakeFilesSectionPart mPart = (MakMakeFilesSectionPart) part;
+			return mPart.getDownButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Remove" button widget of a Components section.
+	 * @param part - Components section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getRemoveButton(SectionPart part) {
+		if (part != null && part instanceof MakMakeFilesSectionPart) {
+			MakMakeFilesSectionPart mPart = (MakMakeFilesSectionPart) part;
+			return mPart.getRemoveButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the new MMP file wizard launched from a Components section.
+	 * @param part - Components section part provided by caller
+	 * @return - new MMP file wizard if success, null otherwise
+	 */
+	public static Wizard getMMPWizard(SectionPart part) {
+		if (part != null && part instanceof MakMakeFilesSectionPart) {
+			MakMakeFilesSectionPart mPart = (MakMakeFilesSectionPart) part;
+			return mPart.getMMPWizard();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the MMP file dialog launched from a Components section.
+	 * @param part - Components section part provided by caller
+	 * @return - MMP file dialog if success, null otherwise
+	 */
+	public static Dialog getMMPFileDialog(SectionPart part) {
+		if (part != null && part instanceof MakMakeFilesSectionPart) {
+			MakMakeFilesSectionPart mPart = (MakMakeFilesSectionPart) part;
+			return mPart.getMMPFileDialog();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the make file dialog launched from a Components section.
+	 * @param part - Components section part provided by caller
+	 * @return - make file dialog if success, null otherwise
+	 */
+	public static Dialog getMakeFileDialog(SectionPart part) {
+		if (part != null && part instanceof MakMakeFilesSectionPart) {
+			MakMakeFilesSectionPart mPart = (MakMakeFilesSectionPart) part;
+			return mPart.getMakeFileDialog();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the editor part launched from a Components section.
+	 * @param part - Components section part provided by caller
+	 * @return - editor part if success, null otherwise
+	 */
+	public static IEditorPart getComponentEditor(SectionPart part) {
+		if (part != null && part instanceof MakMakeFilesSectionPart) {
+			MakMakeFilesSectionPart mPart = (MakMakeFilesSectionPart) part;
+			return mPart.getComponentEditor();
+		}
+		return null;
+	}
+
+}
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/CompilerSectionPart.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/CompilerSectionPart.java	Tue May 12 16:23:41 2009 -0500
@@ -354,4 +354,37 @@
 	CompilerPresentationModel getModel() {
 		return model;
 	}
+
+	public TreeViewer getCompilerTreeViewer() {
+		return compilerTreeViewer;
+	}
+
+	public Button getAddButton() {
+		return addButton;
+	}
+
+	public Button getEditButton() {
+		return editButton;
+	}
+
+	public Button getUpButton() {
+		return upButton;
+	}
+
+	public Button getDownButton() {
+		return downButton;
+	}
+
+	public Button getRemoveButton() {
+		return removeButton;
+	}
+
+	public Button getSrcDebugButton() {
+		return srcdebugButton;
+	}
+
+	public Button getStrictDependenciesButton() {
+		return strictDependenciesButton;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/KernelSectionPart.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/KernelSectionPart.java	Tue May 12 16:23:41 2009 -0500
@@ -93,4 +93,13 @@
 			getSection().setExpanded(true);
 		}
 	}
+
+	public Button getAsspExportsButton() {
+		return asspExportsButton;
+	}
+
+	public Button getAsspAbiButton() {
+		return asspAbiButton;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/LibrariesPage.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/LibrariesPage.java	Tue May 12 16:23:41 2009 -0500
@@ -135,4 +135,25 @@
 			setInputs();
 		}
 	}
+
+	public LibrarySectionPart getMainLibrariesSection() {
+		return mainLibraries;
+	}
+
+	public LibrarySectionPart getStaticLibrariesSection() {
+		return staticLibraries;
+	}
+
+	public LibrarySectionPart getASSPLibrariesSection() {
+		return asspLibraries;
+	}
+
+	public LibrarySectionPart getWin32LibrariesSection() {
+		return win32Libraries;
+	}
+
+	public LibrarySectionPart getDebugLibrariesSection() {
+		return debugLibraries;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/LibrarySectionPart.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/LibrarySectionPart.java	Tue May 12 16:23:41 2009 -0500
@@ -69,6 +69,8 @@
 	private Button addButton;
 	private TableViewer tableViewer;
 	private Composite buttonComposite;
+	private AddLibraryDialog addLibraryDialog;
+	private EditLibraryDialog editLibraryDialog;
 	
 	class TableLabelProvider extends LabelProvider implements ITableLabelProvider {
 		public String getColumnText(Object element, int columnIndex) {
@@ -223,10 +225,10 @@
 		List<String> includedList = (List<String>) tableViewer.getInput();
 		sdkLibraries.removeAll(includedList);
 		
-		AddLibraryDialog dlg = new AddLibraryDialog(getSection().getShell(), sdkLibraries);
-		int dlgResult = dlg.open();
+		addLibraryDialog = new AddLibraryDialog(getSection().getShell(), sdkLibraries);
+		int dlgResult = addLibraryDialog.open();
 		if (dlgResult == Dialog.OK) {
-			List<String> libNames = dlg.getLibraryNames();
+			List<String> libNames = addLibraryDialog.getLibraryNames();
 			if (libNames != null && libNames.size() > 0) {
 				// ensure the names have the .lib extension
 				for (int i = 0; i < libNames.size(); i++) {
@@ -259,10 +261,10 @@
 				originalLibName = originalLibName.substring(0, dotPos);
 			}
 	
-			EditLibraryDialog dlg = new EditLibraryDialog(getSection().getShell(), originalLibName);
-			int dlgResult = dlg.open();
+			editLibraryDialog = new EditLibraryDialog(getSection().getShell(), originalLibName);
+			int dlgResult = editLibraryDialog.open();
 			if (dlgResult == Dialog.OK) {
-				String newLibName = dlg.getLibraryName();
+				String newLibName = editLibraryDialog.getLibraryName();
 				String extension = TextUtils.getExtension(newLibName);
 				if (!LIB_EXTENSION.equalsIgnoreCase(extension)) {
 					newLibName += "." + LIB_EXTENSION; //$NON-NLS-1$
@@ -342,4 +344,37 @@
 		downButton.setEnabled(selectionSize == 1 && 
 				firstSelection < tableViewer.getTable().getItemCount() - 1);
 	}
+
+	public TableViewer getTableViewer() {
+		return tableViewer;
+	}
+
+	public Button getAddButton() {
+		return addButton;
+	}
+
+	public Button getEditButton() {
+		return editButton;
+	}
+
+	public Button getUpButton() {
+		return upButton;
+	}
+
+	public Button getDownButton() {
+		return downButton;
+	}
+
+	public Button getRemovepButton() {
+		return removeButton;
+	}
+
+	public AddLibraryDialog getAddLibraryDialog() {
+		return addLibraryDialog;
+	}
+
+	public EditLibraryDialog getEditLibraryDialog() {
+		return editLibraryDialog;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/LinkerSectionPart.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/LinkerSectionPart.java	Tue May 12 16:23:41 2009 -0500
@@ -71,6 +71,7 @@
 	private Button noStrictdefButton;
 	private Button dontExportLibraryButton;
 	private Button exportUnfrozenButton;
+	private Button browseButton;
 	private ComboViewer defFileViewer;
 	private Text baseAddrText;
 	private Text linkAsText;
@@ -196,7 +197,6 @@
 		formData_7.left = new FormAttachment(win32BaseAddressLabel, 0, SWT.LEFT);
 		baseAddrText.setLayoutData(formData_7);
 
-		Button browseButton;
 		browseButton = toolkit.createButton(container, Messages.LinkerSectionPart_browseBtn, SWT.NONE);
 		final FormData formData_9 = new FormData();
 		formData_9.top = new FormAttachment(defFileCombo, -23, SWT.BOTTOM);
@@ -407,7 +407,40 @@
 					}
 				}
 			});
-			}
+		}
+	}
+
+	public Combo getDefFileCombo() {
+		return defFileViewer.getCombo();
+	}
+
+	public Button getBrowseButton() {
+		return browseButton;
+	}
+
+	public Button getExportUnfrozenButton() {
+		return exportUnfrozenButton;
+	}
+
+	public Button getDontExportLibraryButton() {
+		return dontExportLibraryButton;
 	}
+
+	public Button getNoStrictdefButton() {
+		return noStrictdefButton;
+	}
+
+	public Button getCompressTargetExecutableButton() {
+		return compressTargetExecutableButton;
+	}
+
+	public Text getLinkAsText() {
+		return linkAsText;
+	}
+
+	public Text getWin32BaseAddrText() {
+		return baseAddrText;
+	}
+
 }
 
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/MMPEditor.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/MMPEditor.java	Tue May 12 16:23:41 2009 -0500
@@ -353,4 +353,21 @@
 			}
 		}
 	}
+
+	public OverviewPage getOverviewPage() {
+		return overviewPage;
+	}
+
+	public LibrariesPage getLibrariesPage() {
+		return librariesPage;
+	}
+
+	public SourcesPage getSourcesPage() {
+		return sourcesPage;
+	}
+
+	public OptionsPage getOptionsPage() {
+		return optionsPage;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/MissingSourcesSectionPart.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/MissingSourcesSectionPart.java	Tue May 12 16:23:41 2009 -0500
@@ -175,4 +175,13 @@
 			page.refresh();
 		}
 	}
+
+	public TableViewer getTableViewer() {
+		return tableViewer;
+	}
+
+	public Button getRemoveButton() {
+		return removeButton;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/OptionsPage.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/OptionsPage.java	Tue May 12 16:23:41 2009 -0500
@@ -111,4 +111,20 @@
 		}
 	}
 
+	public LinkerSectionPart getLinkerSection() {
+		return linkerSectionPart;
+	}
+
+	public RuntimeSectionPart getRuntimeSection() {
+		return runtimeSectionPart;
+	}
+
+	public CompilerSectionPart getCompilerSection() {
+		return compilerSectionPart;
+	}
+
+	public KernelSectionPart getKernelSection() {
+		return kernelSectionPart;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/OverviewPage.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/OverviewPage.java	Tue May 12 16:23:41 2009 -0500
@@ -68,6 +68,11 @@
 	private Label targetPathLabel;
 	private Text targetNameText;
 	private Label targetNameLabel;
+	private ImageHyperlink sourceFilesImageHyperlink;
+	private ImageHyperlink librariesImageHyperlink;
+	private ImageHyperlink optionsImageHyperlink;
+	private Hyperlink addAUserHyperlink;
+	private Hyperlink addASystemHyperlink;
 
 	// target types known not to require UID2. Although GUI EXEs do
 	// require UID, there's no unambiguous distinction between GUI and
@@ -202,7 +207,7 @@
 		toolkit.paintBordersFor(composite_1);
 		projectDefinitionSection.setClient(composite_1);
 
-		final ImageHyperlink sourceFilesImageHyperlink = toolkit.createImageHyperlink(composite_1, SWT.NONE);
+		sourceFilesImageHyperlink = toolkit.createImageHyperlink(composite_1, SWT.NONE);
 		sourceFilesImageHyperlink.setImage(ResourceManager.getPluginImage(ProjectUIPlugin.getDefault(), "icons/pencil.png")); //$NON-NLS-1$
 		sourceFilesImageHyperlink.setText(Messages.OverviewPage_sourcesLinkTitle);
 		sourceFilesImageHyperlink.addHyperlinkListener(new HyperlinkAdapter() {
@@ -213,7 +218,7 @@
 
 		toolkit.createLabel(composite_1, Messages.OverviewPage_sourcesLinkDescription, SWT.WRAP);
 
-		final ImageHyperlink librariesImageHyperlink = toolkit.createImageHyperlink(composite_1, SWT.NONE);
+		librariesImageHyperlink = toolkit.createImageHyperlink(composite_1, SWT.NONE);
 		librariesImageHyperlink.setImage(ResourceManager.getPluginImage(ProjectUIPlugin.getDefault(), "icons/pencil.png")); //$NON-NLS-1$
 		librariesImageHyperlink.setText(Messages.OverviewPage_libsLinktitle);
 		librariesImageHyperlink.addHyperlinkListener(new HyperlinkAdapter() {
@@ -224,7 +229,7 @@
 
 		toolkit.createLabel(composite_1, Messages.OverviewPage_libsLinkDescription, SWT.WRAP);
 
-		final ImageHyperlink optionsImageHyperlink = toolkit.createImageHyperlink(composite_1, SWT.NONE);
+		optionsImageHyperlink = toolkit.createImageHyperlink(composite_1, SWT.NONE);
 		optionsImageHyperlink.setImage(ResourceManager.getPluginImage(ProjectUIPlugin.getDefault(), "icons/pencil.png")); //$NON-NLS-1$
 		optionsImageHyperlink.setText(Messages.OverviewPage_optionsLinkTitle);
 		optionsImageHyperlink.addHyperlinkListener(new HyperlinkAdapter() {
@@ -246,7 +251,7 @@
 		toolkit.paintBordersFor(composite_2);
 		commonTasksSection.setClient(composite_2);
 
-		final Hyperlink addAUserHyperlink = toolkit.createHyperlink(composite_2, Messages.OverviewPage_addUserPathLink, SWT.NONE);
+		addAUserHyperlink = toolkit.createHyperlink(composite_2, Messages.OverviewPage_addUserPathLink, SWT.NONE);
 		final FormData formData_6 = new FormData();
 		formData_6.top = new FormAttachment(0, 5);
 		formData_6.left = new FormAttachment(0, 5);
@@ -257,7 +262,7 @@
 			}		
 		});
 
-		final Hyperlink addASystemHyperlink = toolkit.createHyperlink(composite_2, Messages.OverviewPage_addSysPathLink, SWT.NONE);
+		addASystemHyperlink = toolkit.createHyperlink(composite_2, Messages.OverviewPage_addSysPathLink, SWT.NONE);
 		final FormData formData_7 = new FormData();
 		formData_7.top = new FormAttachment(addAUserHyperlink, 5, SWT.BOTTOM);
 		formData_7.left = new FormAttachment(addAUserHyperlink, 0, SWT.LEFT);
@@ -403,4 +408,49 @@
 		editorContext.editor.addPageChangedListener(listener);
 		editorContext.editor.setActivePage(MMPEditorContext.OPTIONS_PAGE_ID);
 	}
+
+	public Label getActiveBuildConfigLabel() {
+		return activeBuildConfigLabel;
+	}
+
+	public Text getTargetNameText() {
+		return targetNameText;
+	}
+
+	public Text getTargetPathText() {
+		return targetPathText;
+	}
+
+	public Text getUID2Text() {
+		return uid2Text;
+	}
+
+	public Text getUID3Text() {
+		return uid3Text;
+	}
+
+	public Combo getTargetTypeCombo() {
+		return targetTypeViewer.getCombo();
+	}
+
+	public Hyperlink getAddAUserIncludeHyperlink() {
+		return addAUserHyperlink;
+	}
+
+	public Hyperlink getAddASystemIncludeHyperlink() {
+		return addASystemHyperlink;
+	}
+
+	public ImageHyperlink getSourcesHyperlink() {
+		return sourceFilesImageHyperlink;
+	}
+
+	public ImageHyperlink getLibrariesHyperlink() {
+		return librariesImageHyperlink;
+	}
+
+	public ImageHyperlink getOptionsHyperlink() {
+		return optionsImageHyperlink;
+	}
+	
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/ResourcesSectionPart.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/ResourcesSectionPart.java	Tue May 12 16:23:41 2009 -0500
@@ -363,4 +363,21 @@
 		editButton.setEnabled(editEnabled);
 		removeButton.setEnabled(removeEnabled);
 	}
+
+	public TreeViewer getTreeViewer() {
+		return resourceTreeViewer;
+	}
+
+	public Button getAddButton() {
+		return addButton;
+	}
+
+	public Button getEditButton() {
+		return editButton;
+	}
+
+	public Button getRemoveButton() {
+		return removeButton;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/RuntimeSectionPart.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/RuntimeSectionPart.java	Tue May 12 16:23:41 2009 -0500
@@ -60,6 +60,7 @@
 	private Text minHeapSizeText;
 	private Button debuggableButton;
 	private ComboViewer pagingModeViewer;
+	private CapabilitiesDialog capabilitiesDialog;
 	
 	static final String DEFAULT_MIN_HEAP = "0x1000"; //$NON-NLS-1$
 	static final String DEFAULT_MAX_HEAP = "0x100000"; //$NON-NLS-1$
@@ -500,10 +501,10 @@
 
 	private void doChooseCapabilities() {
 		List<String> capabilities = editorContext.mmpView.getListArgumentSettings().get(EMMPStatement.CAPABILITY);
-		CapabilitiesDialog dialog = new CapabilitiesDialog(getSection().getShell(), capabilities.toArray());
-		int dlgResult = dialog.open();
+		capabilitiesDialog = new CapabilitiesDialog(getSection().getShell(), capabilities.toArray());
+		int dlgResult = capabilitiesDialog.open();
 		if (dlgResult == Dialog.OK) {
-			Object[] checkedCapabilities = dialog.getCheckedCapabilities();
+			Object[] checkedCapabilities = capabilitiesDialog.getCheckedCapabilities();
 			List<Object> newList = new ArrayList<Object>();
 			for (Object obj : checkedCapabilities) {
 				newList.add(obj.toString());
@@ -568,4 +569,49 @@
 			}
 		}
 	}
+
+	public Button getChooseButton() {
+		return chooseButton;
+	}
+
+	public Text getCapabilitiesText() {
+		return capabilitiesText;
+	}
+
+	public Text getMinHeapSizeText() {
+		return minHeapSizeText;
+	}
+
+	public Text getMaxHeapSizeText() {
+		return maxHeapSizeText;
+	}
+
+	public Text getStackSizeText() {
+		return stackSizeText;
+	}
+
+	public Combo getProcessPriorityCombo() {
+		return processPriorityViewer.getCombo();
+	}
+
+	public Text getSecureIDText() {
+		return secureIDText;
+	}
+
+	public Text getVendorIDText() {
+		return vendorIDText;
+	}
+
+	public Button getDebuggableButton() {
+		return debuggableButton;
+	}
+	
+	public Combo getPagingModeCombo() {
+		return pagingModeViewer.getCombo();
+	}
+
+	public CapabilitiesDialog getCapabilitiesDialog() {
+		return capabilitiesDialog;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/SourcesPage.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/SourcesPage.java	Tue May 12 16:23:41 2009 -0500
@@ -124,4 +124,16 @@
 		}
 	}
 
+	public SourcesSectionPart getSourcesSection() {
+		return sourcesSection;
+	}
+
+	public ResourcesSectionPart getReourcesSection() {
+		return resourcesSection;
+	}
+
+	public MissingSourcesSectionPart getMissingSourcesSection() {
+		return missingSourcesSectionPart;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/SourcesSectionPart.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/SourcesSectionPart.java	Tue May 12 16:23:41 2009 -0500
@@ -114,4 +114,9 @@
 	public List<IPath> getMissingFilePaths() {
 		return missingFilePaths;
 	}
+
+	public SourceSelectionViewer getTreeViewer() {
+		return sourceViewer;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/AddLibraryDialog.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/AddLibraryDialog.java	Tue May 12 16:23:41 2009 -0500
@@ -183,4 +183,13 @@
 		libraryViewer.refresh();
 		libraryViewer.getControl().redraw();
 	}
+
+	public Text getLibraryText() {
+		return libraryTextControl;
+	}
+
+	public TableViewer getLibraryViewer() {
+		return libraryViewer;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/CapabilitiesDialog.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/CapabilitiesDialog.java	Tue May 12 16:23:41 2009 -0500
@@ -114,4 +114,8 @@
 		return result;
 	}
 
+	public CheckboxTableViewer getCapabilitiesViewer() {
+		return capabilitiesViewer;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/ChooseDirectoryComposite.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/ChooseDirectoryComposite.java	Tue May 12 16:23:41 2009 -0500
@@ -223,4 +223,13 @@
 	public void setDefaultFocus() {
 		pathViewer.getControl().setFocus();
 	}
+
+	public Combo getPathViewerCombo() {
+		return pathViewer.getCombo();
+	}
+
+	public Button getBrowseButton() {
+		return browseButton;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/ChooseFileComposite.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/ChooseFileComposite.java	Tue May 12 16:23:41 2009 -0500
@@ -54,6 +54,7 @@
 	private final String fileViewerLabel;
 	
 	private ComboViewer filePathViewer;
+	private Button browseButton;
 
 	@SuppressWarnings("unused") //$NON-NLS-1$
 	private boolean modifyingFilePathViewer;
@@ -124,7 +125,7 @@
 		fileCombo.setLayoutData(new GridData(180, SWT.DEFAULT));
 		filePathViewer.setInput(new Object());
 
-		final Button browseButton = new Button(this, SWT.NONE);
+		browseButton = new Button(this, SWT.NONE);
 		final GridData gridData_5 = new GridData();
 		gridData_5.horizontalIndent = 10;
 		browseButton.setLayoutData(gridData_5);
@@ -235,4 +236,13 @@
 	public void addSelectionChangedListener(ISelectionChangedListener listener) {
 		filePathViewer.addSelectionChangedListener(listener);
 	}
+
+	public Combo getPathViewerCombo() {
+		return filePathViewer.getCombo();
+	}
+
+	public Button getBrowseButton() {
+		return browseButton;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/EditLibraryDialog.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/EditLibraryDialog.java	Tue May 12 16:23:41 2009 -0500
@@ -118,4 +118,8 @@
 		WorkbenchUtils.setHelpContextId(newShell, HelpContexts.EDIT_LIBRARY_DIALOG);
 	}
 
+	public Text getLibraryNameText() {
+		return libraryTextControl;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/IncludeDirectoryDialog.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/IncludeDirectoryDialog.java	Tue May 12 16:23:41 2009 -0500
@@ -119,4 +119,13 @@
 		newShell.setText(Messages.getString("IncludeDirectoryDialog.dialogTitle")); //$NON-NLS-1$
 		WorkbenchUtils.setHelpContextId(newShell, HelpContexts.INCLUDE_DIRECTORY_DIALOG);
 	}
+
+	public Combo getIncludeDirectoryCombo() {
+		return chooseDirectoryComposite.getPathViewerCombo();
+	}
+
+	public Button getBrowseButton() {
+		return chooseDirectoryComposite.getBrowseButton();
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/LanguageSelectionDialog.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/LanguageSelectionDialog.java	Tue May 12 16:23:41 2009 -0500
@@ -16,6 +16,7 @@
 */
 package com.nokia.carbide.cpp.internal.project.ui.mmpEditor.dialogs;
 
+import org.eclipse.jface.viewers.CheckboxTableViewer;
 import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.swt.widgets.Shell;
@@ -39,4 +40,8 @@
 		WorkbenchUtils.setHelpContextId(shell, HelpContexts.LANGUAGES_DIALOG);
 	}
 
+	public CheckboxTableViewer getTableViewer() {
+		return getViewer();
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/MMPFilePathDialog.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/MMPFilePathDialog.java	Tue May 12 16:23:41 2009 -0500
@@ -133,4 +133,13 @@
 		newShell.setText(Messages.getString("MMPFilePathDialog.dialogTitle"));  //$NON-NLS-1$
 		WorkbenchUtils.setHelpContextId(newShell, HelpContexts.MMPFILEPATH_DIALOG);
 	}
+
+	public Combo getFilePathCombo() {
+		return chooseFileComposite.getPathViewerCombo();
+	}
+
+	public Button getBrowseButton() {
+		return chooseFileComposite.getBrowseButton();
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/ResourceBlockDialog.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/ResourceBlockDialog.java	Tue May 12 16:23:41 2009 -0500
@@ -371,4 +371,41 @@
 					EGeneratedHeaderFlags.Header : EGeneratedHeaderFlags.NoHeader);
 		}
 	}
+
+	public Combo getRSSFilePathCombo() {
+		return chooseFileComposite.getPathViewerCombo();
+	}
+
+	public Button getBrowseButton() {
+		return chooseFileComposite.getBrowseButton();
+	}
+
+	public Text getTargetFileNameText() {
+		return targetFileText;
+	}
+
+	public Combo getTargetFilePathCombo() {
+		return targetPathViewer.getCombo();
+	}
+
+	public Text getUID2Text() {
+		return uid2Text;
+	}
+
+	public Text getUID3Text() {
+		return uid3Text;
+	}
+
+	public Button getOnlyGenerateHeaderButton() {
+		return onlyGenerateHeaderButton;
+	}
+
+	public Button getGenerateHeaderButton() {
+		return generateHeaderButton;
+	}
+
+	public Button getDontGenerateHeaderButton() {
+		return dontGenerateHeaderButton;
+	}
+
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/ToolOptionsDialog.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/dialogs/ToolOptionsDialog.java	Tue May 12 16:23:41 2009 -0500
@@ -34,7 +34,7 @@
 
 public class ToolOptionsDialog extends ValidatingDialog {
 
-		private ComboViewer toolChainViewer;
+	private ComboViewer toolChainViewer;
 	private Text optionsText;
 	
 	private String theToolChain;
@@ -262,4 +262,13 @@
 		newShell.setText(title);
 		WorkbenchUtils.setHelpContextId(newShell, HelpContexts.TOOL_OPTIONS_DIALOG);
 	}
+
+	public Combo getToolChainCombo() {
+		return toolChainViewer.getCombo();
+	}
+
+	public Text getOptionsText() {
+		return optionsText;
+	}
+
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/AddLibraryDialogTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.mmpEditor.testapi;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Text;
+
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.dialogs.AddLibraryDialog;
+
+/**
+ * An interface for testing the Add Library dialog of the MMP Editor
+ */
+public class AddLibraryDialogTester {
+
+	/**
+	 * Retrieves the "Library name" text widget of the Add Library dialog.
+	 * @param dialog - Add Library dialog provided by caller
+	 * @return text widget if success, null otherwise
+	 */
+	public static Text getLibraryText(Dialog dialog) {
+		if (dialog != null && dialog instanceof AddLibraryDialog) {
+			AddLibraryDialog aDialog = (AddLibraryDialog) dialog;
+			return aDialog.getLibraryText();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the library table viewer of the Add Library dialog.
+	 * @param dialog - Add Library dialog provided by caller
+	 * @return table viewer if success, null otherwise
+	 */
+	public static TableViewer getLibraryViewer(Dialog dialog) {
+		if (dialog != null && dialog instanceof AddLibraryDialog) {
+			AddLibraryDialog aDialog = (AddLibraryDialog) dialog;
+			return aDialog.getLibraryViewer();
+		}
+		return null;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/CapabilitiesDialogTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.mmpEditor.testapi;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.viewers.TableViewer;
+
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.dialogs.CapabilitiesDialog;
+
+/**
+ * An interface for testing the Choose Capabilities dialog of the MMP Editor
+ */
+public class CapabilitiesDialogTester {
+
+	/**
+	 * Retrieves the capabilities table viewer of the Choose Capabilities dialog.
+	 * @param dialog - Choose Capabilities dialog provided by caller
+	 * @return table viewer if success, null otherwise
+	 */
+	public static TableViewer getCapabilitiesViewer(Dialog dialog) {
+		if (dialog != null && dialog instanceof CapabilitiesDialog) {
+			CapabilitiesDialog cDialog = (CapabilitiesDialog) dialog;
+			return cDialog.getCapabilitiesViewer();
+		}
+		return null;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/EditLibraryDialogTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,56 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.mmpEditor.testapi;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.widgets.Text;
+
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.dialogs.EditLibraryDialog;
+
+/**
+ * An interface for testing the Edit Library dialog of the MMP Editor
+ */
+public class EditLibraryDialogTester {
+
+	/**
+	 * Retrieves the "Library name" string of the Choose Capabilities dialog.
+	 * @param dialog - Edit Library dialog provided by caller
+	 * @return string if success, null otherwise
+	 */
+	public static String getLibraryName(Dialog dialog) {
+		if (dialog != null && dialog instanceof EditLibraryDialog) {
+			EditLibraryDialog eDialog = (EditLibraryDialog) dialog;
+			return eDialog.getLibraryName();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Library name" text widget of the Choose Capabilities dialog.
+	 * @param dialog - Edit Library dialog provided by caller
+	 * @return text widget if success, null otherwise
+	 */
+	public static Text getLibraryNameText(Dialog dialog) {
+		if (dialog != null && dialog instanceof EditLibraryDialog) {
+			EditLibraryDialog eDialog = (EditLibraryDialog) dialog;
+			return eDialog.getLibraryNameText();
+		}
+		return null;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/IncludeDirectoryDialogTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.mmpEditor.testapi;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.dialogs.IncludeDirectoryDialog;
+
+/**
+ * An interface for testing the Include Directory dialog of the MMP Editor
+ */
+public class IncludeDirectoryDialogTester {
+
+	/**
+	 * Retrieves the "Include directory" combo widget of the Include Directory dialog.
+	 * @param dialog - Include Directory dialog provided by caller
+	 * @return combo widget if success, null otherwise
+	 */
+	public static Combo getIncludeDirectoryCombo(Dialog dialog) {
+		if (dialog != null && dialog instanceof IncludeDirectoryDialog) {
+			IncludeDirectoryDialog iDialog = (IncludeDirectoryDialog) dialog;
+			return iDialog.getIncludeDirectoryCombo();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Browse" button widget of the Include Directory dialog.
+	 * @param dialog - Include Directory dialog provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getBrowseButton(Dialog dialog) {
+		if (dialog != null && dialog instanceof IncludeDirectoryDialog) {
+			IncludeDirectoryDialog iDialog = (IncludeDirectoryDialog) dialog;
+			return iDialog.getBrowseButton();
+		}
+		return null;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/LanguageSelectionDialogTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.mmpEditor.testapi;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.viewers.CheckboxTableViewer;
+
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.dialogs.LanguageSelectionDialog;
+
+/**
+ * An interface for testing the Language Selection dialog of the MMP Editor
+ */
+public class LanguageSelectionDialogTester {
+
+	/**
+	 * Retrieves the table viewer of the Language Selection dialog.
+	 * @param dialog - Language Selection dialog provided by caller
+	 * @return table viewer if success, null otherwise
+	 */
+	public static CheckboxTableViewer getTableViewer(Dialog dialog) {
+		if (dialog != null && dialog instanceof LanguageSelectionDialog) {
+			LanguageSelectionDialog lDialog = (LanguageSelectionDialog) dialog;
+			return lDialog.getTableViewer();
+		}
+		return null;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/LibrariesPageTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,203 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.mmpEditor.testapi;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.ui.forms.SectionPart;
+import org.eclipse.ui.forms.editor.FormPage;
+
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.LibrariesPage;
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.LibrarySectionPart;
+
+/**
+ * An interface for testing the Libraries page of the MMP Editor
+ */
+public class LibrariesPageTester {
+
+	/**
+	 * Retrieves the "Libraries" section of the Libraries page.
+	 * @param page - Libraries page provided by caller
+	 * @return - section part if success, null otherwise
+	 */
+	public static SectionPart getMainLibrariesSection(FormPage page) {
+		if (page != null && page instanceof LibrariesPage) {
+			LibrariesPage librariesPage = (LibrariesPage) page;
+			return librariesPage.getMainLibrariesSection();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Static Libraries" section of the Libraries page.
+	 * @param page - Libraries page provided by caller
+	 * @return - section part if success, null otherwise
+	 */
+	public static SectionPart getStaticLibrariesSection(FormPage page) {
+		if (page != null && page instanceof LibrariesPage) {
+			LibrariesPage librariesPage = (LibrariesPage) page;
+			return librariesPage.getStaticLibrariesSection();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Debug Libraries" section of the Libraries page.
+	 * @param page - Libraries page provided by caller
+	 * @return - section part if success, null otherwise
+	 */
+	public static SectionPart getDebugLibrariesSection(FormPage page) {
+		if (page != null && page instanceof LibrariesPage) {
+			LibrariesPage librariesPage = (LibrariesPage) page;
+			return librariesPage.getDebugLibrariesSection();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Win32 Libraries" section of the Libraries page.
+	 * @param page - Libraries page provided by caller
+	 * @return - section part if success, null otherwise
+	 */
+	public static SectionPart getWin32LibrariesSection(FormPage page) {
+		if (page != null && page instanceof LibrariesPage) {
+			LibrariesPage librariesPage = (LibrariesPage) page;
+			return librariesPage.getWin32LibrariesSection();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "ASSP Libraries" section of the Libraries page.
+	 * @param page - Libraries page provided by caller
+	 * @return - section part if success, null otherwise
+	 */
+	public static SectionPart getASSPLibrariesSection(FormPage page) {
+		if (page != null && page instanceof LibrariesPage) {
+			LibrariesPage librariesPage = (LibrariesPage) page;
+			return librariesPage.getASSPLibrariesSection();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the table viewer of a Libraries section.
+	 * @param part - Libraries section part provided by caller
+	 * @return - table viewer if success, null otherwise
+	 */
+	public static TableViewer getTableViewer(SectionPart part) {
+		if (part != null && part instanceof LibrarySectionPart) {
+			LibrarySectionPart lPart = (LibrarySectionPart) part;
+			return lPart.getTableViewer();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Add" button widget of a Libraries section.
+	 * @param part - Libraries section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getAddButton(SectionPart part) {
+		if (part != null && part instanceof LibrarySectionPart) {
+			LibrarySectionPart lPart = (LibrarySectionPart) part;
+			return lPart.getAddButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Edit" button widget of a Libraries section.
+	 * @param part - Libraries section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getEditButton(SectionPart part) {
+		if (part != null && part instanceof LibrarySectionPart) {
+			LibrarySectionPart lPart = (LibrarySectionPart) part;
+			return lPart.getEditButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Up" button widget of a Libraries section.
+	 * @param part - Libraries section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getUpButton(SectionPart part) {
+		if (part != null && part instanceof LibrarySectionPart) {
+			LibrarySectionPart lPart = (LibrarySectionPart) part;
+			return lPart.getUpButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Down" button widget of a Libraries section.
+	 * @param part - Libraries section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getDownButton(SectionPart part) {
+		if (part != null && part instanceof LibrarySectionPart) {
+			LibrarySectionPart lPart = (LibrarySectionPart) part;
+			return lPart.getDownButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Remove" button widget of a Libraries section.
+	 * @param part - Libraries section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getRemovepButton(SectionPart part) {
+		if (part != null && part instanceof LibrarySectionPart) {
+			LibrarySectionPart lPart = (LibrarySectionPart) part;
+			return lPart.getRemovepButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the add library dialog launched of a Libraries section.
+	 * @param part - Libraries section part provided by caller
+	 * @return - add library dialog if success, null otherwise
+	 */
+	public static Dialog getAddLibraryDialog(SectionPart part) {
+		if (part != null && part instanceof LibrarySectionPart) {
+			LibrarySectionPart lPart = (LibrarySectionPart) part;
+			return lPart.getAddLibraryDialog();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the edit library dialog launched of a Libraries section.
+	 * @param part - Libraries section part provided by caller
+	 * @return - edit library dialog if success, null otherwise
+	 */
+	public static Dialog getEditLibraryDialog(SectionPart part) {
+		if (part != null && part instanceof LibrarySectionPart) {
+			LibrarySectionPart lPart = (LibrarySectionPart) part;
+			return lPart.getEditLibraryDialog();
+		}
+		return null;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/MMPEditorTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,96 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.mmpEditor.testapi;
+
+import org.eclipse.ui.editors.text.TextEditor;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.forms.editor.FormPage;
+
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.MMPEditor;
+
+/**
+ * An interface for testing the MMP Editor
+ */
+public class MMPEditorTester {
+
+	/**
+	 * Opens the Overview page of the MMP editor and returns the page.
+	 * @param editor - editor part provided by caller
+	 * @return Overview page if success, null otherwise
+	 */
+	public static FormPage getOverviewPage(FormEditor editor) {
+		if (editor != null && editor instanceof MMPEditor) {
+			MMPEditor mmpEditor = (MMPEditor) editor;
+			return mmpEditor.getOverviewPage();
+		}
+		return null;
+	}
+
+	/**
+	 * Opens the Sources page of the MMP editor and returns the page.
+	 * @param editor - editor part provided by caller
+	 * @return Sources page if success, null otherwise
+	 */
+	public static FormPage getSourcesPage(FormEditor editor) {
+		if (editor != null && editor instanceof MMPEditor) {
+			MMPEditor mmpEditor = (MMPEditor) editor;
+			return mmpEditor.getSourcesPage();
+		}
+		return null;
+	}
+
+	/**
+	 * Opens the Libraries page of the MMP editor and returns the page.
+	 * @param editor - editor part provided by caller
+	 * @return Libraries page if success, null otherwise
+	 */
+	public static FormPage getLibrariesPage(FormEditor editor) {
+		if (editor != null && editor instanceof MMPEditor) {
+			MMPEditor mmpEditor = (MMPEditor) editor;
+			return mmpEditor.getLibrariesPage();
+		}
+		return null;
+	}
+
+	/**
+	 * Opens the Options page of the MMP editor and returns the page.
+	 * @param editor - editor part provided by caller
+	 * @return Options page if success, null otherwise
+	 */
+	public static FormPage getOptionsPage(FormEditor editor) {
+		if (editor != null && editor instanceof MMPEditor) {
+			MMPEditor mmpEditor = (MMPEditor) editor;
+			return mmpEditor.getOptionsPage();
+		}
+		return null;
+	}
+
+	/**
+	 * Opens the text editor page of the MMP editor and returns the page.
+	 * @param editor - editor part provided by caller
+	 * @return text editor page if success, null otherwise
+	 */
+	public static TextEditor getTextEditorPage(FormEditor editor) {
+		if (editor != null && editor instanceof MMPEditor) {
+			MMPEditor mmpEditor = (MMPEditor) editor;
+			return mmpEditor.getTextEditorPage();
+		}
+		return null;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/MMPFilePathDialogTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.mmpEditor.testapi;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.dialogs.MMPFilePathDialog;
+
+/**
+ * An interface for testing the MMP FilePath dialog of the MMP Editor
+ */
+public class MMPFilePathDialogTester {
+
+	/**
+	 * Retrieves the "File path" combo widget of the MMP FilePath dialog.
+	 * @param dialog - MMP FilePath dialog provided by caller
+	 * @return combo widget if success, null otherwise
+	 */
+	public static Combo getFilePathCombo(Dialog dialog) {
+		if (dialog != null && dialog instanceof MMPFilePathDialog) {
+			MMPFilePathDialog mDialog = (MMPFilePathDialog) dialog;
+			return mDialog.getFilePathCombo();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "browse" button widget of the MMP FilePath dialog.
+	 * @param dialog - MMP FilePath dialog provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getBrowseButton(Dialog dialog) {
+		if (dialog != null && dialog instanceof MMPFilePathDialog) {
+			MMPFilePathDialog mDialog = (MMPFilePathDialog) dialog;
+			return mDialog.getBrowseButton();
+		}
+		return null;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/OptionsPageTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,468 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.mmpEditor.testapi;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.SectionPart;
+import org.eclipse.ui.forms.editor.FormPage;
+
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.CompilerSectionPart;
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.KernelSectionPart;
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.LinkerSectionPart;
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.OptionsPage;
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.RuntimeSectionPart;
+
+/**
+ * An interface for testing the Options page of the MMP Editor
+ */
+public class OptionsPageTester {
+
+	/**
+	 * Retrieves the "Runtime" section of the Options page.
+	 * @param page - Options page provided by caller
+	 * @return - section part if success, null otherwise
+	 */
+	public static SectionPart getRuntimeSection(FormPage page) {
+		if (page != null && page instanceof OptionsPage) {
+			OptionsPage optionsPage = (OptionsPage) page;
+			return optionsPage.getRuntimeSection();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Compiler" section of the Options page.
+	 * @param page - Options page provided by caller
+	 * @return - section part if success, null otherwise
+	 */
+	public static SectionPart getCompilerSection(FormPage page) {
+		if (page != null && page instanceof OptionsPage) {
+			OptionsPage optionsPage = (OptionsPage) page;
+			return optionsPage.getCompilerSection();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Linker" section of the Options page.
+	 * @param page - Options page provided by caller
+	 * @return - section part if success, null otherwise
+	 */
+	public static SectionPart getLinkerSection(FormPage page) {
+		if (page != null && page instanceof OptionsPage) {
+			OptionsPage optionsPage = (OptionsPage) page;
+			return optionsPage.getLinkerSection();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Kernel" section of the Options page.
+	 * @param page - Options page provided by caller
+	 * @return - section part if success, null otherwise
+	 */
+	public static SectionPart getKernelSection(FormPage page) {
+		if (page != null && page instanceof OptionsPage) {
+			OptionsPage optionsPage = (OptionsPage) page;
+			return optionsPage.getKernelSection();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Choose" button widget of the Runtime section.
+	 * @param part - Runtime section provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getChooseButton(SectionPart part) {
+		if (part != null && part instanceof RuntimeSectionPart) {
+			RuntimeSectionPart rPart = (RuntimeSectionPart) part;
+			return rPart.getChooseButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Capabilities" text widget of the Runtime section.
+	 * @param part - Runtime section provided by caller
+	 * @return - text widget if success, null otherwise
+	 */
+	public static Text getCapabilitiesText(SectionPart part) {
+		if (part != null && part instanceof RuntimeSectionPart) {
+			RuntimeSectionPart rPart = (RuntimeSectionPart) part;
+			return rPart.getCapabilitiesText();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Minimum heap size" text widget of the Runtime section.
+	 * @param part - Runtime section provided by caller
+	 * @return - text widget if success, null otherwise
+	 */
+	public static Text getMinHeapSizeText(SectionPart part) {
+		if (part != null && part instanceof RuntimeSectionPart) {
+			RuntimeSectionPart rPart = (RuntimeSectionPart) part;
+			return rPart.getMinHeapSizeText();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Maximum heap size" text widget of the Runtime section.
+	 * @param part - Runtime section provided by caller
+	 * @return - text widget if success, null otherwise
+	 */
+	public static Text getMaxHeapSizeText(SectionPart part) {
+		if (part != null && part instanceof RuntimeSectionPart) {
+			RuntimeSectionPart rPart = (RuntimeSectionPart) part;
+			return rPart.getMaxHeapSizeText();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Stack size" text widget of the Runtime section.
+	 * @param part - Runtime section provided by caller
+	 * @return - text widget if success, null otherwise
+	 */
+	public static Text getStackSizeText(SectionPart part) {
+		if (part != null && part instanceof RuntimeSectionPart) {
+			RuntimeSectionPart rPart = (RuntimeSectionPart) part;
+			return rPart.getStackSizeText();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Process priority" combo widget of the Runtime section.
+	 * @param part - Runtime section provided by caller
+	 * @return - combo widget if success, null otherwise
+	 */
+	public static Combo getProcessPriorityCombo(SectionPart part) {
+		if (part != null && part instanceof RuntimeSectionPart) {
+			RuntimeSectionPart rPart = (RuntimeSectionPart) part;
+			return rPart.getProcessPriorityCombo();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Secure ID" text widget of the Runtime section.
+	 * @param part - Runtime section provided by caller
+	 * @return - text widget if success, null otherwise
+	 */
+	public static Text getSecureIDText(SectionPart part) {
+		if (part != null && part instanceof RuntimeSectionPart) {
+			RuntimeSectionPart rPart = (RuntimeSectionPart) part;
+			return rPart.getSecureIDText();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Vendor ID" text widget of the Runtime section.
+	 * @param part - Runtime section provided by caller
+	 * @return - text widget if success, null otherwise
+	 */
+	public static Text getVendorIDText(SectionPart part) {
+		if (part != null && part instanceof RuntimeSectionPart) {
+			RuntimeSectionPart rPart = (RuntimeSectionPart) part;
+			return rPart.getVendorIDText();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Enable Debugging" button widget of the Runtime section.
+	 * @param part - Runtime section provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getDebuggableButton(SectionPart part) {
+		if (part != null && part instanceof RuntimeSectionPart) {
+			RuntimeSectionPart rPart = (RuntimeSectionPart) part;
+			return rPart.getDebuggableButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Paging mode" combo widget of the Runtime section.
+	 * @param part - Runtime section provided by caller
+	 * @return - combo widget if success, null otherwise
+	 */
+	public static Combo getPagingModeCombo(SectionPart part) {
+		if (part != null && part instanceof RuntimeSectionPart) {
+			RuntimeSectionPart rPart = (RuntimeSectionPart) part;
+			return rPart.getPagingModeCombo();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the capabilities dialog of the Runtime section.
+	 * @param part - Runtime section provided by caller
+	 * @return - capabilities dialog if success, null otherwise
+	 */
+	public static Dialog getCapabilitiesDialog(SectionPart part) {
+		if (part != null && part instanceof RuntimeSectionPart) {
+			RuntimeSectionPart rPart = (RuntimeSectionPart) part;
+			return rPart.getCapabilitiesDialog();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the compiler tree viewer of the Compiler section.
+	 * @param part - Compiler section provided by caller
+	 * @return - tree viewer if success, null otherwise
+	 */
+	public static TreeViewer getCompilerTreeViewer(SectionPart part) {
+		if (part != null && part instanceof CompilerSectionPart) {
+			CompilerSectionPart cPart = (CompilerSectionPart) part;
+			return cPart.getCompilerTreeViewer();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Add" button widget of the Compiler section.
+	 * @param part - Compiler section provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getAddButton(SectionPart part) {
+		if (part != null && part instanceof CompilerSectionPart) {
+			CompilerSectionPart cPart = (CompilerSectionPart) part;
+			return cPart.getAddButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Edit" button widget of the Compiler section.
+	 * @param part - Compiler section provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getEditButton(SectionPart part) {
+		if (part != null && part instanceof CompilerSectionPart) {
+			CompilerSectionPart cPart = (CompilerSectionPart) part;
+			return cPart.getEditButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Up" button widget of the Compiler section.
+	 * @param part - Compiler section provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getUpButton(SectionPart part) {
+		if (part != null && part instanceof CompilerSectionPart) {
+			CompilerSectionPart cPart = (CompilerSectionPart) part;
+			return cPart.getUpButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Down" button widget of the Compiler section.
+	 * @param part - Compiler section provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getDownButton(SectionPart part) {
+		if (part != null && part instanceof CompilerSectionPart) {
+			CompilerSectionPart cPart = (CompilerSectionPart) part;
+			return cPart.getDownButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Remove" button widget of the Compiler section.
+	 * @param part - Compiler section provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getRemoveButton(SectionPart part) {
+		if (part != null && part instanceof CompilerSectionPart) {
+			CompilerSectionPart cPart = (CompilerSectionPart) part;
+			return cPart.getRemoveButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Disable optimizations in debug build" button widget of the Compiler section.
+	 * @param part - Compiler section provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getSrcDebugButton(SectionPart part) {
+		if (part != null && part instanceof CompilerSectionPart) {
+			CompilerSectionPart cPart = (CompilerSectionPart) part;
+			return cPart.getSrcDebugButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Per-variant include dependencies" button widget of the Compiler section.
+	 * @param part - Compiler section provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getStrictDependenciesButton(SectionPart part) {
+		if (part != null && part instanceof CompilerSectionPart) {
+			CompilerSectionPart cPart = (CompilerSectionPart) part;
+			return cPart.getStrictDependenciesButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Linker definition file" combo widget of the Linker section.
+	 * @param part - Linker section provided by caller
+	 * @return - combo widget if success, null otherwise
+	 */
+	public static Combo getDefFileCombo(SectionPart part) {
+		if (part != null && part instanceof LinkerSectionPart) {
+			LinkerSectionPart lPart = (LinkerSectionPart) part;
+			return lPart.getDefFileCombo();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Browse" button widget of the Linker section.
+	 * @param part - Linker section provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getBrowseButton(SectionPart part) {
+		if (part != null && part instanceof LinkerSectionPart) {
+			LinkerSectionPart lPart = (LinkerSectionPart) part;
+			return lPart.getBrowseButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Export unfrozen" button widget of the Linker section.
+	 * @param part - Linker section provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getExportUnfrozenButton(SectionPart part) {
+		if (part != null && part instanceof LinkerSectionPart) {
+			LinkerSectionPart lPart = (LinkerSectionPart) part;
+			return lPart.getExportUnfrozenButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Don't export library" button widget of the Linker section.
+	 * @param part - Linker section provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getDontExportLibraryButton(SectionPart part) {
+		if (part != null && part instanceof LinkerSectionPart) {
+			LinkerSectionPart lPart = (LinkerSectionPart) part;
+			return lPart.getDontExportLibraryButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "No strict .def file" button widget of the Linker section.
+	 * @param part - Linker section provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getNoStrictdefButton(SectionPart part) {
+		if (part != null && part instanceof LinkerSectionPart) {
+			LinkerSectionPart lPart = (LinkerSectionPart) part;
+			return lPart.getNoStrictdefButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Compress target executable" button widget of the Linker section.
+	 * @param part - Linker section provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getCompressTargetExecutableButton(SectionPart part) {
+		if (part != null && part instanceof LinkerSectionPart) {
+			LinkerSectionPart lPart = (LinkerSectionPart) part;
+			return lPart.getCompressTargetExecutableButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Link as internal name" text widget of the Linker section.
+	 * @param part - Linker section provided by caller
+	 * @return - text widget if success, null otherwise
+	 */
+	public static Text getLinkAsText(SectionPart part) {
+		if (part != null && part instanceof LinkerSectionPart) {
+			LinkerSectionPart lPart = (LinkerSectionPart) part;
+			return lPart.getLinkAsText();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Win32 base address" text widget of the Linker section.
+	 * @param part - Linker section provided by caller
+	 * @return - text widget if success, null otherwise
+	 */
+	public static Text getWin32BaseAddrText(SectionPart part) {
+		if (part != null && part instanceof LinkerSectionPart) {
+			LinkerSectionPart lPart = (LinkerSectionPart) part;
+			return lPart.getWin32BaseAddrText();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "ASSP ABI" button widget of the Kernel section.
+	 * @param part - Kernel section provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getAsspAbiButton(SectionPart part) {
+		if (part != null && part instanceof KernelSectionPart) {
+			KernelSectionPart kPart = (KernelSectionPart) part;
+			return kPart.getAsspAbiButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "ASSP exports" button widget of the Kernel section.
+	 * @param part - Kernel section provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getAsspExportsButton(SectionPart part) {
+		if (part != null && part instanceof KernelSectionPart) {
+			KernelSectionPart kPart = (KernelSectionPart) part;
+			return kPart.getAsspExportsButton();
+		}
+		return null;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/OverviewPageTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,177 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.mmpEditor.testapi;
+
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.editor.FormPage;
+import org.eclipse.ui.forms.widgets.Hyperlink;
+import org.eclipse.ui.forms.widgets.ImageHyperlink;
+
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.OverviewPage;
+
+/**
+ * An interface for testing the Overview page of the MMP Editor
+ */
+public class OverviewPageTester {
+
+	/**
+	 * Retrieves the "Active Build Configuration" label of the Overview page.
+	 * @param page - Overview page provided by caller
+	 * @return - label widget if success, null otherwise
+	 */
+	public static Label getActiveBuildConfigLabel(FormPage page) {
+		if (page != null && page instanceof OverviewPage) {
+			OverviewPage overviewPage = (OverviewPage) page;
+			return overviewPage.getActiveBuildConfigLabel();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Target Name" text widget of the Overview page.
+	 * @param page - Overview page provided by caller
+	 * @return - text widget if success, null otherwise
+	 */
+	public static Text getTargetNameText(FormPage page) {
+		if (page != null && page instanceof OverviewPage) {
+			OverviewPage overviewPage = (OverviewPage) page;
+			return overviewPage.getTargetNameText();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Target Path" text widget of the Overview page.
+	 * @param page - Overview page provided by caller
+	 * @return - text widget if success, null otherwise
+	 */
+	public static Text getTargetPathText(FormPage page) {
+		if (page != null && page instanceof OverviewPage) {
+			OverviewPage overviewPage = (OverviewPage) page;
+			return overviewPage.getTargetPathText();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Target Type" combo widget of the Overview page.
+	 * @param page - Overview page provided by caller
+	 * @return - combo widget if success, null otherwise
+	 */
+	public static Combo getTargetTypeCombo(FormPage page) {
+		if (page != null && page instanceof OverviewPage) {
+			OverviewPage overviewPage = (OverviewPage) page;
+			return overviewPage.getTargetTypeCombo();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "UID 2" text widget of the Overview page.
+	 * @param page - Overview page provided by caller
+	 * @return - text widget if success, null otherwise
+	 */
+	public static Text getUID2Text(FormPage page) {
+		if (page != null && page instanceof OverviewPage) {
+			OverviewPage overviewPage = (OverviewPage) page;
+			return overviewPage.getUID2Text();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "UID 3" text widget of the Overview page.
+	 * @param page - Overview page provided by caller
+	 * @return - text widget if success, null otherwise
+	 */
+	public static Text getUID3Text(FormPage page) {
+		if (page != null && page instanceof OverviewPage) {
+			OverviewPage overviewPage = (OverviewPage) page;
+			return overviewPage.getUID3Text();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Add a user include path" hyperlink widget of the Overview page.
+	 * @param page - Overview page provided by caller
+	 * @return - hyperlink widget if success, null otherwise
+	 */
+	public static Hyperlink getAddAUserIncludeHyperlink(FormPage page) {
+		if (page != null && page instanceof OverviewPage) {
+			OverviewPage overviewPage = (OverviewPage) page;
+			return overviewPage.getAddAUserIncludeHyperlink();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Add a system include path" hyperlink widget of the Overview page.
+	 * @param page - Overview page provided by caller
+	 * @return - hyperlink widget if success, null otherwise
+	 */
+	public static Hyperlink getAddASystemIncludeHyperlink(FormPage page) {
+		if (page != null && page instanceof OverviewPage) {
+			OverviewPage overviewPage = (OverviewPage) page;
+			return overviewPage.getAddASystemIncludeHyperlink();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Sources" hyperlink widget of the Overview page.
+	 * @param page - Overview page provided by caller
+	 * @return - hyperlink widget if success, null otherwise
+	 */
+	public static ImageHyperlink getSourcesHyperlink(FormPage page) {
+		if (page != null && page instanceof OverviewPage) {
+			OverviewPage overviewPage = (OverviewPage) page;
+			return overviewPage.getSourcesHyperlink();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Libraries" hyperlink widget of the Overview page.
+	 * @param page - Overview page provided by caller
+	 * @return - hyperlink widget if success, null otherwise
+	 */
+	public static ImageHyperlink getLibrariesHyperlink(FormPage page) {
+		if (page != null && page instanceof OverviewPage) {
+			OverviewPage overviewPage = (OverviewPage) page;
+			return overviewPage.getLibrariesHyperlink();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Options" hyperlink widget of the Overview page.
+	 * @param page - Overview page provided by caller
+	 * @return - hyperlink widget if success, null otherwise
+	 */
+	public static ImageHyperlink getOptionsHyperlink(FormPage page) {
+		if (page != null && page instanceof OverviewPage) {
+			OverviewPage overviewPage = (OverviewPage) page;
+			return overviewPage.getOptionsHyperlink();
+		}
+		return null;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/ResourceBlockDialogTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,149 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.mmpEditor.testapi;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Text;
+
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.dialogs.ResourceBlockDialog;
+
+/**
+ * An interface for testing the Resource Block dialog of the MMP Editor
+ */
+public class ResourceBlockDialogTester {
+
+	/**
+	 * Retrieves the "RSS file path" combo widget of the Resource Block dialog.
+	 * @param dialog - Resource Block dialog provided by caller
+	 * @return combo widget if success, null otherwise
+	 */
+	public static Combo getRSSFilePathCombo(Dialog dialog) {
+		if (dialog != null && dialog instanceof ResourceBlockDialog) {
+			ResourceBlockDialog rDialog = (ResourceBlockDialog) dialog;
+			return rDialog.getRSSFilePathCombo();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Browse" button widget of the Resource Block dialog.
+	 * @param dialog - Resource Block dialog provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getBrowseButton(Dialog dialog) {
+		if (dialog != null && dialog instanceof ResourceBlockDialog) {
+			ResourceBlockDialog rDialog = (ResourceBlockDialog) dialog;
+			return rDialog.getBrowseButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Target file name" text widget of the Resource Block dialog.
+	 * @param dialog - Resource Block dialog provided by caller
+	 * @return text widget if success, null otherwise
+	 */
+	public static Text getTargetFileNameText(Dialog dialog) {
+		if (dialog != null && dialog instanceof ResourceBlockDialog) {
+			ResourceBlockDialog rDialog = (ResourceBlockDialog) dialog;
+			return rDialog.getTargetFileNameText();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Target file path" combo widget of the Resource Block dialog.
+	 * @param dialog - Resource Block dialog provided by caller
+	 * @return combo widget if success, null otherwise
+	 */
+	public static Combo getTargetFilePathCombo(Dialog dialog) {
+		if (dialog != null && dialog instanceof ResourceBlockDialog) {
+			ResourceBlockDialog rDialog = (ResourceBlockDialog) dialog;
+			return rDialog.getTargetFilePathCombo();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "UID 2" text widget of the Resource Block dialog.
+	 * @param dialog - Resource Block dialog provided by caller
+	 * @return text widget if success, null otherwise
+	 */
+	public static Text getUID2Text(Dialog dialog) {
+		if (dialog != null && dialog instanceof ResourceBlockDialog) {
+			ResourceBlockDialog rDialog = (ResourceBlockDialog) dialog;
+			return rDialog.getUID2Text();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "UID 3" text widget of the Resource Block dialog.
+	 * @param dialog - Resource Block dialog provided by caller
+	 * @return text widget if success, null otherwise
+	 */
+	public static Text getUID3Text(Dialog dialog) {
+		if (dialog != null && dialog instanceof ResourceBlockDialog) {
+			ResourceBlockDialog rDialog = (ResourceBlockDialog) dialog;
+			return rDialog.getUID3Text();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Header files only" button widget of the Resource Block dialog.
+	 * @param dialog - Resource Block dialog provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getOnlyGenerateHeaderButton(Dialog dialog) {
+		if (dialog != null && dialog instanceof ResourceBlockDialog) {
+			ResourceBlockDialog rDialog = (ResourceBlockDialog) dialog;
+			return rDialog.getOnlyGenerateHeaderButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Generate header file" button widget of the Resource Block dialog.
+	 * @param dialog - Resource Block dialog provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getGenerateHeaderButton(Dialog dialog) {
+		if (dialog != null && dialog instanceof ResourceBlockDialog) {
+			ResourceBlockDialog rDialog = (ResourceBlockDialog) dialog;
+			return rDialog.getGenerateHeaderButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Don't generate header file" button widget of the Resource Block dialog.
+	 * @param dialog - Resource Block dialog provided by caller
+	 * @return button widget if success, null otherwise
+	 */
+	public static Button getDontGenerateHeaderButton(Dialog dialog) {
+		if (dialog != null && dialog instanceof ResourceBlockDialog) {
+			ResourceBlockDialog rDialog = (ResourceBlockDialog) dialog;
+			return rDialog.getDontGenerateHeaderButton();
+		}
+		return null;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/SourcesPageTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,167 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.mmpEditor.testapi;
+
+import org.eclipse.jface.viewers.CheckboxTreeViewer;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.ui.forms.SectionPart;
+import org.eclipse.ui.forms.editor.FormPage;
+
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.MissingSourcesSectionPart;
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.ResourcesSectionPart;
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.SourcesPage;
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.SourcesSectionPart;
+
+/**
+ * An interface for testing the Sources page of the MMP Editor
+ */
+public class SourcesPageTester {
+
+	/**
+	 * Retrieves the "C/C++ Sources" section of the Sources page.
+	 * @param page - Overview page provided by caller
+	 * @return - section part if success, null otherwise
+	 */
+	public static SectionPart getSourcesSection(FormPage page) {
+		if (page != null && page instanceof SourcesPage) {
+			SourcesPage sourcesPage = (SourcesPage) page;
+			return sourcesPage.getSourcesSection();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Resources" section of the Sources page.
+	 * @param page - Overview page provided by caller
+	 * @return - section part if success, null otherwise
+	 */
+	public static SectionPart getReourcesSection(FormPage page) {
+		if (page != null && page instanceof SourcesPage) {
+			SourcesPage sourcesPage = (SourcesPage) page;
+			return sourcesPage.getReourcesSection();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Missing C/C++ Sources" section of the Sources page.
+	 * @param page - Overview page provided by caller
+	 * @return - section part if success, null otherwise
+	 */
+	public static SectionPart getMissingSourcesSection(FormPage page) {
+		if (page != null && page instanceof SourcesPage) {
+			SourcesPage sourcesPage = (SourcesPage) page;
+			return sourcesPage.getMissingSourcesSection();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the tree viewer of the "C/C++ Sources" section.
+	 * @param part - "C/C++ Sources" section part provided by caller
+	 * @return - tree viewer if success, null otherwise
+	 */
+	public static CheckboxTreeViewer getSourcesTreeViewer(SectionPart part) {
+		if (part != null && part instanceof SourcesSectionPart) {
+			SourcesSectionPart srcPart = (SourcesSectionPart) part;
+			return srcPart.getTreeViewer();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the tree viewer of the "Resources" section.
+	 * @param part - "Resources" section part provided by caller
+	 * @return - tree viewer if success, null otherwise
+	 */
+	public static TreeViewer getResourcesTreeViewer(SectionPart part) {
+		if (part != null && part instanceof ResourcesSectionPart) {
+			ResourcesSectionPart rsrcPart = (ResourcesSectionPart) part;
+			return rsrcPart.getTreeViewer();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Add" button widget of the "Resources" section.
+	 * @param part - "Resources" section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getResourceAddButton(SectionPart part) {
+		if (part != null && part instanceof ResourcesSectionPart) {
+			ResourcesSectionPart rsrcPart = (ResourcesSectionPart) part;
+			return rsrcPart.getAddButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Edit" button widget of the "Resources" section.
+	 * @param part - "Resources" section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getResourceEditButton(SectionPart part) {
+		if (part != null && part instanceof ResourcesSectionPart) {
+			ResourcesSectionPart rsrcPart = (ResourcesSectionPart) part;
+			return rsrcPart.getEditButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Remove" button widget of the "Resources" section.
+	 * @param part - "Resources" section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getResourceRemoveButton(SectionPart part) {
+		if (part != null && part instanceof ResourcesSectionPart) {
+			ResourcesSectionPart rsrcPart = (ResourcesSectionPart) part;
+			return rsrcPart.getRemoveButton();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the table viewer of the "Missing C/C++ Sources" section.
+	 * @param part - "Missing C/C++ Sources" section part provided by caller
+	 * @return - table viewer if success, null otherwise
+	 */
+	public static TableViewer getMissingSourcesTableViewer(SectionPart part) {
+		if (part != null && part instanceof MissingSourcesSectionPart) {
+			MissingSourcesSectionPart msrcPart = (MissingSourcesSectionPart) part;
+			return msrcPart.getTableViewer();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Remove" button widget of the "Missing C/C++ Sources" section.
+	 * @param part - "Missing C/C++ Sources" section part provided by caller
+	 * @return - button widget if success, null otherwise
+	 */
+	public static Button getMissingSourcesRemoveButton(SectionPart part) {
+		if (part != null && part instanceof MissingSourcesSectionPart) {
+			MissingSourcesSectionPart msrcPart = (MissingSourcesSectionPart) part;
+			return msrcPart.getRemoveButton();
+		}
+		return null;
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/testapi/ToolOptionsDialogTester.java	Tue May 12 16:23:41 2009 -0500
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.carbide.cpp.internal.project.ui.mmpEditor.testapi;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Text;
+
+import com.nokia.carbide.cpp.internal.project.ui.mmpEditor.dialogs.ToolOptionsDialog;
+
+/**
+ * An interface for testing the Tool Options dialog of the MMP Editor
+ */
+public class ToolOptionsDialogTester {
+
+	/**
+	 * Retrieves the "Tool chain" combo widget of the Tool Options dialog.
+	 * @param dialog - Tool Options dialog provided by caller
+	 * @return combo widget if success, null otherwise
+	 */
+	public static Combo getToolChainCombo(Dialog dialog) {
+		if (dialog != null && dialog instanceof ToolOptionsDialog) {
+			ToolOptionsDialog tDialog = (ToolOptionsDialog) dialog;
+			return tDialog.getToolChainCombo();
+		}
+		return null;
+	}
+
+	/**
+	 * Retrieves the "Options" text widget of the Tool Options dialog.
+	 * @param dialog - Tool Options dialog provided by caller
+	 * @return text widget if success, null otherwise
+	 */
+	public static Text getOptionsText(Dialog dialog) {
+		if (dialog != null && dialog instanceof ToolOptionsDialog) {
+			ToolOptionsDialog tDialog = (ToolOptionsDialog) dialog;
+			return tDialog.getOptionsText();
+		}
+		return null;
+	}
+
+}
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/wizards/MMPWizard.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/wizards/MMPWizard.java	Tue May 12 16:23:41 2009 -0500
@@ -26,6 +26,7 @@
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.ui.*;
 import org.eclipse.ui.ide.IDE;
 
@@ -170,4 +171,9 @@
 		this.selection = selection;
 		setDefaultPageImageDescriptor(CarbideUIPlugin.getSharedImages().getImageDescriptor(ICarbideSharedImages.IMG_NEW_MMP_FILE_WIZARD_BANNER));
 	}
+
+	public WizardPage getMMPWizardPage() {
+		return page;
+	}
+
 }
\ No newline at end of file
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/wizards/MMPWizardPage.java	Tue May 12 16:06:57 2009 -0500
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/wizards/MMPWizardPage.java	Tue May 12 16:23:41 2009 -0500
@@ -51,6 +51,7 @@
 public class MMPWizardPage extends WizardPage {
 	private Text containerText;
 	private Text fileText;
+	private Button browseButton;
 	private Button isTestCheck;
 	private ISelection selection;
 	private boolean isTest;
@@ -109,9 +110,9 @@
 			}
 		});
 
-		Button button = new Button(container, SWT.PUSH);
-		button.setText(Messages.getString("MMPWizardPage.browseButton")); //$NON-NLS-1$
-		button.addSelectionListener(new SelectionAdapter() {
+		browseButton = new Button(container, SWT.PUSH);
+		browseButton.setText(Messages.getString("MMPWizardPage.browseButton")); //$NON-NLS-1$
+		browseButton.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
 				handleBrowse();
 			}
@@ -243,4 +244,21 @@
 	public void performHelp() {
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl().getShell(), ProjectUIHelpIds.MMP_WIZARD_PAGE);
 	}
+
+	public Text getContainerText() {
+		return containerText;
+	}
+
+	public Text getFileNameText() {
+		return fileText;
+	}
+
+	public Button getBrowseButton() {
+		return browseButton;
+	}
+
+	public Button getTestMMPButton() {
+		return isTestCheck;
+	}
+
 }
\ No newline at end of file