update
diff --git a/org.eclipse.core.filebuffers.tests/build.properties b/org.eclipse.core.filebuffers.tests/build.properties index 065209c..336cbc0 100644 --- a/org.eclipse.core.filebuffers.tests/build.properties +++ b/org.eclipse.core.filebuffers.tests/build.properties
@@ -9,7 +9,11 @@ # IBM Corporation - initial API and implementation ############################################################################### bin.includes = plugin.xml,\ + plugin.properties,\ test.xml,\ about.html,\ - *.jar,\ -source.javauitests.jar = src/ + *.jar + +src.includes = about.html + +source.filebufferstests.jar = src/
diff --git a/org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/ContainerGenerator.java b/org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/ContainerGenerator.java new file mode 100644 index 0000000..1f5ac58 --- /dev/null +++ b/org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/ContainerGenerator.java
@@ -0,0 +1,140 @@ +/******************************************************************************* + * Copyright (c) 2000, 2004 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.core.filebuffers.tests; + +import org.eclipse.core.resources.IContainer; +import org.eclipse.core.resources.IFolder; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IWorkspace; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.IWorkspaceRunnable; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.OperationCanceledException; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.SubProgressMonitor; + +public class ContainerGenerator { + + private IPath fContainerFullPath; + private IContainer fContainer; + private IWorkspace fWorkspace; + + public ContainerGenerator(IWorkspace workspace, IPath containerPath) { + fWorkspace= workspace; + fContainerFullPath = containerPath; + } + + private IFolder createFolder(IFolder folderHandle, IProgressMonitor monitor) throws CoreException { + folderHandle.create(false, true, monitor); + if (monitor.isCanceled()) + throw new OperationCanceledException(); + return folderHandle; + } + + private IFolder createFolderHandle(IContainer container, String folderName) { + return container.getFolder(new Path(folderName)); + } + + private IProject createProject(IProject projectHandle, IProgressMonitor monitor) throws CoreException { + monitor.beginTask("", 100);//$NON-NLS-1$ + try { + + IProgressMonitor subMonitor= new SubProgressMonitor(monitor, 50); + projectHandle.create(subMonitor); + subMonitor.done(); + + if (monitor.isCanceled()) + throw new OperationCanceledException(); + + subMonitor= new SubProgressMonitor(monitor, 50); + projectHandle.open(subMonitor); + subMonitor.done(); + + if (monitor.isCanceled()) + throw new OperationCanceledException(); + + } finally { + monitor.done(); + } + + return projectHandle; + } + + private IProject createProjectHandle(IWorkspaceRoot root, String projectName) { + return root.getProject(projectName); + } + + public IContainer generateContainer(IProgressMonitor progressMonitor) throws CoreException { + IWorkspaceRunnable runnable= new IWorkspaceRunnable() { + public void run(IProgressMonitor monitor) throws CoreException { + monitor.beginTask("ContainerGenerator.task.creatingContainer", fContainerFullPath.segmentCount()); //$NON-NLS-1$ + if (fContainer != null) + return; + + // Does the container exist already? + IWorkspaceRoot root= fWorkspace.getRoot(); + IResource found= root.findMember(fContainerFullPath); + if (found instanceof IContainer) { + fContainer= (IContainer) found; + return; + } else if (found != null) { + // fContainerFullPath specifies a file as directory + throw new CoreException(new Status(IStatus.ERROR, FilebuffersTestPlugin.PLUGIN_ID, IStatus.OK, "ContainerGenerator.destinationMustBeAContainer", null)); //$NON-NLS-1$ + } + + // Create the container for the given path + fContainer= root; + for (int i = 0; i < fContainerFullPath.segmentCount(); i++) { + String currentSegment = fContainerFullPath.segment(i); + IResource resource = fContainer.findMember(currentSegment); + if (resource != null) { + if (resource instanceof IContainer) { + fContainer= (IContainer) resource; + monitor.worked(1); + } else { + // fContainerFullPath specifies a file as directory + throw new CoreException(new Status(IStatus.ERROR, FilebuffersTestPlugin.PLUGIN_ID, IStatus.OK, "ContainerGenerator.destinationMustBeAContainer", null)); //$NON-NLS-1$ + } + } + else { + if (i == 0) { + IProject projectHandle= createProjectHandle(root, currentSegment); + IProgressMonitor subMonitor= new SubProgressMonitor(monitor, 1); + fContainer= createProject(projectHandle, subMonitor); + subMonitor.done(); + } + else { + IFolder folderHandle= createFolderHandle(fContainer, currentSegment); + IProgressMonitor subMonitor= new SubProgressMonitor(monitor, 1); + fContainer= createFolder(folderHandle, subMonitor); + subMonitor.done(); + } + } + } + } + }; + + // Get scheduling rule + IWorkspaceRoot root= fWorkspace.getRoot(); + IPath existingParentPath= fContainerFullPath; + while (!root.exists(existingParentPath)) + existingParentPath= existingParentPath.removeLastSegments(1); + + IResource schedulingRule= root.findMember(existingParentPath); + fWorkspace.run(runnable, progressMonitor); + return fContainer; + } +}
diff --git a/org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/FileTool.java b/org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/FileTool.java index cad283f..3def116 100644 --- a/org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/FileTool.java +++ b/org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/FileTool.java
@@ -184,7 +184,10 @@ public static File getFileInPlugin(Plugin plugin, IPath path) { try { - URL installURL= plugin.getBundle().getEntry(path.toString()); + String sPath= path.toString(); + if (sPath.startsWith("/")) + sPath= sPath.substring(1); + URL installURL= new URL(plugin.getDescriptor().getInstallURL(), sPath); URL localURL= Platform.asLocalURL(installURL); return new File(localURL.getFile()); } catch (IOException e) {
diff --git a/org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/FilebuffersTestPlugin.java b/org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/FilebuffersTestPlugin.java new file mode 100644 index 0000000..4d0e7cd --- /dev/null +++ b/org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/FilebuffersTestPlugin.java
@@ -0,0 +1,70 @@ +/******************************************************************************* + * Copyright (c) 2000, 2004 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.core.filebuffers.tests; + +import java.io.File; +import java.io.IOException; +import java.net.URL; + +import org.eclipse.core.resources.IWorkspace; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IPluginDescriptor; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.Plugin; + +/** + * The main plug-in class to be used in the desktop. + * + * @since 3.0 + */ +public class FilebuffersTestPlugin extends Plugin { + + public final static String PLUGIN_ID= "org.eclipse.core.filebuffers.tests"; //$NON-NLS-1$ + + //The shared instance. + private static FilebuffersTestPlugin fPlugin; + + /** + * The constructor. + */ + public FilebuffersTestPlugin(IPluginDescriptor descriptor) { + super(descriptor); + fPlugin = this; + } + + /** + * Returns the shared instance. + */ + public static FilebuffersTestPlugin getDefault() { + return fPlugin; + } + + /** + * Returns the workspace instance. + */ + public static IWorkspace getWorkspace() { + return ResourcesPlugin.getWorkspace(); + } + + public static File getFileInPlugin(Plugin plugin, IPath path) { + try { + String sPath= path.toString(); + if (sPath.startsWith("/")) + sPath= sPath.substring(1); + URL installURL= new URL(plugin.getDescriptor().getInstallURL(), sPath); + URL localURL= Platform.asLocalURL(installURL); + return new File(localURL.getFile()); + } catch (IOException e) { + return null; + } + } +}
diff --git a/org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/ResourceHelper.java b/org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/ResourceHelper.java index 1b76b58..f165370 100644 --- a/org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/ResourceHelper.java +++ b/org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/ResourceHelper.java
@@ -14,7 +14,6 @@ import java.io.InputStream; import java.io.StringBufferInputStream; -import org.eclipse.core.internal.filebuffers.ContainerGenerator; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; @@ -73,7 +72,7 @@ i= MAX_RETRY; } catch (CoreException x) { if (i == MAX_RETRY - 1) { - FileBuffersTestPlugin.getDefault().getLog().log(x.getStatus()); + FilebuffersTestPlugin.getDefault().getLog().log(x.getStatus()); // throw x; } try {
diff --git a/org.eclipse.jface.text.tests/build.properties b/org.eclipse.jface.text.tests/build.properties index 1e3de62..045afe6 100644 --- a/org.eclipse.jface.text.tests/build.properties +++ b/org.eclipse.jface.text.tests/build.properties
@@ -9,7 +9,11 @@ # IBM Corporation - initial API and implementation ############################################################################### bin.includes = plugin.xml,\ + plugin.properties,\ test.xml,\ about.html,\ - *.jar,\ + *.jar + +src.includes = about.html + source.jfacetexttests.jar = src/
diff --git a/org.eclipse.jface.text.tests/test.xml b/org.eclipse.jface.text.tests/test.xml index b318da2..97bf3ba 100644 --- a/org.eclipse.jface.text.tests/test.xml +++ b/org.eclipse.jface.text.tests/test.xml
@@ -20,19 +20,6 @@ </delete> </target> - <!-- This target defines the tests that need to be run. --> - <target name="suite"> - <property name="jface-text-folder" - value="${eclipse-home}/jface_text_folder"/> - <delete dir="${jface-text-folder}" quiet="true"/> - <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}"> - <property name="data-dir" value="${jface-text-folder}"/> - <property name="plugin-name" value="${plugin-name}"/> - <property name="classname" - value="org.eclipse.jface.text.tests.JFaceTextTestSuite"/> - </ant> - </target> - <!-- This target holds code to cleanup the testing environment after --> <!-- after all of the tests have been run. You can use this target to --> <!-- delete temporary files that have been created. --> @@ -41,11 +28,7 @@ <!-- This target runs the test suite. Any actions that need to happen --> <!-- after all the tests have been run should go here. --> - <target name="run" depends="init,suite,cleanup"> - <ant target="collect" antfile="${library-file}" dir="${eclipse-home}"> - <property name="includes" value="org*.xml"/> - <property name="output-file" value="${plugin-name}.xml"/> - </ant> + <target name="run"> </target> <!-- This target runs the performance test suites. -->
diff --git a/org.eclipse.text.tests/.classpath b/org.eclipse.text.tests/.classpath index 21d37ba..065ac06 100644 --- a/org.eclipse.text.tests/.classpath +++ b/org.eclipse.text.tests/.classpath
@@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> - <classpathentry kind="src" path="/org.junit"/> <classpathentry kind="output" path="bin"/> </classpath>
diff --git a/org.eclipse.text.tests/build.properties b/org.eclipse.text.tests/build.properties index 7cef8eb..f255a76 100644 --- a/org.eclipse.text.tests/build.properties +++ b/org.eclipse.text.tests/build.properties
@@ -9,7 +9,11 @@ # IBM Corporation - initial API and implementation ############################################################################### bin.includes = plugin.xml,\ + plugin.properties,\ test.xml,\ about.html,\ *.jar + +src.includes = about.html + source.texttests.jar = src/
diff --git a/org.eclipse.text.tests/plugin.xml b/org.eclipse.text.tests/plugin.xml index 45f9c78..8a241d9 100644 --- a/org.eclipse.text.tests/plugin.xml +++ b/org.eclipse.text.tests/plugin.xml
@@ -15,5 +15,5 @@ <requires> <import plugin="org.junit"/> </requires> - + </plugin>
diff --git a/org.eclipse.text.tests/src/org/eclipse/text/tests/Accessor.java b/org.eclipse.text.tests/src/org/eclipse/text/tests/Accessor.java index 3ed7787..784b8c2 100644 --- a/org.eclipse.text.tests/src/org/eclipse/text/tests/Accessor.java +++ b/org.eclipse.text.tests/src/org/eclipse/text/tests/Accessor.java
@@ -47,16 +47,39 @@ } /** + * Creates an accessor for the given <code>instance</code> and + * <code>class</code>. Only non-inherited members that particular + * <code>class</code> can be accessed. + * + * @param instance the instance + * @param className the name of the class + * @param classLoader the class loader to use i.e. <code>getClass().getClassLoader()</code> + */ + public Accessor(Object instance, String className, ClassLoader classLoader) { + assertNotNull(instance); + assertNotNull(className); + assertNotNull(classLoader); + fInstance= instance; + try { + fClass= Class.forName(className, true, classLoader); + } catch (ClassNotFoundException e) { + fail(); + } catch (ExceptionInInitializerError e) { + fail(); + } + } + + /** * Creates an accessor for the given class. * <p> * In order to get the type information from the given - * arguments they must all be instanceof Object. Use + * arguments they must all be instanc eof Object. Use * {@link #Accessor(String, ClassLoader, Class[], Object[])} if this * is not the case.</p> * * @param className the name of the class * @param classLoader the class loader to use i.e. <code>getClass().getClassLoader()</code> - * @param constructorArgs the constructor arguments which must all be instanceof Object + * @param constructorArgs the constructor arguments which must all be instance of Object */ public Accessor(String className, ClassLoader classLoader, Object[] constructorArgs) { this(className, classLoader, getTypes(constructorArgs), constructorArgs); @@ -105,12 +128,12 @@ * Invokes the method with the given method name and arguments. * <p> * In order to get the type information from the given - * arguments all those arguments must be instanceof Object. Use + * arguments all those arguments must be instance of Object. Use * {@link #invoke(String, Class[], Object[])} if this * is not the case.</p> * * @param methodName the method name - * @param arguments the method arguments which must all be instanceof Object + * @param arguments the method arguments which must all be instance of Object * @return the method return value */ public Object invoke(String methodName, Object[] arguments) {