blob: 58f6157e1e7c9e4a60e585fd372bb86fcb07ca6b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2019 Thomas Wolf <thomas.wolf@paranor.ch>
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************/
package org.eclipse.ui.editors.tests;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.File;
import org.junit.After;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.eclipse.core.filesystem.EFS;
import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.filebuffers.tests.ResourceHelper;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.ide.FileStoreEditorInput;
import org.eclipse.ui.part.FileEditorInput;
import org.eclipse.ui.texteditor.DocumentProviderRegistry;
import org.eclipse.ui.texteditor.IDocumentProvider;
import org.eclipse.ui.editors.text.TextFileDocumentProvider;
public class DocumentProviderRegistryTest {
@Rule
public TemporaryFolder tmp = new TemporaryFolder();
private IFile file;
@After
public void tearDown() throws Exception {
if (file != null) {
ResourceHelper.delete(file.getProject());
}
TestUtil.cleanUp();
}
@Test
public void testFindByExtensionInWorkspace() throws Exception {
IFolder folder = ResourceHelper.createFolder("DocumentProviderRegistryTestProject/test");
file = ResourceHelper.createFile(folder, "file.testfile", "");
assertTrue("File should exist: " + file.toString(), file.exists());
IEditorInput editorInput = new FileEditorInput(file);
IDocumentProvider provider = DocumentProviderRegistry.getDefault().getDocumentProvider(editorInput);
assertEquals("Unexpected document provider found : " + provider.getClass().getName(),
TestDocumentProvider.class, provider.getClass());
}
@Test
public void testFindByExtensionNonWorkspace() throws Exception {
File external = tmp.newFile("external.testfile");
IFileStore store = EFS.getLocalFileSystem().getStore(new Path(external.getCanonicalPath()));
IEditorInput editorInput = new FileStoreEditorInput(store);
IDocumentProvider provider = DocumentProviderRegistry.getDefault().getDocumentProvider(editorInput);
assertEquals("Unexpected document provider found : " + provider.getClass().getName(),
TestDocumentProvider.class, provider.getClass());
}
public static class TestDocumentProvider extends TextFileDocumentProvider {
// Nothing; class registered in plugin.xml so that we can test that we
// found the right one.
}
}