blob: bf20272742432eca1afc8a39154c559a9b2a7918 [file] [log] [blame]
package org.eclipse.jdt.debug.tests.core;
/**********************************************************************
Copyright (c) 2000, 2002 IBM Corp. and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Common Public License v0.5
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/cpl-v05.html
Contributors:
IBM Corporation - Initial implementation
*********************************************************************/
import java.io.File;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.jdt.debug.tests.AbstractDebugTest;
import org.eclipse.jdt.launching.IVMInstall;
import org.eclipse.jdt.launching.JavaRuntime;
import org.eclipse.jdt.launching.sourcelookup.ArchiveSourceLocation;
import org.eclipse.jdt.launching.sourcelookup.DirectorySourceLocation;
import org.eclipse.jdt.launching.sourcelookup.IJavaSourceLocation;
import org.eclipse.jdt.launching.sourcelookup.JavaProjectSourceLocation;
import org.eclipse.jdt.launching.sourcelookup.JavaSourceLocator;
/**
* Tests source location creation/restoration.
*/
public class SourceLocationTests extends AbstractDebugTest {
public SourceLocationTests(String name) {
super(name);
}
public void testProjectLocationMemento() throws Exception {
IJavaSourceLocation location = new JavaProjectSourceLocation(getJavaProject());
String memento = location.getMemento();
IJavaSourceLocation restored = new JavaProjectSourceLocation();
restored.initializeFrom(memento);
assertEquals("project locations should be equal", location, restored);
}
public void testDirectoryLocationMemento() throws Exception {
File dir = ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile();
IJavaSourceLocation location = new DirectorySourceLocation(dir);
String memento = location.getMemento();
IJavaSourceLocation restored = new DirectorySourceLocation();
restored.initializeFrom(memento);
assertEquals("directory locations should be equal", location, restored);
}
public void testArchiveLocationMemento() throws Exception {
IVMInstall vm = JavaRuntime.getDefaultVMInstall();
IJavaSourceLocation location = new ArchiveSourceLocation(JavaRuntime.getLibraryLocations(vm)[0].getSystemLibraryPath().toOSString(), null);
String memento = location.getMemento();
IJavaSourceLocation restored = new ArchiveSourceLocation();
restored.initializeFrom(memento);
assertEquals("archive locations should be equal", location, restored);
}
public void testJavaSourceLocatorMemento() throws Exception {
IJavaSourceLocation location1 = new JavaProjectSourceLocation(getJavaProject());
File dir = ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile();
IJavaSourceLocation location2 = new DirectorySourceLocation(dir);
IVMInstall vm = JavaRuntime.getDefaultVMInstall();
IJavaSourceLocation location3 = new ArchiveSourceLocation(JavaRuntime.getLibraryLocations(vm)[0].getSystemLibraryPath().toOSString(), null);
JavaSourceLocator locator = new JavaSourceLocator(new IJavaSourceLocation[] {location1, location2, location3});
String memento = locator.getMemento();
JavaSourceLocator restored = new JavaSourceLocator();
restored.initializeFromMemento(memento);
IJavaSourceLocation[] locations = restored.getSourceLocations();
assertEquals("wrong number of source locations", 3, locations.length);
assertEquals("1st locations not equal", location1, locations[0]);
assertEquals("2nd locations not equal", location2, locations[1]);
assertEquals("3rd locations not equal", location3, locations[2]);
}
}