You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by bo...@apache.org on 2013/11/04 12:23:16 UTC
svn commit: r1538560 -
/commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/zip/X5455_ExtendedTimestampTest.java
Author: bodewig
Date: Mon Nov 4 11:23:16 2013
New Revision: 1538560
URL: http://svn.apache.org/r1538560
Log:
additional roundtrip test for extended timestamp field
Modified:
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/zip/X5455_ExtendedTimestampTest.java
Modified: commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/zip/X5455_ExtendedTimestampTest.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/zip/X5455_ExtendedTimestampTest.java?rev=1538560&r1=1538559&r2=1538560&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/zip/X5455_ExtendedTimestampTest.java (original)
+++ commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/zip/X5455_ExtendedTimestampTest.java Mon Nov 4 11:23:16 2013
@@ -17,10 +17,14 @@
*/
package org.apache.commons.compress.archivers.zip;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
@@ -30,11 +34,14 @@ import java.util.TimeZone;
import java.util.zip.ZipException;
import static org.apache.commons.compress.AbstractTestCase.getFile;
+import static org.apache.commons.compress.AbstractTestCase.mkdir;
+import static org.apache.commons.compress.AbstractTestCase.rmdir;
import static org.apache.commons.compress.archivers.zip.X5455_ExtendedTimestamp.ACCESS_TIME_BIT;
import static org.apache.commons.compress.archivers.zip.X5455_ExtendedTimestamp.CREATE_TIME_BIT;
import static org.apache.commons.compress.archivers.zip.X5455_ExtendedTimestamp.MODIFY_TIME_BIT;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -56,11 +63,20 @@ public class X5455_ExtendedTimestampTest
*/
private X5455_ExtendedTimestamp xf;
+ private File tmpDir;
+
@Before
public void before() {
xf = new X5455_ExtendedTimestamp();
}
+ @After
+ public void removeTempFiles() {
+ if (tmpDir != null) {
+ rmdir(tmpDir);
+ }
+ }
+
@Test
public void testSampleFile() throws Exception {
@@ -389,6 +405,38 @@ public class X5455_ExtendedTimestampTest
parseReparse((byte) -1, MAX_TIME_SECONDS, (byte) 7, MOD_AC_CR_MAX, MOD_MAX);
}
+ @Test
+ public void testWriteReadRoundtrip() throws IOException {
+ tmpDir = mkdir("X5455");
+ File output = new File(tmpDir, "write_rewrite.zip");
+ final OutputStream out = new FileOutputStream(output);
+ Date d = new Date(97, 8, 24, 15, 10, 2);
+ ZipArchiveOutputStream os = null;
+ try {
+ os = new ZipArchiveOutputStream(out);
+ ZipArchiveEntry ze = new ZipArchiveEntry("foo");
+ xf.setModifyJavaTime(d);
+ xf.setFlags((byte) 1);
+ ze.addExtraField(xf);
+ os.putArchiveEntry(ze);
+ os.closeArchiveEntry();
+ } finally {
+ if (os != null) {
+ os.close();
+ }
+ }
+ out.close();
+
+ ZipFile zf = new ZipFile(output);
+ ZipArchiveEntry ze = zf.getEntry("foo");
+ X5455_ExtendedTimestamp ext =
+ (X5455_ExtendedTimestamp) ze.getExtraField(X5455);
+ assertNotNull(ext);
+ assertTrue(ext.isBit0_modifyTimePresent());
+ assertEquals(d, ext.getModifyJavaTime());
+ zf.close();
+ }
+
private void parseReparse(
final ZipLong time,
final byte[] expectedLocal,