Bug 366633 - [Tests] ResourceMappingMarkersTest fails

Use reflective method call to get the Tree widget, instead of the
(failing) cast on the first child widget.

Ensure that TestProject is cleaned up in other test cases.

Change-Id: I4302c4708b5e0acb00aa7ad0b4edf9772d939842
Signed-off-by: Rolf Theunissen <rolf.theunissen@gmail.com>
Reviewed-on: https://git.eclipse.org/r/c/platform/eclipse.platform.ui/+/174120
Tested-by: Platform Bot <platform-bot@eclipse.org>
Reviewed-by: Alexander Kurtakov <akurtako@redhat.com>
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43321Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43321Test.java
index acd3ffa..a3635bd 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43321Test.java
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43321Test.java
@@ -15,6 +15,7 @@
 package org.eclipse.ui.tests.keys;
 
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import java.io.ByteArrayInputStream;
 import java.util.ArrayList;
@@ -23,8 +24,6 @@
 import org.eclipse.core.commands.common.CommandException;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.bindings.keys.KeyStroke;
@@ -37,6 +36,7 @@
 import org.eclipse.ui.internal.keys.BindingService;
 import org.eclipse.ui.keys.IBindingService;
 import org.eclipse.ui.tests.harness.util.CloseTestWindowsRule;
+import org.eclipse.ui.tests.harness.util.FileUtil;
 import org.eclipse.ui.tests.harness.util.UITestCase;
 import org.eclipse.ui.texteditor.AbstractTextEditor;
 import org.junit.Rule;
@@ -67,10 +67,7 @@
 	public void testNoCheckOnNonCheckbox() throws CommandException,
 			CoreException, ParseException {
 		IWorkbenchWindow window = UITestCase.openTestWindow();
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		IProject testProject = workspace.getRoot().getProject("TestProject"); //$NON-NLS-1$
-		testProject.create(null);
-		testProject.open(null);
+		IProject testProject = FileUtil.createProject("TestProject"); //$NON-NLS-1$
 		IFile textFile = testProject.getFile("A.txt"); //$NON-NLS-1$
 		String contents = "A blurb"; //$NON-NLS-1$
 		ByteArrayInputStream inputStream = new ByteArrayInputStream(contents
@@ -93,5 +90,11 @@
 		IAction action = editor.getEditorSite().getActionBars()
 				.getGlobalActionHandler(ActionFactory.COPY.getId());
 		assertTrue("Non-checkbox menu item is checked.", !action.isChecked()); //$NON-NLS-1$
+
+		try {
+			FileUtil.deleteProject(testProject);
+		} catch (CoreException e) {
+			fail(e.toString());
+		}
 	}
 }
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkersTestMarkersView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkersTestMarkersView.java
index 225045d..d6338f4 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkersTestMarkersView.java
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkersTestMarkersView.java
@@ -21,6 +21,7 @@
 import org.eclipse.core.resources.IMarker;
 import org.eclipse.core.runtime.jobs.IJobChangeListener;
 import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Tree;
 import org.eclipse.swt.widgets.TreeColumn;
@@ -120,7 +121,7 @@
 	@Override
 	public void createPartControl(Composite parent) {
 		super.createPartControl(parent);
-		tree = (Tree) parent.getChildren()[0];
+		tree = getTreeWidget();
 	}
 
 	/**
@@ -140,4 +141,17 @@
 		return true;
 	}
 
+	private Tree getTreeWidget() {
+		TreeViewer viewer;
+		try {
+			Method m = ExtendedMarkersView.class.getDeclaredMethod("getViewer");
+			m.setAccessible(true);
+			viewer = (TreeViewer) m.invoke(this);
+			return viewer.getTree();
+		} catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException
+				| InvocationTargetException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
 }
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/ResourceMappingMarkersTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/ResourceMappingMarkersTest.java
index 799d683..ce5845e 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/ResourceMappingMarkersTest.java
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/ResourceMappingMarkersTest.java
@@ -22,13 +22,11 @@
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.tests.navigator.AbstractNavigatorTest;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
 
 @RunWith(JUnit4.class)
-@Ignore
 public class ResourceMappingMarkersTest extends AbstractNavigatorTest {
 
 	/**