Skip to content

FormEditor fails to activate editor page #3764

@basilevs

Description

@basilevs

org.eclipse.ui.forms.editor.FormEditor does not respect org.eclipse.ui.part.MultiPageEditorPart contracts:
Lines with "BUG" label fail:

	@Test
	public void anEditorIsActiveOnStart() throws PartInitException {
		FormEditorMock.hook = FormEditorMock.DEFAULT_HOOK;
		FormEditorMock subject = (FormEditorMock) WORKBENCH.getActiveWorkbenchWindow().getActivePage().openEditor(input,
				FormEditorMock.ID);
		dispatch(subject);
		// BUG
		// assertNotNull(subject.getActiveEditor());
	}

	@Test
	public void activateEditors() throws PartInitException {
		FormEditorMock.hook = FormEditorMock.DEFAULT_HOOK;
		FormEditorMock subject = (FormEditorMock) WORKBENCH.getActiveWorkbenchWindow().getActivePage().openEditor(input,
				FormEditorMock.ID);
		FormPage page1 = addPage(subject, "page1");
		// BUG
		// assertEveryTabCanBeActive(subject);
	}

	private void assertEveryTabCanBeActive(FormEditorMock subject) {
		dispatch(subject);
		for (IEditorPart part : subject.leakPages()) {
			subject.setActiveEditor(part);
			dispatch(subject);
			assertSame(part, subject.getActiveEditor());
		}
	}

	private void dispatch(FormEditorMock subject) {
		while (subject.leakContainer().getDisplay().readAndDispatch()) {
		}
	}

	private FormPage addPage(FormEditorMock subject, String id) throws PartInitException {
		FormPage page1 = new FormPage(subject, id, id);
		subject.addPage(page1);
		dispatch(subject);
		return page1;
	}

To reproduce, pull from #3765 and uncomment BUG lines.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions