mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-08 08:45:44 +02:00
Test case for bug 278632 by Andrew Eidsness
This commit is contained in:
parent
1fa3b1dd39
commit
cd018e7c10
2 changed files with 66 additions and 0 deletions
|
@ -220,4 +220,12 @@
|
||||||
</enablement>
|
</enablement>
|
||||||
</renameParticipant>
|
</renameParticipant>
|
||||||
</extension>
|
</extension>
|
||||||
|
|
||||||
|
<extension point="org.eclipse.core.filesystem.filesystems">
|
||||||
|
<filesystem
|
||||||
|
scheme="bug278632">
|
||||||
|
<run class="org.eclipse.cdt.ui.tests.text.BasicCEditorTest$Bug278632FileSystem"/>
|
||||||
|
</filesystem>
|
||||||
|
</extension>
|
||||||
|
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
|
@ -11,12 +11,16 @@
|
||||||
package org.eclipse.cdt.ui.tests.text;
|
package org.eclipse.cdt.ui.tests.text;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.URISyntaxException;
|
||||||
|
|
||||||
import junit.framework.Test;
|
import junit.framework.Test;
|
||||||
import junit.framework.TestSuite;
|
import junit.framework.TestSuite;
|
||||||
|
|
||||||
import org.eclipse.core.filesystem.EFS;
|
import org.eclipse.core.filesystem.EFS;
|
||||||
|
import org.eclipse.core.filesystem.IFileStore;
|
||||||
import org.eclipse.core.filesystem.URIUtil;
|
import org.eclipse.core.filesystem.URIUtil;
|
||||||
|
import org.eclipse.core.filesystem.provider.FileSystem;
|
||||||
import org.eclipse.core.resources.IFile;
|
import org.eclipse.core.resources.IFile;
|
||||||
import org.eclipse.core.resources.IProject;
|
import org.eclipse.core.resources.IProject;
|
||||||
import org.eclipse.core.runtime.CoreException;
|
import org.eclipse.core.runtime.CoreException;
|
||||||
|
@ -33,6 +37,7 @@ import org.eclipse.swt.graphics.Color;
|
||||||
import org.eclipse.swt.graphics.RGB;
|
import org.eclipse.swt.graphics.RGB;
|
||||||
import org.eclipse.swt.widgets.Event;
|
import org.eclipse.swt.widgets.Event;
|
||||||
import org.eclipse.ui.IEditorPart;
|
import org.eclipse.ui.IEditorPart;
|
||||||
|
import org.eclipse.ui.IEditorRegistry;
|
||||||
import org.eclipse.ui.IWorkbenchPage;
|
import org.eclipse.ui.IWorkbenchPage;
|
||||||
import org.eclipse.ui.PartInitException;
|
import org.eclipse.ui.PartInitException;
|
||||||
import org.eclipse.ui.PlatformUI;
|
import org.eclipse.ui.PlatformUI;
|
||||||
|
@ -72,6 +77,32 @@ public class BasicCEditorTest extends BaseUITestCase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class Bug278632FileSystem extends FileSystem {
|
||||||
|
public Bug278632FileSystem() {
|
||||||
|
getClass();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IFileStore getStore(URI uri) {
|
||||||
|
try {
|
||||||
|
// For the test case, this just return the FS implementation
|
||||||
|
// used for the null filesystem.
|
||||||
|
// In a real application this would be a real implementation,
|
||||||
|
// however for the purposes
|
||||||
|
// of exposing the bug, any non-file:// scheme will do.
|
||||||
|
return EFS.getStore(new URI(
|
||||||
|
EFS.getNullFileSystem().getScheme(), uri
|
||||||
|
.getSchemeSpecificPart(), null));
|
||||||
|
} catch (URISyntaxException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
} catch (CoreException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static CEditor fEditor;
|
private static CEditor fEditor;
|
||||||
private static SourceViewer fSourceViewer;
|
private static SourceViewer fSourceViewer;
|
||||||
private ICProject fCProject;
|
private ICProject fCProject;
|
||||||
|
@ -378,6 +409,33 @@ public class BasicCEditorTest extends BaseUITestCase {
|
||||||
assertSame(style.foreground, ppDirectiveColor);
|
assertSame(style.foreground, ppDirectiveColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testNonFileEFSResource_Bug278632() {
|
||||||
|
IWorkbenchPage page = PlatformUI.getWorkbench()
|
||||||
|
.getActiveWorkbenchWindow().getActivePage();
|
||||||
|
assertNotNull(page);
|
||||||
|
|
||||||
|
IEditorRegistry reg = page.getWorkbenchWindow().getWorkbench()
|
||||||
|
.getEditorRegistry();
|
||||||
|
String editorID = reg.getDefaultEditor(".c").getId();
|
||||||
|
|
||||||
|
URI uri = null;
|
||||||
|
try {
|
||||||
|
uri = new URI("bug278632", "/folder/file", null);
|
||||||
|
} catch (URISyntaxException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
assertNotNull(uri);
|
||||||
|
|
||||||
|
IEditorPart part = null;
|
||||||
|
try {
|
||||||
|
part = IDE.openEditor(page, uri, editorID, true);
|
||||||
|
} catch (PartInitException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
assertNotNull(part);
|
||||||
|
assertTrue(part instanceof CEditor);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Type characters into the styled text.
|
* Type characters into the styled text.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue