Bug 322403 Showing a shared part with PartState.VISIBLE may not work correctly due to incorrect parent comparisons
We check the parents of the active part against the part-to-be-shown to determine how to respond when PartState.VISIBLE is used but the check is always 'true' for shared parts because getParent() returns 'null' for both parts. This is obviously wrong. We need to update the code to consider placeholders.
tests/org.eclipse.e4.ui.tests/src/org/eclipse/e4/ui/tests/application/EPartServiceTest.java
public void testSavePart_NoHandler_FFT() {
		testSavePart_NoHandler(false, false, true);
	}
	public void testSavePart_NoHandler_FFF() {
		testSavePart_NoHandler(false, false, false);
	}
	private MPart createSaveablePart(
			MElementContainer<MWindowElement> container, boolean beforeDirty) {
		MPart saveablePart = BasicFactoryImpl.eINSTANCE.createPart();
		saveablePart.setDirty(beforeDirty);
		saveablePart
				.setContributionURI("platform:/plugin/org.eclipse.e4.ui.tests/org.eclipse.e4.ui.tests.application.ClientEditor");
		container.getChildren().add(saveablePart);
		return saveablePart;
	}
	private Save prompt(Save[] candidates, MPart partToTest, MPart part) {
		return partToTest == part ? candidates[0] : candidates[1];
	}
	private void testSaveAll(final Save[] returnValues, boolean confirm,
			boolean[] beforeDirty, boolean[] afterDirty, boolean success,
			boolean[] saveCalled, boolean[] throwException) {
		MApplication application = ApplicationFactoryImpl.eINSTANCE
				.createApplication();
		MWindow window = BasicFactoryImpl.eINSTANCE.createWindow();
		application.getChildren().add(window);
		final MPart saveablePart = createSaveablePart(window, beforeDirty[0]);
		final MPart saveablePart2 = createSaveablePart(window, beforeDirty[1]);
		
		initialize(applicationContext, application);
		getEngine().createGui(window);