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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions