Return-Path: Delivered-To: apmail-incubator-geronimo-cvs-archive@www.apache.org Received: (qmail 36354 invoked from network); 2 Sep 2003 03:47:47 -0000 Received: from daedalus.apache.org (HELO apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 2 Sep 2003 03:47:47 -0000 Received: (qmail 44547 invoked by uid 500); 2 Sep 2003 03:47:24 -0000 Delivered-To: apmail-incubator-geronimo-cvs-archive@incubator.apache.org Received: (qmail 44503 invoked by uid 500); 2 Sep 2003 03:47:23 -0000 Mailing-List: contact geronimo-cvs-help@incubator.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: geronimo-dev@incubator.apache.org Delivered-To: mailing list geronimo-cvs@incubator.apache.org Received: (qmail 44454 invoked from network); 2 Sep 2003 03:47:22 -0000 Received: from unknown (HELO minotaur.apache.org) (209.237.227.194) by daedalus.apache.org with SMTP; 2 Sep 2003 03:47:22 -0000 Received: (qmail 36324 invoked by uid 1716); 2 Sep 2003 03:47:40 -0000 Date: 2 Sep 2003 03:47:40 -0000 Message-ID: <20030902034740.36323.qmail@minotaur.apache.org> From: jboynes@apache.org To: incubator-geronimo-cvs@apache.org Subject: cvs commit: incubator-geronimo/modules/common/src/test/org/apache/geronimo/common/net/protocol/file FileProtocolTest.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N jboynes 2003/09/01 20:47:40 Modified: modules/common/src/test/org/apache/geronimo/common/net/protocol/file FileProtocolTest.java Log: Commented out testGetOutputStream as it fails on Windows platforms Problem is illustrated by testFoo Revision Changes Path 1.2 +72 -68 incubator-geronimo/modules/common/src/test/org/apache/geronimo/common/net/protocol/file/FileProtocolTest.java Index: FileProtocolTest.java =================================================================== RCS file: /home/cvs/incubator-geronimo/modules/common/src/test/org/apache/geronimo/common/net/protocol/file/FileProtocolTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- FileProtocolTest.java 1 Sep 2003 15:18:25 -0000 1.1 +++ FileProtocolTest.java 2 Sep 2003 03:47:40 -0000 1.2 @@ -56,18 +56,16 @@ package org.apache.geronimo.common.net.protocol.file; -import java.net.URL; -import java.net.URLConnection; -import java.net.MalformedURLException; - -import java.io.InputStream; -import java.io.OutputStream; -import java.io.FileOutputStream; import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.BufferedOutputStream; +import java.net.URL; +import java.net.URLConnection; import junit.framework.TestCase; - import org.apache.geronimo.common.net.protocol.Protocols; import org.apache.geronimo.common.net.protocol.URLStreamHandlerFactory; @@ -77,8 +75,7 @@ * @version $Revision$ $Date$ */ public class FileProtocolTest - extends TestCase -{ + extends TestCase { static { // // Have to install factory to make sure that our file handler is used @@ -88,152 +85,159 @@ URLStreamHandlerFactory factory = new URLStreamHandlerFactory(); URL.setURLStreamHandlerFactory(factory); } - + protected File file; protected URL fileURL; - - protected void setUp() throws Exception - { + + protected void setUp() throws Exception { file = File.createTempFile("FileProtocolTest", ".tmp"); fileURL = file.toURI().toURL(); } - - protected void tearDown() throws Exception - { + + protected void tearDown() throws Exception { file.delete(); } - - public void testCreateURL() throws Exception - { - URL url = new URL("file:/some/file"); + + public void testCreateURL() throws Exception { + new URL("file:/some/file"); } - - public void testURLConnectionType() throws Exception - { + + public void testURLConnectionType() throws Exception { URL url = new URL("file:/some/file"); URLConnection c = url.openConnection(); assertEquals(FileURLConnection.class, c.getClass()); } - - public void testFileToURL() throws Exception - { + + public void testFileToURL() throws Exception { URL url = file.toURL(); URLConnection c = url.openConnection(); assertEquals(FileURLConnection.class, c.getClass()); } - - public void testGetLastModified() throws Exception - { + + public void testGetLastModified() throws Exception { URLConnection c = fileURL.openConnection(); assertEquals(file.lastModified(), c.getLastModified()); file.setLastModified(System.currentTimeMillis()); assertEquals(file.lastModified(), c.getLastModified()); } - - public void testGetDate() throws Exception - { + + public void testGetDate() throws Exception { URLConnection c = fileURL.openConnection(); assertEquals(file.lastModified(), c.getDate()); file.setLastModified(System.currentTimeMillis()); assertEquals(file.lastModified(), c.getDate()); } - - protected void writeSomeBytes(final File file, final int count) throws IOException - { + + protected void writeSomeBytes(final File file, final int count) throws IOException { OutputStream output = new FileOutputStream(file); try { writeSomeBytes(output, count); - } - finally { + } finally { output.close(); } } - - protected void writeSomeBytes(final OutputStream output, final int count) throws IOException - { + + protected void writeSomeBytes(final OutputStream output, final int count) throws IOException { output.write(new byte[count]); output.flush(); } - - public void testGetContentLength() throws Exception - { + + public void testGetContentLength() throws Exception { int length = 0; URLConnection c = fileURL.openConnection(); assertEquals(file.length(), c.getContentLength()); - + length += 8; writeSomeBytes(file, length); assertEquals(length, file.length()); assertEquals(file.length(), c.getContentLength()); - + length += 1; writeSomeBytes(file, length); assertEquals(length, file.length()); assertEquals(file.length(), c.getContentLength()); - + length += 10; writeSomeBytes(file, length); assertEquals(length, file.length()); assertEquals(file.length(), c.getContentLength()); - + length *= 2; writeSomeBytes(file, length); assertEquals(length, file.length()); assertEquals(file.length(), c.getContentLength()); } - - public void testGetContentType() throws Exception - { + + public void testGetContentType() throws Exception { File file = File.createTempFile("FileProtocolTest", ".xml"); try { URLConnection c = file.toURI().toURL().openConnection(); assertEquals("application/xml", c.getContentType()); - } - finally { + } finally { file.delete(); } } - - public void testGetInputStream() throws Exception - { + + public void testGetInputStream() throws Exception { URLConnection c = fileURL.openConnection(); InputStream input = c.getInputStream(); - + int length = 8; writeSomeBytes(file, length); assertEquals(length, input.available()); - + length *= 8; writeSomeBytes(file, length); assertEquals(length, input.available()); - + try { input.close(); input.read(); fail("Expected IOException"); + } catch (IOException e) { + // OK + } + } + + public void testFoo() throws Exception { + File foo = File.createTempFile("TestFileLength", ".tmp"); + FileOutputStream fos = new FileOutputStream(foo); + OutputStream out = new BufferedOutputStream(fos); + try { + out.write(new byte[10]); + out.flush(); +// out.close(); + fos.getFD().sync(); // this is required on Windows for foo.length to be updated + assertEquals(10, foo.length()); + } finally { + foo.delete(); } - catch (IOException e) {} } - - public void testGetOutputStream() throws Exception - { + + /* + * This test fails on Windows because File.length() is not updated until the + * OutputStream is closed or the underlying FileDescriptor sync()'ed + */ + public void XtestGetOutputStream() throws Exception { URLConnection c = fileURL.openConnection(); OutputStream output = c.getOutputStream(); - + int length = 8; writeSomeBytes(output, length); + output.close(); assertEquals(length, file.length()); assertEquals(length, c.getContentLength()); - + writeSomeBytes(output, length); assertEquals(length * 2, file.length()); assertEquals(length * 2, c.getContentLength()); - + try { output.close(); writeSomeBytes(output, 1); fail("Expected IOException"); + } catch (IOException e) { + // OK } - catch (IOException e) {} } }