| package org.eclipse.epp.sfx.archive.tests; |
| |
| import java.io.File; |
| import java.io.InputStream; |
| import java.net.URL; |
| import java.util.Iterator; |
| |
| import junit.framework.TestCase; |
| |
| import org.eclipse.core.runtime.FileLocator; |
| import org.eclipse.epp.installer.internal.archive.sfx.XSEArchive; |
| import org.eclipse.epp.installer.internal.archive.sfx.XSEArchiveEntry; |
| import org.osgi.framework.Bundle; |
| |
| public class EntryTest extends TestCase { |
| |
| public void testEntries() throws Exception { |
| Bundle bundle = TestsActivator.plugin.getBundle(); |
| URL url = FileLocator.toFileURL(bundle.getEntry("test-install.exe")); |
| File file = new File(url.getFile()); |
| XSEArchive archive = new XSEArchive(file); |
| Iterator i = archive.entries(); |
| int items; |
| assertTrue(archive.getFlags() == 0); |
| assertEquals("foo $#launcher# bar", archive.getExecutableArgs()); |
| assertTrue(archive.getExecutablePath().equals("showcmdline.exe")); |
| XSEArchiveEntry dirEntry = (XSEArchiveEntry) archive.getEntry("emptyDir\\"); |
| assertTrue(dirEntry != null); |
| assertTrue(dirEntry.getSize() == 0); |
| assertTrue(dirEntry.isDirectory()); |
| assertFalse(dirEntry.isRequired()); |
| |
| XSEArchiveEntry placeholderEntry = (XSEArchiveEntry) archive.getEntry("placeholder"); |
| assertTrue(placeholderEntry != null); |
| assertTrue(placeholderEntry.getSize() == 11); |
| InputStream placeholderStream = archive.getInputStream(placeholderEntry); |
| byte[] data = new byte[11]; |
| int dataRead = placeholderStream.read(data); |
| assertTrue(dataRead == 11); |
| assertTrue("placeholder".equals(new String(data))); |
| assertTrue(placeholderStream.read() == -1); |
| assertFalse(placeholderEntry.isDirectory()); |
| assertFalse(placeholderEntry.isRequired()); |
| |
| XSEArchiveEntry executable = (XSEArchiveEntry) archive.getEntry("showcmdline.exe"); |
| assertTrue(executable != null); |
| assertTrue(executable.getSize() == 24576); |
| assertFalse(executable.isDirectory()); |
| assertTrue(executable.isRequired()); |
| assertTrue(i.hasNext()); |
| |
| i.next(); |
| i.next(); |
| i.next(); //3 items |
| |
| assertFalse(i.hasNext()); |
| } |
| |
| } |