blob: 72b2d462a3c8c0a8bf16df4635bffecbafc10c47 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007, 2013 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.pde.api.tools.util.tests;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import junit.framework.TestCase;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.osgi.service.resolver.ResolverError;
import org.eclipse.pde.api.tools.internal.IApiCoreConstants;
import org.eclipse.pde.api.tools.internal.provisional.IApiDescription;
import org.eclipse.pde.api.tools.internal.provisional.IApiFilterStore;
import org.eclipse.pde.api.tools.internal.provisional.IRequiredComponentDescription;
import org.eclipse.pde.api.tools.internal.provisional.descriptors.IElementDescriptor;
import org.eclipse.pde.api.tools.internal.provisional.model.ApiTypeContainerVisitor;
import org.eclipse.pde.api.tools.internal.provisional.model.IApiBaseline;
import org.eclipse.pde.api.tools.internal.provisional.model.IApiComponent;
import org.eclipse.pde.api.tools.internal.provisional.model.IApiElement;
import org.eclipse.pde.api.tools.internal.provisional.model.IApiTypeContainer;
import org.eclipse.pde.api.tools.internal.provisional.model.IApiTypeRoot;
import org.eclipse.pde.api.tools.internal.search.IReferenceCollection;
import org.eclipse.pde.api.tools.internal.util.FilteredElements;
import org.eclipse.pde.api.tools.internal.util.SinceTagVersion;
import org.eclipse.pde.api.tools.internal.util.Util;
import org.eclipse.pde.api.tools.model.tests.TestSuiteHelper;
/**
* Tests the methods in our utility class: {@link Util}
*
* @since 1.0.0
*/
public class UtilTests extends TestCase {
private static final IPath SRC_LOC = TestSuiteHelper.getPluginDirectoryPath().append("test_source");
static final IPath SRC_LOC_SEARCH = TestSuiteHelper.getPluginDirectoryPath().append("test-search");
/**
* Tests that passing in <code>null</code> to the getAllFiles(..) method
* will return all of the files in that directory
*/
public void getAllFilesNullFilter() {
File root = new File(SRC_LOC.toOSString());
assertTrue("The test source directory must exist", root.exists());
assertTrue("The source location should be a directory", root.isDirectory());
File[] files = Util.getAllFiles(root, null);
assertTrue("There should be more than one file in the test source directory", files.length > 1);
}
/**
* Tests that passing an illegal argument when creating a new {@link SinceTagVersion} throws an exception
*/
public void testIllegalArgSinceTagVersion() {
try {
new SinceTagVersion(null);
fail("creating a since tag version with a null value should have thrown an exception");
}
catch(IllegalArgumentException iae) {
}
}
/**
* Tests that a filter passed to getALlFiles(..) returns only the files
* it is supposed to. In this test only files that end with <code>TestClass1.java</code>
* pass the filter (there is only one).
*/
public void getAllFilesSpecificFilter() {
File root = new File(SRC_LOC.toOSString());
assertTrue("The test source directory must exist", root.exists());
assertTrue("The source location should be a directory", root.isDirectory());
File[] files = Util.getAllFiles(root, new FileFilter() {
public boolean accept(File pathname) {
return pathname.getAbsolutePath().endsWith("TestClass1.java");
}
});
assertTrue("There should be only one file in the test source directory named 'TestClass1.java'", files.length == 1);
}
/**
* Tests that the isClassFile method works as expected when passed a valid name (*.class)
*/
public void testIsClassfile() {
assertTrue("Test.class is a class file", Util.isClassFile("Test.class"));
}
/**
* Tests that the isClassFile method works as expected when passed an invalid name (not *.class)
*/
public void testIsNotClassfile() {
assertTrue("Test.notclass is not a classfile", !Util.isClassFile("Test.notclass"));
}
/**
* Tests that the isArchive method works as expected when passed a valid archive
* name (*.zip or *.jar)
*/
public void testIsArchive() {
assertTrue("Test.zip is an archive", Util.isArchive("Test.zip"));
assertTrue("Test.jar is an archive", Util.isArchive("Test.jar"));
assertTrue("Test.tar.gz is an archive", Util.isTGZFile("Test.tar.gz"));
assertTrue("Test.tgz is an archive", Util.isTGZFile("Test.tgz"));
}
/**
* Tests that the isTGZFile method works as expected
*/
public void testIsTar() {
assertTrue("Test.tar.gz is an archive", Util.isTGZFile("Test.tar.gz"));
assertTrue("Test.tar.gz is an archive", Util.isTGZFile("Test.TAR.GZ"));
assertTrue("Test.tar.gz is an archive", Util.isTGZFile("Test.Tar.Gz"));
assertTrue("Test.tar.gz is an archive", Util.isTGZFile("Test.tar.GZ"));
assertTrue("Test.tar.gz is an archive", Util.isTGZFile("Test.TAR.gz"));
assertTrue("Test.tgz is an archive", Util.isTGZFile("Test.tgz"));
assertTrue("Test.tgz is an archive", Util.isTGZFile("Test.TGZ"));
assertTrue("Test.tgz is an archive", Util.isTGZFile("Test.Tgz"));
}
/**
* Tests that the isZipJarFile method works as expected
*/
public void testIsJar() {
assertTrue("Test.tar.gz is an archive", Util.isZipJarFile("Test.zip"));
assertTrue("Test.tar.gz is an archive", Util.isZipJarFile("Test.ZIP"));
assertTrue("Test.tar.gz is an archive", Util.isZipJarFile("Test.Zip"));
assertTrue("Test.tgz is an archive", Util.isZipJarFile("Test.jar"));
assertTrue("Test.tgz is an archive", Util.isZipJarFile("Test.JAR"));
assertTrue("Test.tgz is an archive", Util.isZipJarFile("Test.Jar"));
}
/**
* Tests that the isArchive method works as expected when passed an invalid archive
* name (*.notzip)
*/
public void testisNotArchive() {
assertTrue("Test.notzip is not an archive", !Util.isArchive("Test.notzip"));
}
/*
* Test org.eclipse.pde.api.tools.internal.util.Util.getFragmentNumber(String)
* org.eclipse.pde.api.tools.internal.util.Util.isGreatherVersion(String, String)
*/
public void testGetFragmentNumber() {
assertEquals("wrong value", 2, Util.getFragmentNumber("org.eclipse.core.filesystem 1.0"));
assertEquals("wrong value", 2, Util.getFragmentNumber("1.0"));
assertEquals("wrong value", 3, Util.getFragmentNumber("1.0.0"));
assertEquals("wrong value", 1, Util.getFragmentNumber("1"));
assertEquals("wrong value", 4, Util.getFragmentNumber("org.test 1.0.0.0"));
try {
Util.getFragmentNumber((String) null);
assertTrue(false);
} catch (IllegalArgumentException e) {
// ignore
}
assertEquals("wrong value", -1, Util.getFragmentNumber("org.test "));
assertEquals("wrong value", -1, Util.getFragmentNumber("org.test"));
}
/*
* Test org.eclipse.pde.api.tools.internal.util.Util.isGreatherVersion(String, String)
*/
public void testIsGreatherVersion() {
assertEquals("wrong value", 1, 1);
}
public void testSinceTagVersion() {
try {
new SinceTagVersion(null);
assertTrue("Should not reach there", false);
} catch (IllegalArgumentException e) {
// expected exception
}
SinceTagVersion sinceTagVersion = new SinceTagVersion(" org.eclipse.jdt.core 3.4. test plugin");
assertEquals("wrong version string", "3.4.", sinceTagVersion.getVersionString());
assertEquals("wrong prefix string", " org.eclipse.jdt.core ", sinceTagVersion.prefixString());
assertEquals("wrong postfix string", " test plugin", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("3.4");
assertEquals("wrong version string", "3.4", sinceTagVersion.getVersionString());
assertNull("wrong prefix string", sinceTagVersion.prefixString());
assertNull("wrong postfix string", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("org.eclipse.jdt.core 3.4.0.");
assertEquals("wrong version string", "3.4.0.", sinceTagVersion.getVersionString());
assertEquals("wrong prefix string", "org.eclipse.jdt.core ", sinceTagVersion.prefixString());
assertNull("wrong postfix string", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("org.eclipse.jdt.core 3.4.0.qualifier");
assertEquals("wrong version string", "3.4.0.qualifier", sinceTagVersion.getVersionString());
assertEquals("wrong prefix string", "org.eclipse.jdt.core ", sinceTagVersion.prefixString());
assertNull("wrong postfix string", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("org.eclipse.jdt.core 3.4.0.qualifier postfix");
assertEquals("wrong version string", "3.4.0.qualifier", sinceTagVersion.getVersionString());
assertEquals("wrong prefix string", "org.eclipse.jdt.core ", sinceTagVersion.prefixString());
assertEquals("wrong postfix string", " postfix", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("3.4.0");
assertEquals("wrong version string", "3.4.0", sinceTagVersion.getVersionString());
assertNull("wrong prefix string", sinceTagVersion.prefixString());
assertNull("wrong postfix string", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("3.4.0.");
assertEquals("wrong version string", "3.4.0.", sinceTagVersion.getVersionString());
assertNull("wrong prefix string", sinceTagVersion.prefixString());
assertNull("wrong postfix string", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("3.4.");
assertEquals("wrong version string", "3.4.", sinceTagVersion.getVersionString());
assertNull("wrong prefix string", sinceTagVersion.prefixString());
assertNull("wrong postfix string", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("3.");
assertEquals("wrong version string", "3.", sinceTagVersion.getVersionString());
assertNull("wrong prefix string", sinceTagVersion.prefixString());
assertNull("wrong postfix string", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("3");
assertEquals("wrong version string", "3", sinceTagVersion.getVersionString());
assertNull("wrong prefix string", sinceTagVersion.prefixString());
assertNull("wrong postfix string", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("3.4.0.qualifier");
assertEquals("wrong version string", "3.4.0.qualifier", sinceTagVersion.getVersionString());
assertNull("wrong prefix string", sinceTagVersion.prefixString());
assertNull("wrong postfix string", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("3.4.0.qualifier postfix");
assertEquals("wrong version string", "3.4.0.qualifier", sinceTagVersion.getVersionString());
assertNull("wrong prefix string", sinceTagVersion.prefixString());
assertEquals("wrong postfix string", " postfix", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("3.4.0. postfix");
assertEquals("wrong version string", "3.4.0.", sinceTagVersion.getVersionString());
assertNull("wrong prefix string", sinceTagVersion.prefixString());
assertEquals("wrong postfix string", " postfix", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("3.4.0 postfix");
assertEquals("wrong version string", "3.4.0", sinceTagVersion.getVersionString());
assertNull("wrong prefix string", sinceTagVersion.prefixString());
assertEquals("wrong postfix string", " postfix", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("3.4. postfix");
assertEquals("wrong version string", "3.4.", sinceTagVersion.getVersionString());
assertNull("wrong prefix string", sinceTagVersion.prefixString());
assertEquals("wrong postfix string", " postfix", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("3.4 postfix");
assertEquals("wrong version string", "3.4", sinceTagVersion.getVersionString());
assertNull("wrong prefix string", sinceTagVersion.prefixString());
assertEquals("wrong postfix string", " postfix", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("3. postfix");
assertEquals("wrong version string", "3.", sinceTagVersion.getVersionString());
assertNull("wrong prefix string", sinceTagVersion.prefixString());
assertEquals("wrong postfix string", " postfix", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("3 postfix");
assertEquals("wrong version string", "3", sinceTagVersion.getVersionString());
assertNull("wrong prefix string", sinceTagVersion.prefixString());
assertEquals("wrong postfix string", " postfix", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("prefix");
assertNull("wrong version string", sinceTagVersion.getVersionString());
assertNull("wrong prefix string", sinceTagVersion.prefixString());
assertEquals("wrong postfix string", "prefix", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("test 3.4 protected (was added in 2.1 as private class)");
assertEquals("wrong version string", "3.4", sinceTagVersion.getVersionString());
assertEquals("wrong prefix string", "test ", sinceTagVersion.prefixString());
assertEquals("wrong postfix string", " protected (was added in 2.1 as private class)", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("3.4 protected (was added in 2.1 as private class)");
assertEquals("wrong version string", "3.4", sinceTagVersion.getVersionString());
assertNull("wrong prefix string", sinceTagVersion.prefixString());
assertEquals("wrong postfix string", " protected (was added in 2.1 as private class)", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("abc1.0");
assertNull("Wrong version string", sinceTagVersion.getVersionString());
assertNull("Wrong prefix string", sinceTagVersion.prefixString());
assertEquals("Wrong postfix string", "abc1.0", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("3.4, was added in 3.1 as private method");
assertEquals("wrong version string", "3.4", sinceTagVersion.getVersionString());
assertNull("wrong prefix string", sinceTagVersion.prefixString());
assertEquals("wrong postfix string", ", was added in 3.1 as private method", sinceTagVersion.postfixString());
sinceTagVersion = new SinceTagVersion("abc1.0, was added in 3.1 as private method");
assertEquals("wrong version string", "3.1", sinceTagVersion.getVersionString());
assertEquals("wrong prefix string", "abc1.0, was added in ", sinceTagVersion.prefixString());
assertEquals("wrong postfix string", " as private method", sinceTagVersion.postfixString());
}
public void testRegexExcludeList() {
String line = "R:org\\.eclipse\\.swt[a-zA-Z_0-9\\.]*";
class LocalApiComponent implements IApiComponent {
String symbolicName;
public LocalApiComponent(String symbolicName) {
this.symbolicName = symbolicName;
}
public String[] getPackageNames() throws CoreException {
return null;
}
public IApiTypeRoot findTypeRoot(String qualifiedName) throws CoreException {
return null;
}
public IApiTypeRoot findTypeRoot(String qualifiedName, String id) throws CoreException {
return null;
}
public void accept(ApiTypeContainerVisitor visitor) throws CoreException {
}
public void close() throws CoreException {
}
public int getContainerType() {
return 0;
}
public String getName() {
return null;
}
public int getType() {
return 0;
}
public IApiElement getParent() {
return null;
}
public IApiElement getAncestor(int ancestorType) {
return null;
}
public IApiComponent getApiComponent() {
return null;
}
public String getSymbolicName() {
return this.symbolicName;
}
public IApiDescription getApiDescription() throws CoreException {
return null;
}
public boolean hasApiDescription() {
return false;
}
public String getVersion() {
return null;
}
public String[] getExecutionEnvironments() throws CoreException {
return null;
}
public IApiTypeContainer[] getApiTypeContainers() throws CoreException {
return null;
}
public IApiTypeContainer[] getApiTypeContainers(String id) throws CoreException {
return null;
}
public IRequiredComponentDescription[] getRequiredComponents() throws CoreException {
return null;
}
public String getLocation() {
return null;
}
public boolean isSystemComponent() {
return false;
}
public boolean isSourceComponent() throws CoreException {
return false;
}
public void dispose() {
}
public IApiBaseline getBaseline() throws CoreException {
return null;
}
public IApiFilterStore getFilterStore() throws CoreException {
return null;
}
public boolean isFragment() throws CoreException {
return false;
}
public IApiComponent getHost() throws CoreException {
return null;
}
public boolean hasFragments() throws CoreException {
return false;
}
public String[] getLowestEEs() throws CoreException {
return null;
}
public ResolverError[] getErrors() throws CoreException {
return null;
}
public IElementDescriptor getHandle() {
return null;
}
public IReferenceCollection getExternalDependencies() {
return null;
}
}
List<IApiComponent> allComponents = new ArrayList<IApiComponent>();
String[] componentNames = new String[] {
"org.eclipse.swt",
"org.eclipse.equinox.simpleconfigurator.manipulator",
"org.eclipse.team.ui",
"org.eclipse.ecf",
"org.eclipse.core.commands",
"org.eclipse.equinox.util",
"org.eclipse.equinox.p2.jarprocessor",
"org.eclipse.equinox.security",
"org.eclipse.sdk",
"org.eclipse.help.ui",
"org.eclipse.jdt.doc.isv",
"org.eclipse.equinox.p2.core",
"org.eclipse.debug.ui",
"org.eclipse.ui.navigator",
"org.eclipse.update.core",
"javax.servlet.jsp",
"org.eclipse.ui.workbench",
"org.eclipse.equinox.event",
"org.eclipse.jdt.core",
"JavaSE-1.7",
"org.apache.commons.codec",
"org.apache.commons.logging",
"org.objectweb.asm",
"org.eclipse.core.filebuffers",
"org.eclipse.jsch.ui",
"org.eclipse.platform",
"org.eclipse.pde.ua.core",
"org.eclipse.help",
"org.eclipse.ecf.provider.filetransfer",
"org.eclipse.equinox.preferences",
"org.eclipse.equinox.p2.reconciler.dropins",
"org.eclipse.team.cvs.ui",
"org.eclipse.equinox.p2.metadata.generator",
"org.eclipse.equinox.registry",
"org.eclipse.update.ui",
"org.eclipse.swt",
"org.eclipse.ui.console",
"org.junit4",
"org.eclipse.ui.views.log",
"org.eclipse.equinox.p2.touchpoint.natives",
"org.eclipse.equinox.ds",
"org.eclipse.help.base",
"org.eclipse.equinox.frameworkadmin.equinox",
"org.eclipse.jdt",
"org.eclipse.osgi.util",
"org.sat4j.pb",
"org.hamcrest.core",
"org.eclipse.jdt.junit4.runtime",
"org.eclipse.equinox.p2.artifact.repository",
"org.eclipse.core.databinding.property",
"org.eclipse.core.databinding",
"org.eclipse.equinox.concurrent",
"org.eclipse.pde.ua.ui",
"org.eclipse.ui.navigator.resources",
"org.eclipse.equinox.http.servlet",
"org.eclipse.equinox.p2.ql",
"org.eclipse.jsch.core",
"javax.servlet",
"org.eclipse.jface",
"org.eclipse.equinox.p2.updatesite",
"org.eclipse.jface.databinding",
"org.eclipse.ui.browser",
"org.eclipse.ui",
"org.eclipse.core.databinding.beans",
"org.eclipse.search",
"org.eclipse.equinox.jsp.jasper.registry",
"org.eclipse.jdt.debug",
"org.eclipse.ecf.provider.filetransfer.ssl",
"org.eclipse.platform.doc.isv",
"org.eclipse.update.core.win32",
"org.eclipse.pde.api.tools",
"org.eclipse.ui.ide.application",
"org.eclipse.equinox.p2.metadata",
"org.eclipse.equinox.security.win32.x86",
"org.eclipse.core.contenttype",
"org.eclipse.equinox.p2.ui.sdk",
"org.eclipse.core.resources",
"org.eclipse.pde.launching",
"org.eclipse.ui.externaltools",
"org.eclipse.cvs",
"org.eclipse.equinox.p2.repository",
"org.eclipse.core.resources.win32.x86",
"org.eclipse.pde.ui",
"org.eclipse.core.databinding.observable",
"org.eclipse.pde.doc.user",
"org.eclipse.ui.editors",
"org.eclipse.jdt.compiler.tool",
"org.eclipse.jdt.apt.ui",
"org.eclipse.rcp",
"org.eclipse.ui.presentations.r21",
"org.eclipse.pde.runtime",
"org.eclipse.equinox.security.ui",
"org.eclipse.core.jobs",
"org.eclipse.update.configurator",
"org.eclipse.equinox.http.jetty",
"org.eclipse.pde.ds.ui",
"org.apache.lucene.analysis",
"org.eclipse.ui.views",
"org.eclipse.equinox.common",
"org.apache.lucene",
"org.eclipse.ecf.identity",
"org.eclipse.ui.workbench.texteditor",
"org.eclipse.equinox.p2.ui",
"org.eclipse.core.runtime.compatibility.auth",
"org.eclipse.ltk.core.refactoring",
"org.eclipse.ant.core",
"org.eclipse.ant.launching",
"com.jcraft.jsch",
"org.eclipse.ui.win32",
"org.eclipse.pde.core",
"org.eclipse.pde.build",
"org.eclipse.core.runtime.compatibility.registry",
"org.eclipse.ui.workbench.compatibility",
"org.eclipse.ltk.ui.refactoring",
"org.eclipse.jface.text",
"org.apache.commons.el",
"org.eclipse.compare.win32",
"org.eclipse.core.runtime",
"org.eclipse.jdt.ui",
"org.eclipse.compare",
"org.eclipse.ui.forms",
"org.eclipse.equinox.p2.extensionlocation",
"org.mortbay.jetty.util",
"org.eclipse.equinox.p2.director",
"org.eclipse.core.filesystem",
"org.eclipse.jdt.junit.core",
"org.eclipse.jdt.junit.runtime",
"org.eclipse.team.cvs.ssh2",
"org.eclipse.core.variables",
"org.eclipse.platform.doc.user",
"org.eclipse.equinox.p2.operations",
"org.eclipse.core.externaltools",
"org.eclipse.equinox.simpleconfigurator",
"org.eclipse.equinox.p2.touchpoint.eclipse",
"org.eclipse.equinox.p2.metadata.repository",
"org.eclipse.pde.ds.core",
"org.eclipse.jdt.apt.pluggable.core",
"org.eclipse.team.cvs.core",
"org.mortbay.jetty.server",
"org.eclipse.text",
"org.eclipse.jdt.compiler.apt",
"org.eclipse.equinox.p2.director.app",
"org.eclipse.jdt.debug.ui",
"org.eclipse.equinox.p2.repository.tools",
"org.apache.commons.httpclient",
"org.eclipse.equinox.p2.garbagecollector",
"org.eclipse.ui.ide",
"org.eclipse.equinox.p2.engine",
"org.apache.ant",
"org.eclipse.jdt.junit",
"org.eclipse.ecf.filetransfer",
"org.eclipse.core.filesystem.win32.x86",
"org.eclipse.core.net",
"org.eclipse.equinox.jsp.jasper",
"org.eclipse.equinox.p2.directorywatcher",
"org.eclipse.equinox.http.registry",
"org.junit",
"org.eclipse.pde.junit.runtime",
"org.eclipse.equinox.launcher",
"org.eclipse.jdt.launching",
"org.eclipse.core.expressions",
"org.eclipse.ui.intro",
"org.eclipse.team.core",
"org.eclipse.ui.intro.universal",
"org.eclipse.swt.win32.win32.x86",
"org.eclipse.osgi.services",
"org.eclipse.pde",
"org.eclipse.ui.views.properties.tabbed",
"org.eclipse.core.runtime.compatibility",
"org.eclipse.ant.ui",
"org.eclipse.ecf.provider.filetransfer.httpclient.ssl",
"org.eclipse.equinox.launcher.win32.win32.x86",
"org.eclipse.core.boot",
"org.apache.jasper",
"org.eclipse.help.webapp",
"org.sat4j.core",
"org.eclipse.pde.api.tools.ui",
"org.eclipse.equinox.p2.ui.sdk.scheduler",
"org.eclipse.debug.core",
"org.eclipse.jdt.core.manipulation",
"org.eclipse.osgi",
"org.eclipse.update.scheduler",
"org.eclipse.equinox.p2.updatechecker",
"org.eclipse.equinox.p2.console",
"org.eclipse.equinox.frameworkadmin",
"org.eclipse.compare.core",
"org.eclipse.jdt.apt.core",
"org.eclipse.help.appserver",
"org.eclipse.pde.ui.templates",
"org.eclipse.ecf.ssl",
"org.eclipse.ui.cheatsheets",
"com.ibm.icu",
"org.eclipse.core.net.win32.x86",
"org.eclipse.jdt.doc.user",
"org.eclipse.equinox.app",
"org.eclipse.ui.net",
"org.eclipse.equinox.p2.publisher",
"org.eclipse.ecf.provider.filetransfer.httpclient",
};
for (int i = 0, max = componentNames.length; i < max; i++) {
allComponents.add(new LocalApiComponent(componentNames[i]));
}
IApiComponent[] components = new IApiComponent[allComponents.size()];
allComponents.toArray(components);
FilteredElements excludedElements = new FilteredElements();
try {
Util.collectRegexIds(line, excludedElements, components, true);
} catch (Exception e) {
e.printStackTrace();
}
assertEquals("Wrong size", 2, excludedElements.getPartialMatches().size());
assertFalse("Wrong result", excludedElements.containsPartialMatch("org.eclipse.jdt.core"));
assertFalse("Wrong result", excludedElements.containsExactMatch("org.eclipse.jdt.core"));
}
public void testRegexExcludeList2() {
FilteredElements excludedElements = new FilteredElements();
assertEquals("Wrong size", 0, excludedElements.getPartialMatches().size());
assertEquals("Wrong size", 0, excludedElements.getExactMatches().size());
assertFalse("Wrong result", excludedElements.containsPartialMatch("org.eclipse.jdt.core"));
assertFalse("Wrong result", excludedElements.containsExactMatch("org.eclipse.jdt.core"));
}
public void testPluginXmlDecoding() {
InputStream stream = UtilTests.class.getResourceAsStream("plugin.xml.zip");
ZipInputStream inputStream = new ZipInputStream(new BufferedInputStream(stream));
String s = null;
try {
ZipEntry zEntry;
while ((zEntry = inputStream.getNextEntry()) != null) {
// if it is empty directory, continue
if (zEntry.isDirectory() || !zEntry.getName().endsWith(".xml")) {
continue;
}
s = new String(Util.getInputStreamAsCharArray(inputStream, -1, IApiCoreConstants.UTF_8));
}
} catch (IOException e) {
// ignore
} finally {
try {
if (inputStream != null)
inputStream.close();
} catch (IOException ioe) {
// ignore
}
}
assertNotNull("Should not be null", s);
try {
Util.parseDocument(s);
} catch(CoreException ce) {
assertTrue("Should not happen", false);
}
}
/**
* Tests that the utility method for reading in include/exclude regex tests throws an exception
* when the file doesn't exist.
*
* The regex parsing is tested more extensively in {@link org.eclipse.pde.api.tools.search.tests.SearchEngineTests}
*/
public void testInitializeRegexFilterList(){
File bogus = new File(SRC_LOC.toFile(), "DOES_NOT_EXIST");
try {
Util.initializeRegexFilterList(bogus.getAbsolutePath(), null, false);
fail("Util.initializeRegexFilterList should throw Core Exception for missing file");
} catch (CoreException e){
// Must hit here
}
}
}