harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From zhouke...@apache.org
Subject svn commit: r803418 [2/2] - /harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/URLConnectionTest.java
Date Wed, 12 Aug 2009 08:56:39 GMT

Modified: harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/URLConnectionTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/URLConnectionTest.java?rev=803418&r1=803417&r2=803418&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/URLConnectionTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/URLConnectionTest.java Wed Aug 12 08:56:39 2009
@@ -1,1243 +1,1245 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-package org.apache.harmony.luni.tests.java.net;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FilePermission;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.Authenticator;
-import java.net.FileNameMap;
-import java.net.HttpURLConnection;
-import java.net.JarURLConnection;
-import java.net.MalformedURLException;
-import java.net.PasswordAuthentication;
-import java.net.ProtocolException;
-import java.net.SocketPermission;
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.URLStreamHandler;
-import java.security.Permission;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-import java.util.List;
-import java.util.Map;
-import java.util.TimeZone;
-
-import tests.support.Support_Configuration;
-import tests.support.Support_HttpServer;
-import tests.support.Support_HttpServerSocket;
-import tests.support.Support_HttpTests;
-import tests.support.Support_Jetty;
-import tests.support.Support_PortManager;
-import tests.support.Support_URLConnector;
-import tests.support.resource.Support_Resources;
-
-public class URLConnectionTest extends junit.framework.TestCase {
-
-    static class MockURLConnection extends URLConnection {
-
-        public MockURLConnection(URL url) {
-            super(url);
-        }
-
-        @Override
-        public void connect() {
-            connected = true;
-        }
-    }
-
-    static class NewHandler extends URLStreamHandler {
-        protected URLConnection openConnection(URL u) throws IOException {
-            return new HttpURLConnection(u) {
-                @Override
-                public void connect() throws IOException {
-                    connected = true;
-                }
-
-                @Override
-                public void disconnect() {
-                    // do nothing
-                }
-
-                @Override
-                public boolean usingProxy() {
-                    return false;
-                }
-            };
-        }
-    }
-
-    private static int port;
-
-    static String getContentType(String fileName) throws IOException {
-        String resourceName = "org/apache/harmony/luni/tests/" + fileName;
-        URL url = ClassLoader.getSystemClassLoader().getResource(resourceName);
-        assertNotNull("Cannot find test resource " + resourceName, url);
-        return url.openConnection().getContentType();
-    }
-
-    URL url;
-
-    URLConnection uc;
-
-    protected void setUp() throws Exception {
-        url = new URL("http://localhost:" + port + "/");
-        uc = (HttpURLConnection) url.openConnection();
-        port = Support_Jetty.startDefaultHttpServer();
-    }
-
-    protected void tearDown() {
-        ((HttpURLConnection) uc).disconnect();
-    }
-
-    /**
-     * @tests java.net.URLConnection#addRequestProperty(String, String)
-     */
-    public void test_addRequestProperty() throws MalformedURLException,
-            IOException {
-
-        MockURLConnection u = new MockURLConnection(new URL(
-                "http://www.apache.org"));
-        try {
-            // Regression for HARMONY-604
-            u.addRequestProperty(null, "someValue");
-            fail("Expected NullPointerException");
-        } catch (NullPointerException e) {
-            // expected
-        }
-
-        u.connect();
-        try {
-            // state of connection is checked first
-            // so no NPE in case of null 'field' param
-            u.addRequestProperty(null, "someValue");
-            fail("Expected IllegalStateException");
-        } catch (IllegalStateException e) {
-            // expected
-        }
-    }
-
-    /**
-     * @tests java.net.URLConnection#addRequestProperty(java.lang.String,java.lang.String)
-     */
-    public void test_addRequestPropertyLjava_lang_StringLjava_lang_String()
-            throws IOException {
-        uc.setRequestProperty("prop", "yo");
-        uc.setRequestProperty("prop", "yo2");
-        assertEquals("yo2", uc.getRequestProperty("prop"));
-        Map<String, List<String>> map = uc.getRequestProperties();
-        List<String> props = uc.getRequestProperties().get("prop");
-        assertEquals(1, props.size());
-
-        try {
-            // the map should be unmodifiable
-            map.put("hi", Arrays.asList(new String[] { "bye" }));
-            fail("could modify map");
-        } catch (UnsupportedOperationException e) {
-            // Expected
-        }
-        try {
-            // the list should be unmodifiable
-            props.add("hi");
-            fail("could modify list");
-        } catch (UnsupportedOperationException e) {
-            // Expected
-        }
-
-        File resources = Support_Resources.createTempFolder();
-        Support_Resources.copyFile(resources, null, "hyts_att.jar");
-        URL fUrl1 = new URL("jar:file:" + resources.getPath()
-                + "/hyts_att.jar!/");
-        JarURLConnection con1 = (JarURLConnection) fUrl1.openConnection();
-        map = con1.getRequestProperties();
-        assertNotNull(map);
-        assertEquals(0, map.size());
-        try {
-            // the map should be unmodifiable
-            map.put("hi", Arrays.asList(new String[] { "bye" }));
-            fail();
-        } catch (UnsupportedOperationException e) {
-            // Expected
-        }
-    }
-
-    /**
-     * @tests java.net.URLConnection#getAllowUserInteraction()
-     */
-    public void test_getAllowUserInteraction() {
-        uc.setAllowUserInteraction(false);
-        assertFalse("getAllowUserInteraction should have returned false", uc
-                .getAllowUserInteraction());
-
-        uc.setAllowUserInteraction(true);
-        assertTrue("getAllowUserInteraction should have returned true", uc
-                .getAllowUserInteraction());
-    }
-
-    /**
-     * @tests java.net.URLConnection#getContent()
-     */
-    public void test_getContent() throws IOException {
-        byte[] ba = new byte[600];
-        ((InputStream) uc.getContent()).read(ba, 0, 600);
-        String s = new String(ba);
-        assertTrue("Incorrect content returned",
-                s.indexOf("Hello OneHandler") > 0);
-    }
-
-    /**
-     * @tests java.net.URLConnection#getContent(Class[])
-     */
-    public void test_getContent_LjavalangClass() throws IOException {
-        byte[] ba = new byte[600];
-
-        try {
-            ((InputStream) uc.getContent(null)).read(ba, 0, 600);
-            fail("should throw NullPointerException");
-        } catch (NullPointerException e) {
-            // expected
-        }
-
-        try {
-            ((InputStream) uc.getContent(new Class[] {})).read(ba, 0, 600);
-            fail("should throw NullPointerException");
-        } catch (NullPointerException e) {
-            // expected
-        }
-
-        try {
-            ((InputStream) uc.getContent(new Class[] { Class.class })).read(ba,
-                    0, 600);
-            fail("should throw NullPointerException");
-        } catch (NullPointerException e) {
-            // expected
-        }
-    }
-
-    /**
-     * @tests java.net.URLConnection#getContentEncoding()
-     */
-    public void test_getContentEncoding() {
-        // should not be known for a file
-        assertNull("getContentEncoding failed: " + uc.getContentEncoding(), uc
-                .getContentEncoding());
-    }
-
-    /**
-     * @tests java.net.URLConnection#getContentLength()
-     */
-    public void test_getContentLength() throws IOException {
-        assertEquals("getContentLength failed: " + uc.getContentLength(), 25,
-                uc.getContentLength());
-    }
-
-    /**
-     * @tests java.net.URLConnection#getContentType()
-     */
-    public void test_getContentType() throws IOException {
-        // should not be known for a file
-        assertTrue("getContentType failed: " + uc.getContentType(), uc
-                .getContentType().contains("text/html"));
-
-        File resources = Support_Resources.createTempFolder();
-        Support_Resources.copyFile(resources, null, "Harmony.GIF");
-        URL url = new URL("file:/" + resources.toString() + "/Harmony.GIF");
-        URLConnection conn = url.openConnection();
-        assertEquals("type not GIF", "image/gif", conn.getContentType());
-    }
-
-    /**
-     * @tests java.net.URLConnection#getContentType()
-     */
-    public void test_getContentType_regression() throws IOException {
-        // Regression for HARMONY-4699
-        assertEquals(getContentType("test.rtf"), "application/rtf");
-        assertEquals(getContentType("test.java"), "text/plain");
-        // RI would return "content/unknown"
-        assertEquals(getContentType("test.doc"), "application/msword");
-        assertEquals(getContentType("test.htx"), "text/html");
-        assertEquals(getContentType("test.xml"), "application/xml");
-        assertEquals(getContentType("."), "text/plain");
-    }
-
-    /**
-     * @tests java.net.URLConnection#getDate()
-     */
-    public void test_getDate() {
-        // should be greater than 930000000000L which represents the past
-        if (uc.getDate() == 0) {
-            System.out
-                    .println("WARNING: server does not support 'Date', in test_getDate");
-        } else {
-            assertTrue("getDate gave wrong date: " + uc.getDate(),
-                    uc.getDate() > 930000000000L);
-        }
-    }
-
-    /**
-     * @tests java.net.URLConnection#getDefaultAllowUserInteraction()
-     */
-    public void test_getDefaultAllowUserInteraction() {
-        boolean oldSetting = URLConnection.getDefaultAllowUserInteraction();
-
-        URLConnection.setDefaultAllowUserInteraction(false);
-        assertFalse(
-                "getDefaultAllowUserInteraction should have returned false",
-                URLConnection.getDefaultAllowUserInteraction());
-
-        URLConnection.setDefaultAllowUserInteraction(true);
-        assertTrue("getDefaultAllowUserInteraction should have returned true",
-                URLConnection.getDefaultAllowUserInteraction());
-
-        URLConnection.setDefaultAllowUserInteraction(oldSetting);
-    }
-
-    /**
-     * @tests java.net.URLConnection#getDefaultRequestProperty(java.lang.String)
-     */
-    @SuppressWarnings("deprecation")
-    public void test_getDefaultRequestPropertyLjava_lang_String() {
-        URLConnection.setDefaultRequestProperty("Shmoo", "Blah");
-        assertNull("setDefaultRequestProperty should have returned: null",
-                URLConnection.getDefaultRequestProperty("Shmoo"));
-
-        URLConnection.setDefaultRequestProperty("Shmoo", "Boom");
-        assertNull("setDefaultRequestProperty should have returned: null",
-                URLConnection.getDefaultRequestProperty("Shmoo"));
-
-        assertNull("setDefaultRequestProperty should have returned: null",
-                URLConnection.getDefaultRequestProperty("Kapow"));
-
-        URLConnection.setDefaultRequestProperty("Shmoo", null);
-    }
-
-    /**
-     * @tests java.net.URLConnection#getDefaultUseCaches()
-     */
-    public void test_getDefaultUseCaches() {
-        boolean oldSetting = uc.getDefaultUseCaches();
-
-        uc.setDefaultUseCaches(false);
-        assertFalse("getDefaultUseCaches should have returned false", uc
-                .getDefaultUseCaches());
-
-        uc.setDefaultUseCaches(true);
-        assertTrue("getDefaultUseCaches should have returned true", uc
-                .getDefaultUseCaches());
-
-        uc.setDefaultUseCaches(oldSetting);
-    }
-
-    /**
-     * @tests java.net.URLConnection#getDoInput()
-     */
-    public void test_getDoInput() {
-        assertTrue("Should be set to true by default", uc.getDoInput());
-
-        uc.setDoInput(true);
-        assertTrue("Should have been set to true", uc.getDoInput());
-
-        uc.setDoInput(false);
-        assertFalse("Should have been set to false", uc.getDoInput());
-    }
-
-    /**
-     * @tests java.net.URLConnection#getDoOutput()
-     */
-    public void test_getDoOutput() {
-        assertFalse("Should be set to false by default", uc.getDoOutput());
-
-        uc.setDoOutput(true);
-        assertTrue("Should have been set to true", uc.getDoOutput());
-
-        uc.setDoOutput(false);
-        assertFalse("Should have been set to false", uc.getDoOutput());
-    }
-
-    /**
-     * @tests java.net.URLConnection#getExpiration()
-     */
-    public void test_getExpiration() {
-        // should be unknown
-        assertEquals("getExpiration returned wrong expiration", 0, uc
-                .getExpiration());
-    }
-
-    /**
-     * @tests java.net.URLConnection#getFileNameMap()
-     */
-    public void test_getFileNameMap() {
-        // Tests for the standard MIME types -- users may override these
-        // in their JRE
-        FileNameMap map = URLConnection.getFileNameMap();
-
-        // These types are defaulted
-        assertEquals("text/html", map.getContentTypeFor(".htm"));
-        assertEquals("text/html", map.getContentTypeFor(".html"));
-        assertEquals("text/plain", map.getContentTypeFor(".text"));
-        assertEquals("text/plain", map.getContentTypeFor(".txt"));
-
-        // These types come from the properties file
-        assertEquals("application/pdf", map.getContentTypeFor(".pdf"));
-        assertEquals("application/zip", map.getContentTypeFor(".zip"));
-
-        URLConnection.setFileNameMap(new FileNameMap() {
-            public String getContentTypeFor(String fileName) {
-                return "Spam!";
-            }
-        });
-        try {
-            assertEquals("Incorrect FileNameMap returned", "Spam!",
-                    URLConnection.getFileNameMap().getContentTypeFor(null));
-        } finally {
-            // unset the map so other tests don't fail
-            URLConnection.setFileNameMap(null);
-        }
-        // RI fails since it does not support fileName that does not begin with
-        // '.'
-        assertEquals("image/gif", map.getContentTypeFor("gif"));
-    }
-
-    /**
-     * @tests java.net.URLConnection#getHeaderFieldDate(java.lang.String, long)
-     */
-    public void test_getHeaderFieldDateLjava_lang_StringJ() {
-
-        if (uc.getHeaderFieldDate("Date", 22L) == 22L) {
-            System.out
-                    .println("WARNING: Server does not support 'Date', test_getHeaderFieldDateLjava_lang_StringJ not run");
-            return;
-        }
-        assertTrue("Wrong value returned: "
-                + uc.getHeaderFieldDate("Date", 22L), uc.getHeaderFieldDate(
-                "Date", 22L) > 930000000000L);
-
-        long time = uc.getHeaderFieldDate("Last-Modified", 0);
-        assertEquals("Wrong date: ", time,
-                Support_Configuration.URLConnectionLastModified);
-    }
-
-    /**
-     * @tests java.net.URLConnection#getHeaderField(int)
-     */
-    public void test_getHeaderFieldI() {
-        int i = 0;
-        String hf;
-        boolean foundResponse = false;
-        while ((hf = uc.getHeaderField(i++)) != null) {
-            if (hf.equals(Support_Configuration.HomeAddressSoftware)) {
-                foundResponse = true;
-            }
-        }
-        assertTrue("Could not find header field containing \""
-                + Support_Configuration.HomeAddressSoftware + "\"",
-                foundResponse);
-
-        i = 0;
-        foundResponse = false;
-        while ((hf = uc.getHeaderField(i++)) != null) {
-            if (hf.equals(Support_Configuration.HomeAddressResponse)) {
-                foundResponse = true;
-            }
-        }
-        assertTrue("Could not find header field containing \""
-                + Support_Configuration.HomeAddressResponse + "\"",
-                foundResponse);
-    }
-
-    /**
-     * @tests java.net.URLConnection#getHeaderFieldKey(int)
-     */
-    public void test_getHeaderFieldKeyI() {
-        String hf;
-        boolean foundResponse = false;
-        for (int i = 0; i < 100; i++) {
-            hf = uc.getHeaderFieldKey(i);
-            if (hf != null && hf.toLowerCase().equals("content-type")) {
-                foundResponse = true;
-                break;
-            }
-        }
-        assertTrue(
-                "Could not find header field key containing \"content-type\"",
-                foundResponse);
-    }
-
-    /**
-     * @tests java.net.URLConnection#getHeaderField(java.lang.String)
-     */
-    public void test_getHeaderFieldLjava_lang_String() {
-        String hf;
-        hf = uc.getHeaderField("Content-Encoding");
-        if (hf != null) {
-            assertNull(
-                    "Wrong value returned for header field 'Content-Encoding': "
-                            + hf, hf);
-        }
-        hf = uc.getHeaderField("Content-Length");
-        if (hf != null) {
-            assertEquals(
-                    "Wrong value returned for header field 'Content-Length': ",
-                    "25", hf);
-        }
-        hf = uc.getHeaderField("Content-Type");
-        if (hf != null) {
-            assertTrue("Wrong value returned for header field 'Content-Type': "
-                    + hf, hf.contains("text/html"));
-        }
-        hf = uc.getHeaderField("content-type");
-        if (hf != null) {
-            assertTrue("Wrong value returned for header field 'content-type': "
-                    + hf, hf.contains("text/html"));
-        }
-        hf = uc.getHeaderField("Date");
-        if (hf != null) {
-            assertTrue("Wrong value returned for header field 'Date': " + hf,
-                    Integer.parseInt(hf.substring(hf.length() - 17,
-                            hf.length() - 13)) >= 1999);
-        }
-        hf = uc.getHeaderField("Expires");
-        if (hf != null) {
-            assertNull(
-                    "Wrong value returned for header field 'Expires': " + hf,
-                    hf);
-        }
-        hf = uc.getHeaderField("SERVER");
-        if (hf != null) {
-            assertTrue("Wrong value returned for header field 'SERVER': " + hf
-                    + " (expected " + Support_Configuration.HomeAddressSoftware
-                    + ")", hf.equals(Support_Configuration.HomeAddressSoftware));
-        }
-        hf = uc.getHeaderField("Last-Modified");
-        if (hf != null) {
-            assertTrue(
-                    "Wrong value returned for header field 'Last-Modified': "
-                            + hf,
-                    hf
-                            .equals(Support_Configuration.URLConnectionLastModifiedString));
-        }
-        hf = uc.getHeaderField("accept-ranges");
-        if (hf != null) {
-            assertTrue(
-                    "Wrong value returned for header field 'accept-ranges': "
-                            + hf, hf.equals("bytes"));
-        }
-        hf = uc.getHeaderField("DoesNotExist");
-        if (hf != null) {
-            assertNull("Wrong value returned for header field 'DoesNotExist': "
-                    + hf, hf);
-        }
-    }
-
-    /**
-     * @tests java.net.URLConnection#getHeaderFields()
-     */
-    public void test_getHeaderFields() throws IOException {
-        try {
-            uc.getInputStream();
-        } catch (IOException e) {
-            fail();
-        }
-
-        Map<String, List<String>> headers = uc.getHeaderFields();
-        assertNotNull(headers);
-
-        // content-length should always appear
-        List<String> list = headers.get("Content-Length");
-        if (list == null) {
-            list = headers.get("content-length");
-        }
-        assertNotNull(list);
-        String contentLength = (String) list.get(0);
-        assertNotNull(contentLength);
-
-        // there should be at least 2 headers
-        assertTrue(headers.size() > 1);
-        File resources = Support_Resources.createTempFolder();
-        Support_Resources.copyFile(resources, null, "hyts_att.jar");
-        URL fUrl1 = new URL("jar:file:" + resources.getPath()
-                + "/hyts_att.jar!/");
-        JarURLConnection con1 = (JarURLConnection) fUrl1.openConnection();
-        headers = con1.getHeaderFields();
-        assertNotNull(headers);
-        assertEquals(0, headers.size());
-        try {
-            // the map should be unmodifiable
-            headers.put("hi", Arrays.asList(new String[] { "bye" }));
-            fail("The map should be unmodifiable");
-        } catch (UnsupportedOperationException e) {
-            // Expected
-        }
-    }
-
-    /**
-     * @tests java.net.URLConnection#getIfModifiedSince()
-     */
-    public void test_getIfModifiedSince() {
-        uc.setIfModifiedSince(200);
-        assertEquals("Returned wrong ifModifiedSince value", 200, uc
-                .getIfModifiedSince());
-    }
-
-    /**
-     * @tests java.net.URLConnection#getInputStream()
-     */
-    public void test_getInputStream() throws IOException {
-        InputStream is = uc.getInputStream();
-        byte[] ba = new byte[600];
-        is.read(ba, 0, 600);
-        is.close();
-        String s = new String(ba);
-        assertTrue("Incorrect input stream read",
-                s.indexOf("Hello OneHandler") > 0);
-
-        // open an non-existent file
-        URL url = new URL("http://localhost:" + port + "/fred-zz6.txt");
-        is = url.openStream();
-        assertTrue("available() less than 0", is.available() >= 0);
-        is.close();
-
-        // create a server socket
-        Support_HttpServerSocket serversocket = new Support_HttpServerSocket();
-
-        // create a client connector
-        Support_URLConnector client = new Support_URLConnector();
-
-        // pass both to the HttpTest
-        Support_HttpTests test = new Support_HttpTests(serversocket, client);
-
-        // run various tests common to both HttpConnections and
-        // HttpURLConnections
-        test.runTests(this);
-
-        // Authentication test is separate from other tests because it is only
-        // in HttpURLConnection and not supported in HttpConnection
-
-        serversocket = new Support_HttpServerSocket();
-        Support_HttpServer server = new Support_HttpServer(serversocket, this);
-        int p = Support_PortManager.getNextPort();
-        server.startServer(p);
-
-        // it is the Support_HttpServer's responsibility to close this
-        // serversocket
-        serversocket = null;
-
-        final String authTestUrl = "http://localhost:" + server.getPort()
-                + Support_HttpServer.AUTHTEST;
-
-        // Authentication test
-        // set up a very simple authenticator
-        Authenticator.setDefault(new Authenticator() {
-            public PasswordAuthentication getPasswordAuthentication() {
-                return new PasswordAuthentication("test", "password"
-                        .toCharArray());
-            }
-        });
-        try {
-            client.open(authTestUrl);
-            is = client.getInputStream();
-            int c = is.read();
-            while (c > 0) {
-                c = is.read();
-            }
-            c = is.read();
-            is.close();
-        } catch (FileNotFoundException e) {
-            fail("Error performing authentication test: " + e);
-        }
-
-        final String invalidLocation = "/missingFile.htm";
-        final String redirectTestUrl = "http://localhost:" + server.getPort()
-                + Support_HttpServer.REDIRECTTEST;
-
-        // test redirecting to a non-existent URL on the same host
-        try {
-            // append the response code for the server to return
-
-            client.open(redirectTestUrl + "/" + Support_HttpServer.MOVED_PERM
-                    + "-" + invalidLocation);
-            is = client.getInputStream();
-
-            int c = is.read();
-            while (c > 0) {
-                c = is.read();
-            }
-            c = is.read();
-            is.close();
-            fail("Incorrect data returned on redirect to non-existent file.");
-        } catch (FileNotFoundException e) {
-        }
-        server.stopServer();
-
-    }
-
-    /**
-     * @tests java.net.URLConnection#getLastModified()
-     */
-    public void test_getLastModified() {
-        if (uc.getLastModified() == 0) {
-            System.out
-                    .println("WARNING: Server does not support 'Last-Modified', test_getLastModified() not run");
-            return;
-        }
-        assertTrue(
-                "Returned wrong getLastModified value.  Wanted: "
-                        + Support_Configuration.URLConnectionLastModified
-                        + " got: " + uc.getLastModified(),
-                uc.getLastModified() == Support_Configuration.URLConnectionLastModified);
-    }
-
-    /**
-     * @tests java.net.URLConnection#getOutputStream()
-     */
-    public void test_getOutputStream() throws Exception {
-        int port = Support_Jetty.startDefaultServlet();
-        try {
-            boolean exception = false;
-            URL test;
-            java.net.URLConnection conn2 = null;
-
-            test = new URL("http://localhost:" + port + "/");
-            conn2 = (java.net.URLConnection) test.openConnection();
-
-            try {
-                conn2.getOutputStream();
-                fail("should throw ProtocolException");
-            } catch (java.net.ProtocolException e) {
-                // correct
-            }
-
-            conn2.setDoOutput(true);
-            conn2.getOutputStream();
-            conn2.connect();
-            conn2.getOutputStream();
-
-            try {
-                conn2.getInputStream();
-                conn2.getOutputStream();
-                fail("should throw ProtocolException");
-            } catch (ProtocolException e) {
-                // expected.
-            }
-
-            URL u = new URL("http://localhost:" + port + "/");
-            java.net.HttpURLConnection conn = (java.net.HttpURLConnection) u
-                    .openConnection();
-            conn.setDoOutput(true);
-            conn.setRequestMethod("POST");
-            OutputStream out = conn.getOutputStream();
-            String posted = "this is a test";
-            out.write(posted.getBytes());
-            out.close();
-            conn.getResponseCode();
-            InputStream is = conn.getInputStream();
-            String response = "";
-            byte[] b = new byte[1024];
-            int count = 0;
-            while ((count = is.read(b)) > 0) {
-                response += new String(b, 0, count);
-            }
-            assertEquals("Response to POST method invalid 1", posted, response);
-
-            posted = "just a test";
-            u = new URL("http://localhost:" + port + "/");
-            conn = (java.net.HttpURLConnection) u.openConnection();
-            conn.setDoOutput(true);
-            conn.setRequestMethod("POST");
-            conn.setRequestProperty("Content-length", String.valueOf(posted
-                    .length()));
-            out = conn.getOutputStream();
-            out.write(posted.getBytes());
-            out.close();
-            conn.getResponseCode();
-            is = conn.getInputStream();
-            response = "";
-            b = new byte[1024];
-            count = 0;
-            while ((count = is.read(b)) > 0) {
-                response += new String(b, 0, count);
-            }
-            assertTrue("Response to POST method invalid 2", response
-                    .equals(posted));
-
-            posted = "just another test";
-            u = new URL("http://localhost:" + port + "/");
-            conn = (java.net.HttpURLConnection) u.openConnection();
-            conn.setDoOutput(true);
-            conn.setRequestMethod("POST");
-            conn.setRequestProperty("Content-length", String.valueOf(posted
-                    .length()));
-            out = conn.getOutputStream();
-            out.write(posted.getBytes());
-            // out.close();
-            conn.getResponseCode();
-            is = conn.getInputStream();
-            response = "";
-            b = new byte[1024];
-            count = 0;
-            while ((count = is.read(b)) > 0) {
-                response += new String(b, 0, count);
-            }
-            assertTrue("Response to POST method invalid 3", response
-                    .equals(posted));
-
-            u = new URL("http://localhost:" + port + "/");
-            conn = (java.net.HttpURLConnection) u.openConnection();
-            conn.setDoOutput(true);
-            conn.setRequestMethod("POST");
-            int result = conn.getResponseCode();
-            assertTrue("Unexpected response code: " + result, result == 200);
-
-        } finally {
-            Support_Jetty.startDefaultServlet();
-        }
-    }
-
-    /**
-     * @tests java.net.URLConnection#getPermission()
-     */
-    public void test_getPermission() throws Exception {
-        java.security.Permission p = uc.getPermission();
-        assertTrue("Permission of wrong type: " + p.toString(),
-                p instanceof java.net.SocketPermission);
-        assertTrue("Permission has wrong name: " + p.getName(), p.getName()
-                .contains("localhost:" + port));
-
-        URL fileUrl = new URL("file:myfile");
-        Permission perm = new FilePermission("myfile", "read");
-        Permission result = fileUrl.openConnection().getPermission();
-        assertTrue("Wrong file: permission 1:" + perm + " , " + result, result
-                .equals(perm));
-
-        fileUrl = new URL("file:/myfile/");
-        perm = new FilePermission("/myfile", "read");
-        result = fileUrl.openConnection().getPermission();
-        assertTrue("Wrong file: permission 2:" + perm + " , " + result, result
-                .equals(perm));
-
-        fileUrl = new URL("file:///host/volume/file");
-        perm = new FilePermission("/host/volume/file", "read");
-        result = fileUrl.openConnection().getPermission();
-        assertTrue("Wrong file: permission 3:" + perm + " , " + result, result
-                .equals(perm));
-
-        URL httpUrl = new URL("http://home/myfile/");
-        assertTrue("Wrong http: permission", httpUrl.openConnection()
-                .getPermission().equals(
-                        new SocketPermission("home:80", "connect")));
-        httpUrl = new URL("http://home2:8080/myfile/");
-        assertTrue("Wrong http: permission", httpUrl.openConnection()
-                .getPermission().equals(
-                        new SocketPermission("home2:8080", "connect")));
-        URL ftpUrl = new URL("ftp://home/myfile/");
-        assertTrue("Wrong ftp: permission", ftpUrl.openConnection()
-                .getPermission().equals(
-                        new SocketPermission("home:21", "connect")));
-        ftpUrl = new URL("ftp://home2:22/myfile/");
-        assertTrue("Wrong ftp: permission", ftpUrl.openConnection()
-                .getPermission().equals(
-                        new SocketPermission("home2:22", "connect")));
-
-        URL jarUrl = new URL("jar:file:myfile!/");
-        perm = new FilePermission("myfile", "read");
-        result = jarUrl.openConnection().getPermission();
-        assertTrue("Wrong jar: permission:" + perm + " , " + result, result
-                .equals(new FilePermission("myfile", "read")));
-    }
-
-    /**
-     * @tests java.net.URLConnection#getRequestProperties()
-     */
-    public void test_getRequestProperties() {
-        uc.setRequestProperty("whatever", "you like");
-        Map headers = uc.getRequestProperties();
-
-        // content-length should always appear
-        List header = (List) headers.get("whatever");
-        assertNotNull(header);
-
-        assertEquals("you like", header.get(0));
-
-        assertTrue(headers.size() >= 1);
-
-        try {
-            // the map should be unmodifiable
-            headers.put("hi", "bye");
-            fail();
-        } catch (UnsupportedOperationException e) {
-        }
-        try {
-            // the list should be unmodifiable
-            header.add("hi");
-            fail();
-        } catch (UnsupportedOperationException e) {
-        }
-
-    }
-
-    /**
-     * @tests java.net.URLConnection#getRequestProperties()
-     */
-    public void test_getRequestProperties_Exception() throws IOException {
-        URL url = new URL("http", "test", 80, "index.html", new NewHandler());
-        URLConnection urlCon = url.openConnection();
-        urlCon.connect();
-
-        try {
-            urlCon.getRequestProperties();
-            fail("should throw IllegalStateException");
-        } catch (IllegalStateException e) {
-            // expected
-        }
-    }
-
-    /**
-     * @tests java.net.URLConnection#getRequestProperty(java.lang.String)
-     */
-    public void test_getRequestProperty_LString_Exception() throws IOException {
-        URL url = new URL("http", "test", 80, "index.html", new NewHandler());
-        URLConnection urlCon = url.openConnection();
-        urlCon.setRequestProperty("test", "testProperty");
-        assertNull(urlCon.getRequestProperty("test"));
-
-        urlCon.connect();
-        try {
-            urlCon.getRequestProperty("test");
-            fail("should throw IllegalStateException");
-        } catch (IllegalStateException e) {
-            // expected
-        }
-    }
-
-    /**
-     * @tests java.net.URLConnection#getRequestProperty(java.lang.String)
-     */
-    public void test_getRequestPropertyLjava_lang_String() {
-        uc.setRequestProperty("Yo", "yo");
-        assertTrue("Wrong property returned: " + uc.getRequestProperty("Yo"),
-                uc.getRequestProperty("Yo").equals("yo"));
-        assertNull("Wrong property returned: " + uc.getRequestProperty("No"),
-                uc.getRequestProperty("No"));
-    }
-
-    /**
-     * @tests java.net.URLConnection#getURL()
-     */
-    public void test_getURL() {
-        assertTrue("Incorrect URL returned", uc.getURL().equals(url));
-    }
-
-    /**
-     * @tests java.net.URLConnection#getUseCaches()
-     */
-    public void test_getUseCaches() {
-        uc.setUseCaches(false);
-        assertTrue("getUseCaches should have returned false", !uc
-                .getUseCaches());
-        uc.setUseCaches(true);
-        assertTrue("getUseCaches should have returned true", uc.getUseCaches());
-    }
-
-    /**
-     * @tests java.net.URLConnection#guessContentTypeFromStream(java.io.InputStream)
-     */
-    public void test_guessContentTypeFromStreamLjava_io_InputStream()
-            throws IOException {
-        String[] headers = new String[] { "<html>", "<head>", " <head ",
-                "<body", "<BODY ", "<!DOCTYPE html", "<?xml " };
-        String[] expected = new String[] { "text/html", "text/html",
-                "text/html", "text/html", "text/html", "text/html",
-                "application/xml" };
-
-        String[] encodings = new String[] { "ASCII", "UTF-8", "UTF-16BE",
-                "UTF-16LE", "UTF-32BE", "UTF-32LE" };
-        for (int i = 0; i < headers.length; i++) {
-            for (String enc : encodings) {
-                InputStream is = new ByteArrayInputStream(toBOMBytes(
-                        headers[i], enc));
-                String mime = URLConnection.guessContentTypeFromStream(is);
-                assertEquals("checking " + headers[i] + " with " + enc,
-                        expected[i], mime);
-            }
-        }
-
-        // Try simple case
-        try {
-            URLConnection.guessContentTypeFromStream(null);
-            fail("should throw NullPointerException");
-        } catch (NullPointerException e) {
-            // expected
-        }
-
-        // Test magic bytes
-        byte[][] bytes = new byte[][] { { 'P', 'K' }, { 'G', 'I' } };
-        expected = new String[] { "application/zip", "image/gif" };
-
-        for (int i = 0; i < bytes.length; i++) {
-            InputStream is = new ByteArrayInputStream(bytes[i]);
-            assertEquals(expected[i], URLConnection
-                    .guessContentTypeFromStream(is));
-        }
-    }
-
-    /**
-     * @tests java.net.URLConnection#setAllowUserInteraction(boolean)
-     */
-    public void test_setAllowUserInteractionZ() throws MalformedURLException {
-        // Regression for HARMONY-72
-        MockURLConnection u = new MockURLConnection(new URL(
-                "http://www.apache.org"));
-        u.connect();
-        try {
-            u.setAllowUserInteraction(false);
-            fail("Assert 0: expected an IllegalStateException");
-        } catch (IllegalStateException e) {
-            // expected
-        }
-
-    }
-
-    /**
-     * @tests java.net.URLConnection#setConnectTimeout(int)
-     */
-    public void test_setConnectTimeoutI() throws Exception {
-        URLConnection uc = new URL("http://localhost").openConnection();
-        assertEquals(0, uc.getConnectTimeout());
-        uc.setConnectTimeout(0);
-        assertEquals(0, uc.getConnectTimeout());
-        try {
-            uc.setConnectTimeout(-100);
-            fail("should throw IllegalArgumentException");
-        } catch (IllegalArgumentException e) {
-            // correct
-        }
-        assertEquals(0, uc.getConnectTimeout());
-        uc.setConnectTimeout(100);
-        assertEquals(100, uc.getConnectTimeout());
-        try {
-            uc.setConnectTimeout(-1);
-            fail("should throw IllegalArgumentException");
-        } catch (IllegalArgumentException e) {
-            // correct
-        }
-        assertEquals(100, uc.getConnectTimeout());
-    }
-
-    /**
-     * @tests java.net.URLConnection#setDefaultAllowUserInteraction(boolean)
-     */
-    public void test_setDefaultAllowUserInteractionZ() {
-        assertTrue("Used to test", true);
-    }
-
-    /**
-     * @tests java.net.URLConnection#setDefaultRequestProperty(java.lang.String,
-     *        java.lang.String)
-     */
-    public void test_setDefaultRequestPropertyLjava_lang_StringLjava_lang_String() {
-        assertTrue("Used to test", true);
-    }
-
-    /**
-     * @tests java.net.URLConnection#setDefaultUseCaches(boolean)
-     */
-    public void test_setDefaultUseCachesZ() {
-        assertTrue("Used to test", true);
-    }
-
-    /**
-     * @throws IOException
-     * @throws MalformedURLException
-     * @tests java.net.URLConnection#setDoInput(boolean)
-     */
-    public void test_setDoInputZ() throws MalformedURLException, IOException {
-        assertTrue("Used to test", true);
-        HttpURLConnection u = null;
-
-        u = (HttpURLConnection) (new URL("http://localhost:" + port)
-                .openConnection());
-        u.connect();
-
-        try {
-            u.setDoInput(true);
-        } catch (IllegalStateException e) { // expected
-        }
-    }
-
-    /**
-     * @throws IOException
-     * @throws MalformedURLException
-     * @tests java.net.URLConnection#setDoOutput(boolean)
-     */
-    public void test_setDoOutputZ() throws MalformedURLException, IOException {
-        assertTrue("Used to test", true);
-        HttpURLConnection u = null;
-
-        u = (HttpURLConnection) (new URL("http://localhost:" + port)
-                .openConnection());
-        u.connect();
-
-        try {
-            u.setDoOutput(true);
-        } catch (IllegalStateException e) { // expected
-        }
-    }
-
-    /**
-     * @throws IOException
-     * @tests java.net.URLConnection#setFileNameMap(java.net.FileNameMap)
-     */
-    public void test_setFileNameMapLjava_net_FileNameMap() throws IOException {
-        // nothing happens if set null
-        URLConnection.setFileNameMap(null);
-        // take no effect
-        assertNotNull(URLConnection.getFileNameMap());
-    }
-
-    /**
-     * @tests java.net.URLConnection#setIfModifiedSince(long)
-     */
-    public void test_setIfModifiedSinceJ() throws IOException {
-        URL url = new URL("http://localhost:8080/");
-        URLConnection connection = url.openConnection();
-        Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
-        cal.clear();
-        cal.set(2000, Calendar.MARCH, 5);
-
-        long sinceTime = cal.getTime().getTime();
-        connection.setIfModifiedSince(sinceTime);
-        assertEquals("Wrong date set", sinceTime, connection
-                .getIfModifiedSince());
-
-    }
-
-    /**
-     * @tests java.net.URLConnection#setReadTimeout(int)
-     */
-    public void test_setReadTimeoutI() throws Exception {
-        URLConnection uc = new URL("http://localhost").openConnection();
-        assertEquals(0, uc.getReadTimeout());
-        uc.setReadTimeout(0);
-        assertEquals(0, uc.getReadTimeout());
-        try {
-            uc.setReadTimeout(-100);
-            fail("should throw IllegalArgumentException");
-        } catch (IllegalArgumentException e) {
-            // correct
-        }
-        assertEquals(0, uc.getReadTimeout());
-        uc.setReadTimeout(100);
-        assertEquals(100, uc.getReadTimeout());
-        try {
-            uc.setReadTimeout(-1);
-            fail("should throw IllegalArgumentException");
-        } catch (IllegalArgumentException e) {
-            // correct
-        }
-        assertEquals(100, uc.getReadTimeout());
-    }
-
-    /**
-     * @tests java.net.URLConnection#setRequestProperty(String, String)
-     */
-    public void test_setRequestProperty() throws MalformedURLException,
-            IOException {
-
-        MockURLConnection u = new MockURLConnection(new URL(
-                "http://www.apache.org"));
-        try {
-            u.setRequestProperty(null, "someValue");
-            fail("Expected NullPointerException");
-        } catch (NullPointerException e) {
-            // expected
-        }
-
-        u.connect();
-        try {
-            // state of connection is checked first
-            // so no NPE in case of null 'field' param
-            u.setRequestProperty(null, "someValue");
-            fail("Expected IllegalStateException");
-        } catch (IllegalStateException e) {
-            // expected
-        }
-    }
-
-    /**
-     * @tests java.net.URLConnection#setRequestProperty(java.lang.String,
-     *        java.lang.String)
-     */
-    public void test_setRequestPropertyLjava_lang_StringLjava_lang_String() {
-        assertTrue("Used to test", true);
-    }
-
-    /**
-     * @tests java.net.URLConnection#setUseCaches(boolean)
-     */
-    public void test_setUseCachesZ() throws MalformedURLException {
-        // Regression for HARMONY-71
-        MockURLConnection u = new MockURLConnection(new URL(
-                "http://www.apache.org"));
-        u.connect();
-        try {
-            u.setUseCaches(true);
-            fail("Assert 0: expected an IllegalStateException");
-        } catch (IllegalStateException e) {
-            // expected
-        }
-    }
-
-    /**
-     * @tests java.net.URLConnection#toString()
-     */
-    public void test_toString() {
-        assertTrue("Wrong toString: " + uc.toString(), uc.toString().indexOf(
-                "URLConnection") > 0);
-    }
-
-    private byte[] toBOMBytes(String text, String enc) throws IOException {
-        ByteArrayOutputStream bos = new ByteArrayOutputStream();
-
-        if (enc.equals("UTF-8")) {
-            bos.write(new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF });
-        }
-        if (enc.equals("UTF-16BE")) {
-            bos.write(new byte[] { (byte) 0xFE, (byte) 0xFF });
-        }
-        if (enc.equals("UTF-16LE")) {
-            bos.write(new byte[] { (byte) 0xFF, (byte) 0xFE });
-        }
-        if (enc.equals("UTF-32BE")) {
-            bos.write(new byte[] { (byte) 0x00, (byte) 0x00, (byte) 0xFE,
-                    (byte) 0xFF });
-        }
-        if (enc.equals("UTF-32LE")) {
-            bos.write(new byte[] { (byte) 0xFF, (byte) 0xFE, (byte) 0x00,
-                    (byte) 0x00 });
-        }
-
-        bos.write(text.getBytes(enc));
-        return bos.toByteArray();
-    }
-}
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.harmony.luni.tests.java.net;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FilePermission;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.Authenticator;
+import java.net.FileNameMap;
+import java.net.HttpURLConnection;
+import java.net.JarURLConnection;
+import java.net.MalformedURLException;
+import java.net.PasswordAuthentication;
+import java.net.ProtocolException;
+import java.net.SocketPermission;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLStreamHandler;
+import java.security.Permission;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+import java.util.List;
+import java.util.Map;
+import java.util.TimeZone;
+
+import org.apache.harmony.luni.util.Util;
+
+import tests.support.Support_Configuration;
+import tests.support.Support_HttpServer;
+import tests.support.Support_HttpServerSocket;
+import tests.support.Support_HttpTests;
+import tests.support.Support_Jetty;
+import tests.support.Support_PortManager;
+import tests.support.Support_URLConnector;
+import tests.support.resource.Support_Resources;
+
+public class URLConnectionTest extends junit.framework.TestCase {
+
+    static class MockURLConnection extends URLConnection {
+
+        public MockURLConnection(URL url) {
+            super(url);
+        }
+
+        @Override
+        public void connect() {
+            connected = true;
+        }
+    }
+
+    static class NewHandler extends URLStreamHandler {
+        protected URLConnection openConnection(URL u) throws IOException {
+            return new HttpURLConnection(u) {
+                @Override
+                public void connect() throws IOException {
+                    connected = true;
+                }
+
+                @Override
+                public void disconnect() {
+                    // do nothing
+                }
+
+                @Override
+                public boolean usingProxy() {
+                    return false;
+                }
+            };
+        }
+    }
+
+    private static int port;
+
+    static String getContentType(String fileName) throws IOException {
+        String resourceName = "org/apache/harmony/luni/tests/" + fileName;
+        URL url = ClassLoader.getSystemClassLoader().getResource(resourceName);
+        assertNotNull("Cannot find test resource " + resourceName, url);
+        return url.openConnection().getContentType();
+    }
+
+    URL url;
+
+    URLConnection uc;
+
+    protected void setUp() throws Exception {
+        url = new URL("http://localhost:" + port + "/");
+        uc = (HttpURLConnection) url.openConnection();
+        port = Support_Jetty.startDefaultHttpServer();
+    }
+
+    protected void tearDown() {
+        ((HttpURLConnection) uc).disconnect();
+    }
+
+    /**
+     * @tests java.net.URLConnection#addRequestProperty(String, String)
+     */
+    public void test_addRequestProperty() throws MalformedURLException,
+            IOException {
+
+        MockURLConnection u = new MockURLConnection(new URL(
+                "http://www.apache.org"));
+        try {
+            // Regression for HARMONY-604
+            u.addRequestProperty(null, "someValue");
+            fail("Expected NullPointerException");
+        } catch (NullPointerException e) {
+            // expected
+        }
+
+        u.connect();
+        try {
+            // state of connection is checked first
+            // so no NPE in case of null 'field' param
+            u.addRequestProperty(null, "someValue");
+            fail("Expected IllegalStateException");
+        } catch (IllegalStateException e) {
+            // expected
+        }
+    }
+
+    /**
+     * @tests java.net.URLConnection#addRequestProperty(java.lang.String,java.lang.String)
+     */
+    public void test_addRequestPropertyLjava_lang_StringLjava_lang_String()
+            throws IOException {
+        uc.setRequestProperty("prop", "yo");
+        uc.setRequestProperty("prop", "yo2");
+        assertEquals("yo2", uc.getRequestProperty("prop"));
+        Map<String, List<String>> map = uc.getRequestProperties();
+        List<String> props = uc.getRequestProperties().get("prop");
+        assertEquals(1, props.size());
+
+        try {
+            // the map should be unmodifiable
+            map.put("hi", Arrays.asList(new String[] { "bye" }));
+            fail("could modify map");
+        } catch (UnsupportedOperationException e) {
+            // Expected
+        }
+        try {
+            // the list should be unmodifiable
+            props.add("hi");
+            fail("could modify list");
+        } catch (UnsupportedOperationException e) {
+            // Expected
+        }
+
+        File resources = Support_Resources.createTempFolder();
+        Support_Resources.copyFile(resources, null, "hyts_att.jar");
+        URL fUrl1 = new URL("jar:file:" + resources.getPath()
+                + "/hyts_att.jar!/");
+        JarURLConnection con1 = (JarURLConnection) fUrl1.openConnection();
+        map = con1.getRequestProperties();
+        assertNotNull(map);
+        assertEquals(0, map.size());
+        try {
+            // the map should be unmodifiable
+            map.put("hi", Arrays.asList(new String[] { "bye" }));
+            fail();
+        } catch (UnsupportedOperationException e) {
+            // Expected
+        }
+    }
+
+    /**
+     * @tests java.net.URLConnection#getAllowUserInteraction()
+     */
+    public void test_getAllowUserInteraction() {
+        uc.setAllowUserInteraction(false);
+        assertFalse("getAllowUserInteraction should have returned false", uc
+                .getAllowUserInteraction());
+
+        uc.setAllowUserInteraction(true);
+        assertTrue("getAllowUserInteraction should have returned true", uc
+                .getAllowUserInteraction());
+    }
+
+    /**
+     * @tests java.net.URLConnection#getContent()
+     */
+    public void test_getContent() throws IOException {
+        byte[] ba = new byte[600];
+        ((InputStream) uc.getContent()).read(ba, 0, 600);
+        String s = Util.toUTF8String(ba);
+        assertTrue("Incorrect content returned",
+                s.indexOf("Hello OneHandler") > 0);
+    }
+
+    /**
+     * @tests java.net.URLConnection#getContent(Class[])
+     */
+    public void test_getContent_LjavalangClass() throws IOException {
+        byte[] ba = new byte[600];
+
+        try {
+            ((InputStream) uc.getContent(null)).read(ba, 0, 600);
+            fail("should throw NullPointerException");
+        } catch (NullPointerException e) {
+            // expected
+        }
+
+        try {
+            ((InputStream) uc.getContent(new Class[] {})).read(ba, 0, 600);
+            fail("should throw NullPointerException");
+        } catch (NullPointerException e) {
+            // expected
+        }
+
+        try {
+            ((InputStream) uc.getContent(new Class[] { Class.class })).read(ba,
+                    0, 600);
+            fail("should throw NullPointerException");
+        } catch (NullPointerException e) {
+            // expected
+        }
+    }
+
+    /**
+     * @tests java.net.URLConnection#getContentEncoding()
+     */
+    public void test_getContentEncoding() {
+        // should not be known for a file
+        assertNull("getContentEncoding failed: " + uc.getContentEncoding(), uc
+                .getContentEncoding());
+    }
+
+    /**
+     * @tests java.net.URLConnection#getContentLength()
+     */
+    public void test_getContentLength() throws IOException {
+        assertEquals("getContentLength failed: " + uc.getContentLength(), 25,
+                uc.getContentLength());
+    }
+
+    /**
+     * @tests java.net.URLConnection#getContentType()
+     */
+    public void test_getContentType() throws IOException {
+        // should not be known for a file
+        assertTrue("getContentType failed: " + uc.getContentType(), uc
+                .getContentType().contains("text/html"));
+
+        File resources = Support_Resources.createTempFolder();
+        Support_Resources.copyFile(resources, null, "Harmony.GIF");
+        URL url = new URL("file:/" + resources.toString() + "/Harmony.GIF");
+        URLConnection conn = url.openConnection();
+        assertEquals("type not GIF", "image/gif", conn.getContentType());
+    }
+
+    /**
+     * @tests java.net.URLConnection#getContentType()
+     */
+    public void test_getContentType_regression() throws IOException {
+        // Regression for HARMONY-4699
+        assertEquals(getContentType("test.rtf"), "application/rtf");
+        assertEquals(getContentType("test.java"), "text/plain");
+        // RI would return "content/unknown"
+        assertEquals(getContentType("test.doc"), "application/msword");
+        assertEquals(getContentType("test.htx"), "text/html");
+        assertEquals(getContentType("test.xml"), "application/xml");
+        assertEquals(getContentType("."), "text/plain");
+    }
+
+    /**
+     * @tests java.net.URLConnection#getDate()
+     */
+    public void test_getDate() {
+        // should be greater than 930000000000L which represents the past
+        if (uc.getDate() == 0) {
+            System.out
+                    .println("WARNING: server does not support 'Date', in test_getDate");
+        } else {
+            assertTrue("getDate gave wrong date: " + uc.getDate(),
+                    uc.getDate() > 930000000000L);
+        }
+    }
+
+    /**
+     * @tests java.net.URLConnection#getDefaultAllowUserInteraction()
+     */
+    public void test_getDefaultAllowUserInteraction() {
+        boolean oldSetting = URLConnection.getDefaultAllowUserInteraction();
+
+        URLConnection.setDefaultAllowUserInteraction(false);
+        assertFalse(
+                "getDefaultAllowUserInteraction should have returned false",
+                URLConnection.getDefaultAllowUserInteraction());
+
+        URLConnection.setDefaultAllowUserInteraction(true);
+        assertTrue("getDefaultAllowUserInteraction should have returned true",
+                URLConnection.getDefaultAllowUserInteraction());
+
+        URLConnection.setDefaultAllowUserInteraction(oldSetting);
+    }
+
+    /**
+     * @tests java.net.URLConnection#getDefaultRequestProperty(java.lang.String)
+     */
+    @SuppressWarnings("deprecation")
+    public void test_getDefaultRequestPropertyLjava_lang_String() {
+        URLConnection.setDefaultRequestProperty("Shmoo", "Blah");
+        assertNull("setDefaultRequestProperty should have returned: null",
+                URLConnection.getDefaultRequestProperty("Shmoo"));
+
+        URLConnection.setDefaultRequestProperty("Shmoo", "Boom");
+        assertNull("setDefaultRequestProperty should have returned: null",
+                URLConnection.getDefaultRequestProperty("Shmoo"));
+
+        assertNull("setDefaultRequestProperty should have returned: null",
+                URLConnection.getDefaultRequestProperty("Kapow"));
+
+        URLConnection.setDefaultRequestProperty("Shmoo", null);
+    }
+
+    /**
+     * @tests java.net.URLConnection#getDefaultUseCaches()
+     */
+    public void test_getDefaultUseCaches() {
+        boolean oldSetting = uc.getDefaultUseCaches();
+
+        uc.setDefaultUseCaches(false);
+        assertFalse("getDefaultUseCaches should have returned false", uc
+                .getDefaultUseCaches());
+
+        uc.setDefaultUseCaches(true);
+        assertTrue("getDefaultUseCaches should have returned true", uc
+                .getDefaultUseCaches());
+
+        uc.setDefaultUseCaches(oldSetting);
+    }
+
+    /**
+     * @tests java.net.URLConnection#getDoInput()
+     */
+    public void test_getDoInput() {
+        assertTrue("Should be set to true by default", uc.getDoInput());
+
+        uc.setDoInput(true);
+        assertTrue("Should have been set to true", uc.getDoInput());
+
+        uc.setDoInput(false);
+        assertFalse("Should have been set to false", uc.getDoInput());
+    }
+
+    /**
+     * @tests java.net.URLConnection#getDoOutput()
+     */
+    public void test_getDoOutput() {
+        assertFalse("Should be set to false by default", uc.getDoOutput());
+
+        uc.setDoOutput(true);
+        assertTrue("Should have been set to true", uc.getDoOutput());
+
+        uc.setDoOutput(false);
+        assertFalse("Should have been set to false", uc.getDoOutput());
+    }
+
+    /**
+     * @tests java.net.URLConnection#getExpiration()
+     */
+    public void test_getExpiration() {
+        // should be unknown
+        assertEquals("getExpiration returned wrong expiration", 0, uc
+                .getExpiration());
+    }
+
+    /**
+     * @tests java.net.URLConnection#getFileNameMap()
+     */
+    public void test_getFileNameMap() {
+        // Tests for the standard MIME types -- users may override these
+        // in their JRE
+        FileNameMap map = URLConnection.getFileNameMap();
+
+        // These types are defaulted
+        assertEquals("text/html", map.getContentTypeFor(".htm"));
+        assertEquals("text/html", map.getContentTypeFor(".html"));
+        assertEquals("text/plain", map.getContentTypeFor(".text"));
+        assertEquals("text/plain", map.getContentTypeFor(".txt"));
+
+        // These types come from the properties file
+        assertEquals("application/pdf", map.getContentTypeFor(".pdf"));
+        assertEquals("application/zip", map.getContentTypeFor(".zip"));
+
+        URLConnection.setFileNameMap(new FileNameMap() {
+            public String getContentTypeFor(String fileName) {
+                return "Spam!";
+            }
+        });
+        try {
+            assertEquals("Incorrect FileNameMap returned", "Spam!",
+                    URLConnection.getFileNameMap().getContentTypeFor(null));
+        } finally {
+            // unset the map so other tests don't fail
+            URLConnection.setFileNameMap(null);
+        }
+        // RI fails since it does not support fileName that does not begin with
+        // '.'
+        assertEquals("image/gif", map.getContentTypeFor("gif"));
+    }
+
+    /**
+     * @tests java.net.URLConnection#getHeaderFieldDate(java.lang.String, long)
+     */
+    public void test_getHeaderFieldDateLjava_lang_StringJ() {
+
+        if (uc.getHeaderFieldDate("Date", 22L) == 22L) {
+            System.out
+                    .println("WARNING: Server does not support 'Date', test_getHeaderFieldDateLjava_lang_StringJ not run");
+            return;
+        }
+        assertTrue("Wrong value returned: "
+                + uc.getHeaderFieldDate("Date", 22L), uc.getHeaderFieldDate(
+                "Date", 22L) > 930000000000L);
+
+        long time = uc.getHeaderFieldDate("Last-Modified", 0);
+        assertEquals("Wrong date: ", time,
+                Support_Configuration.URLConnectionLastModified);
+    }
+
+    /**
+     * @tests java.net.URLConnection#getHeaderField(int)
+     */
+    public void test_getHeaderFieldI() {
+        int i = 0;
+        String hf;
+        boolean foundResponse = false;
+        while ((hf = uc.getHeaderField(i++)) != null) {
+            if (hf.equals(Support_Configuration.HomeAddressSoftware)) {
+                foundResponse = true;
+            }
+        }
+        assertTrue("Could not find header field containing \""
+                + Support_Configuration.HomeAddressSoftware + "\"",
+                foundResponse);
+
+        i = 0;
+        foundResponse = false;
+        while ((hf = uc.getHeaderField(i++)) != null) {
+            if (hf.equals(Support_Configuration.HomeAddressResponse)) {
+                foundResponse = true;
+            }
+        }
+        assertTrue("Could not find header field containing \""
+                + Support_Configuration.HomeAddressResponse + "\"",
+                foundResponse);
+    }
+
+    /**
+     * @tests java.net.URLConnection#getHeaderFieldKey(int)
+     */
+    public void test_getHeaderFieldKeyI() {
+        String hf;
+        boolean foundResponse = false;
+        for (int i = 0; i < 100; i++) {
+            hf = uc.getHeaderFieldKey(i);
+            if (hf != null && hf.toLowerCase().equals("content-type")) {
+                foundResponse = true;
+                break;
+            }
+        }
+        assertTrue(
+                "Could not find header field key containing \"content-type\"",
+                foundResponse);
+    }
+
+    /**
+     * @tests java.net.URLConnection#getHeaderField(java.lang.String)
+     */
+    public void test_getHeaderFieldLjava_lang_String() {
+        String hf;
+        hf = uc.getHeaderField("Content-Encoding");
+        if (hf != null) {
+            assertNull(
+                    "Wrong value returned for header field 'Content-Encoding': "
+                            + hf, hf);
+        }
+        hf = uc.getHeaderField("Content-Length");
+        if (hf != null) {
+            assertEquals(
+                    "Wrong value returned for header field 'Content-Length': ",
+                    "25", hf);
+        }
+        hf = uc.getHeaderField("Content-Type");
+        if (hf != null) {
+            assertTrue("Wrong value returned for header field 'Content-Type': "
+                    + hf, hf.contains("text/html"));
+        }
+        hf = uc.getHeaderField("content-type");
+        if (hf != null) {
+            assertTrue("Wrong value returned for header field 'content-type': "
+                    + hf, hf.contains("text/html"));
+        }
+        hf = uc.getHeaderField("Date");
+        if (hf != null) {
+            assertTrue("Wrong value returned for header field 'Date': " + hf,
+                    Integer.parseInt(hf.substring(hf.length() - 17,
+                            hf.length() - 13)) >= 1999);
+        }
+        hf = uc.getHeaderField("Expires");
+        if (hf != null) {
+            assertNull(
+                    "Wrong value returned for header field 'Expires': " + hf,
+                    hf);
+        }
+        hf = uc.getHeaderField("SERVER");
+        if (hf != null) {
+            assertTrue("Wrong value returned for header field 'SERVER': " + hf
+                    + " (expected " + Support_Configuration.HomeAddressSoftware
+                    + ")", hf.equals(Support_Configuration.HomeAddressSoftware));
+        }
+        hf = uc.getHeaderField("Last-Modified");
+        if (hf != null) {
+            assertTrue(
+                    "Wrong value returned for header field 'Last-Modified': "
+                            + hf,
+                    hf
+                            .equals(Support_Configuration.URLConnectionLastModifiedString));
+        }
+        hf = uc.getHeaderField("accept-ranges");
+        if (hf != null) {
+            assertTrue(
+                    "Wrong value returned for header field 'accept-ranges': "
+                            + hf, hf.equals("bytes"));
+        }
+        hf = uc.getHeaderField("DoesNotExist");
+        if (hf != null) {
+            assertNull("Wrong value returned for header field 'DoesNotExist': "
+                    + hf, hf);
+        }
+    }
+
+    /**
+     * @tests java.net.URLConnection#getHeaderFields()
+     */
+    public void test_getHeaderFields() throws IOException {
+        try {
+            uc.getInputStream();
+        } catch (IOException e) {
+            fail();
+        }
+
+        Map<String, List<String>> headers = uc.getHeaderFields();
+        assertNotNull(headers);
+
+        // content-length should always appear
+        List<String> list = headers.get("Content-Length");
+        if (list == null) {
+            list = headers.get("content-length");
+        }
+        assertNotNull(list);
+        String contentLength = (String) list.get(0);
+        assertNotNull(contentLength);
+
+        // there should be at least 2 headers
+        assertTrue(headers.size() > 1);
+        File resources = Support_Resources.createTempFolder();
+        Support_Resources.copyFile(resources, null, "hyts_att.jar");
+        URL fUrl1 = new URL("jar:file:" + resources.getPath()
+                + "/hyts_att.jar!/");
+        JarURLConnection con1 = (JarURLConnection) fUrl1.openConnection();
+        headers = con1.getHeaderFields();
+        assertNotNull(headers);
+        assertEquals(0, headers.size());
+        try {
+            // the map should be unmodifiable
+            headers.put("hi", Arrays.asList(new String[] { "bye" }));
+            fail("The map should be unmodifiable");
+        } catch (UnsupportedOperationException e) {
+            // Expected
+        }
+    }
+
+    /**
+     * @tests java.net.URLConnection#getIfModifiedSince()
+     */
+    public void test_getIfModifiedSince() {
+        uc.setIfModifiedSince(200);
+        assertEquals("Returned wrong ifModifiedSince value", 200, uc
+                .getIfModifiedSince());
+    }
+
+    /**
+     * @tests java.net.URLConnection#getInputStream()
+     */
+    public void test_getInputStream() throws IOException {
+        InputStream is = uc.getInputStream();
+        byte[] ba = new byte[600];
+        is.read(ba, 0, 600);
+        is.close();
+        String s = Util.toUTF8String(ba);
+        assertTrue("Incorrect input stream read",
+                s.indexOf("Hello OneHandler") > 0);
+
+        // open an non-existent file
+        URL url = new URL("http://localhost:" + port + "/fred-zz6.txt");
+        is = url.openStream();
+        assertTrue("available() less than 0", is.available() >= 0);
+        is.close();
+
+        // create a server socket
+        Support_HttpServerSocket serversocket = new Support_HttpServerSocket();
+
+        // create a client connector
+        Support_URLConnector client = new Support_URLConnector();
+
+        // pass both to the HttpTest
+        Support_HttpTests test = new Support_HttpTests(serversocket, client);
+
+        // run various tests common to both HttpConnections and
+        // HttpURLConnections
+        test.runTests(this);
+
+        // Authentication test is separate from other tests because it is only
+        // in HttpURLConnection and not supported in HttpConnection
+
+        serversocket = new Support_HttpServerSocket();
+        Support_HttpServer server = new Support_HttpServer(serversocket, this);
+        int p = Support_PortManager.getNextPort();
+        server.startServer(p);
+
+        // it is the Support_HttpServer's responsibility to close this
+        // serversocket
+        serversocket = null;
+
+        final String authTestUrl = "http://localhost:" + server.getPort()
+                + Support_HttpServer.AUTHTEST;
+
+        // Authentication test
+        // set up a very simple authenticator
+        Authenticator.setDefault(new Authenticator() {
+            public PasswordAuthentication getPasswordAuthentication() {
+                return new PasswordAuthentication("test", "password"
+                        .toCharArray());
+            }
+        });
+        try {
+            client.open(authTestUrl);
+            is = client.getInputStream();
+            int c = is.read();
+            while (c > 0) {
+                c = is.read();
+            }
+            c = is.read();
+            is.close();
+        } catch (FileNotFoundException e) {
+            fail("Error performing authentication test: " + e);
+        }
+
+        final String invalidLocation = "/missingFile.htm";
+        final String redirectTestUrl = "http://localhost:" + server.getPort()
+                + Support_HttpServer.REDIRECTTEST;
+
+        // test redirecting to a non-existent URL on the same host
+        try {
+            // append the response code for the server to return
+
+            client.open(redirectTestUrl + "/" + Support_HttpServer.MOVED_PERM
+                    + "-" + invalidLocation);
+            is = client.getInputStream();
+
+            int c = is.read();
+            while (c > 0) {
+                c = is.read();
+            }
+            c = is.read();
+            is.close();
+            fail("Incorrect data returned on redirect to non-existent file.");
+        } catch (FileNotFoundException e) {
+        }
+        server.stopServer();
+
+    }
+
+    /**
+     * @tests java.net.URLConnection#getLastModified()
+     */
+    public void test_getLastModified() {
+        if (uc.getLastModified() == 0) {
+            System.out
+                    .println("WARNING: Server does not support 'Last-Modified', test_getLastModified() not run");
+            return;
+        }
+        assertTrue(
+                "Returned wrong getLastModified value.  Wanted: "
+                        + Support_Configuration.URLConnectionLastModified
+                        + " got: " + uc.getLastModified(),
+                uc.getLastModified() == Support_Configuration.URLConnectionLastModified);
+    }
+
+    /**
+     * @tests java.net.URLConnection#getOutputStream()
+     */
+    public void test_getOutputStream() throws Exception {
+        int port = Support_Jetty.startDefaultServlet();
+        try {
+            boolean exception = false;
+            URL test;
+            java.net.URLConnection conn2 = null;
+
+            test = new URL("http://localhost:" + port + "/");
+            conn2 = (java.net.URLConnection) test.openConnection();
+
+            try {
+                conn2.getOutputStream();
+                fail("should throw ProtocolException");
+            } catch (java.net.ProtocolException e) {
+                // correct
+            }
+
+            conn2.setDoOutput(true);
+            conn2.getOutputStream();
+            conn2.connect();
+            conn2.getOutputStream();
+
+            try {
+                conn2.getInputStream();
+                conn2.getOutputStream();
+                fail("should throw ProtocolException");
+            } catch (ProtocolException e) {
+                // expected.
+            }
+
+            URL u = new URL("http://localhost:" + port + "/");
+            java.net.HttpURLConnection conn = (java.net.HttpURLConnection) u
+                    .openConnection();
+            conn.setDoOutput(true);
+            conn.setRequestMethod("POST");
+            OutputStream out = conn.getOutputStream();
+            String posted = "this is a test";
+            out.write(posted.getBytes());
+            out.close();
+            conn.getResponseCode();
+            InputStream is = conn.getInputStream();
+            String response = "";
+            byte[] b = new byte[1024];
+            int count = 0;
+            while ((count = is.read(b)) > 0) {
+                response += new String(b, 0, count);
+            }
+            assertEquals("Response to POST method invalid 1", posted, response);
+
+            posted = "just a test";
+            u = new URL("http://localhost:" + port + "/");
+            conn = (java.net.HttpURLConnection) u.openConnection();
+            conn.setDoOutput(true);
+            conn.setRequestMethod("POST");
+            conn.setRequestProperty("Content-length", String.valueOf(posted
+                    .length()));
+            out = conn.getOutputStream();
+            out.write(posted.getBytes());
+            out.close();
+            conn.getResponseCode();
+            is = conn.getInputStream();
+            response = "";
+            b = new byte[1024];
+            count = 0;
+            while ((count = is.read(b)) > 0) {
+                response += new String(b, 0, count);
+            }
+            assertTrue("Response to POST method invalid 2", response
+                    .equals(posted));
+
+            posted = "just another test";
+            u = new URL("http://localhost:" + port + "/");
+            conn = (java.net.HttpURLConnection) u.openConnection();
+            conn.setDoOutput(true);
+            conn.setRequestMethod("POST");
+            conn.setRequestProperty("Content-length", String.valueOf(posted
+                    .length()));
+            out = conn.getOutputStream();
+            out.write(posted.getBytes());
+            // out.close();
+            conn.getResponseCode();
+            is = conn.getInputStream();
+            response = "";
+            b = new byte[1024];
+            count = 0;
+            while ((count = is.read(b)) > 0) {
+                response += new String(b, 0, count);
+            }
+            assertTrue("Response to POST method invalid 3", response
+                    .equals(posted));
+
+            u = new URL("http://localhost:" + port + "/");
+            conn = (java.net.HttpURLConnection) u.openConnection();
+            conn.setDoOutput(true);
+            conn.setRequestMethod("POST");
+            int result = conn.getResponseCode();
+            assertTrue("Unexpected response code: " + result, result == 200);
+
+        } finally {
+            Support_Jetty.startDefaultServlet();
+        }
+    }
+
+    /**
+     * @tests java.net.URLConnection#getPermission()
+     */
+    public void test_getPermission() throws Exception {
+        java.security.Permission p = uc.getPermission();
+        assertTrue("Permission of wrong type: " + p.toString(),
+                p instanceof java.net.SocketPermission);
+        assertTrue("Permission has wrong name: " + p.getName(), p.getName()
+                .contains("localhost:" + port));
+
+        URL fileUrl = new URL("file:myfile");
+        Permission perm = new FilePermission("myfile", "read");
+        Permission result = fileUrl.openConnection().getPermission();
+        assertTrue("Wrong file: permission 1:" + perm + " , " + result, result
+                .equals(perm));
+
+        fileUrl = new URL("file:/myfile/");
+        perm = new FilePermission("/myfile", "read");
+        result = fileUrl.openConnection().getPermission();
+        assertTrue("Wrong file: permission 2:" + perm + " , " + result, result
+                .equals(perm));
+
+        fileUrl = new URL("file:///host/volume/file");
+        perm = new FilePermission("/host/volume/file", "read");
+        result = fileUrl.openConnection().getPermission();
+        assertTrue("Wrong file: permission 3:" + perm + " , " + result, result
+                .equals(perm));
+
+        URL httpUrl = new URL("http://home/myfile/");
+        assertTrue("Wrong http: permission", httpUrl.openConnection()
+                .getPermission().equals(
+                        new SocketPermission("home:80", "connect")));
+        httpUrl = new URL("http://home2:8080/myfile/");
+        assertTrue("Wrong http: permission", httpUrl.openConnection()
+                .getPermission().equals(
+                        new SocketPermission("home2:8080", "connect")));
+        URL ftpUrl = new URL("ftp://home/myfile/");
+        assertTrue("Wrong ftp: permission", ftpUrl.openConnection()
+                .getPermission().equals(
+                        new SocketPermission("home:21", "connect")));
+        ftpUrl = new URL("ftp://home2:22/myfile/");
+        assertTrue("Wrong ftp: permission", ftpUrl.openConnection()
+                .getPermission().equals(
+                        new SocketPermission("home2:22", "connect")));
+
+        URL jarUrl = new URL("jar:file:myfile!/");
+        perm = new FilePermission("myfile", "read");
+        result = jarUrl.openConnection().getPermission();
+        assertTrue("Wrong jar: permission:" + perm + " , " + result, result
+                .equals(new FilePermission("myfile", "read")));
+    }
+
+    /**
+     * @tests java.net.URLConnection#getRequestProperties()
+     */
+    public void test_getRequestProperties() {
+        uc.setRequestProperty("whatever", "you like");
+        Map headers = uc.getRequestProperties();
+
+        // content-length should always appear
+        List header = (List) headers.get("whatever");
+        assertNotNull(header);
+
+        assertEquals("you like", header.get(0));
+
+        assertTrue(headers.size() >= 1);
+
+        try {
+            // the map should be unmodifiable
+            headers.put("hi", "bye");
+            fail();
+        } catch (UnsupportedOperationException e) {
+        }
+        try {
+            // the list should be unmodifiable
+            header.add("hi");
+            fail();
+        } catch (UnsupportedOperationException e) {
+        }
+
+    }
+
+    /**
+     * @tests java.net.URLConnection#getRequestProperties()
+     */
+    public void test_getRequestProperties_Exception() throws IOException {
+        URL url = new URL("http", "test", 80, "index.html", new NewHandler());
+        URLConnection urlCon = url.openConnection();
+        urlCon.connect();
+
+        try {
+            urlCon.getRequestProperties();
+            fail("should throw IllegalStateException");
+        } catch (IllegalStateException e) {
+            // expected
+        }
+    }
+
+    /**
+     * @tests java.net.URLConnection#getRequestProperty(java.lang.String)
+     */
+    public void test_getRequestProperty_LString_Exception() throws IOException {
+        URL url = new URL("http", "test", 80, "index.html", new NewHandler());
+        URLConnection urlCon = url.openConnection();
+        urlCon.setRequestProperty("test", "testProperty");
+        assertNull(urlCon.getRequestProperty("test"));
+
+        urlCon.connect();
+        try {
+            urlCon.getRequestProperty("test");
+            fail("should throw IllegalStateException");
+        } catch (IllegalStateException e) {
+            // expected
+        }
+    }
+
+    /**
+     * @tests java.net.URLConnection#getRequestProperty(java.lang.String)
+     */
+    public void test_getRequestPropertyLjava_lang_String() {
+        uc.setRequestProperty("Yo", "yo");
+        assertTrue("Wrong property returned: " + uc.getRequestProperty("Yo"),
+                uc.getRequestProperty("Yo").equals("yo"));
+        assertNull("Wrong property returned: " + uc.getRequestProperty("No"),
+                uc.getRequestProperty("No"));
+    }
+
+    /**
+     * @tests java.net.URLConnection#getURL()
+     */
+    public void test_getURL() {
+        assertTrue("Incorrect URL returned", uc.getURL().equals(url));
+    }
+
+    /**
+     * @tests java.net.URLConnection#getUseCaches()
+     */
+    public void test_getUseCaches() {
+        uc.setUseCaches(false);
+        assertTrue("getUseCaches should have returned false", !uc
+                .getUseCaches());
+        uc.setUseCaches(true);
+        assertTrue("getUseCaches should have returned true", uc.getUseCaches());
+    }
+
+    /**
+     * @tests java.net.URLConnection#guessContentTypeFromStream(java.io.InputStream)
+     */
+    public void test_guessContentTypeFromStreamLjava_io_InputStream()
+            throws IOException {
+        String[] headers = new String[] { "<html>", "<head>", " <head ",
+                "<body", "<BODY ", "<!DOCTYPE html", "<?xml " };
+        String[] expected = new String[] { "text/html", "text/html",
+                "text/html", "text/html", "text/html", "text/html",
+                "application/xml" };
+
+        String[] encodings = new String[] { "ASCII", "UTF-8", "UTF-16BE",
+                "UTF-16LE", "UTF-32BE", "UTF-32LE" };
+        for (int i = 0; i < headers.length; i++) {
+            for (String enc : encodings) {
+                InputStream is = new ByteArrayInputStream(toBOMBytes(
+                        headers[i], enc));
+                String mime = URLConnection.guessContentTypeFromStream(is);
+                assertEquals("checking " + headers[i] + " with " + enc,
+                        expected[i], mime);
+            }
+        }
+
+        // Try simple case
+        try {
+            URLConnection.guessContentTypeFromStream(null);
+            fail("should throw NullPointerException");
+        } catch (NullPointerException e) {
+            // expected
+        }
+
+        // Test magic bytes
+        byte[][] bytes = new byte[][] { { 'P', 'K' }, { 'G', 'I' } };
+        expected = new String[] { "application/zip", "image/gif" };
+
+        for (int i = 0; i < bytes.length; i++) {
+            InputStream is = new ByteArrayInputStream(bytes[i]);
+            assertEquals(expected[i], URLConnection
+                    .guessContentTypeFromStream(is));
+        }
+    }
+
+    /**
+     * @tests java.net.URLConnection#setAllowUserInteraction(boolean)
+     */
+    public void test_setAllowUserInteractionZ() throws MalformedURLException {
+        // Regression for HARMONY-72
+        MockURLConnection u = new MockURLConnection(new URL(
+                "http://www.apache.org"));
+        u.connect();
+        try {
+            u.setAllowUserInteraction(false);
+            fail("Assert 0: expected an IllegalStateException");
+        } catch (IllegalStateException e) {
+            // expected
+        }
+
+    }
+
+    /**
+     * @tests java.net.URLConnection#setConnectTimeout(int)
+     */
+    public void test_setConnectTimeoutI() throws Exception {
+        URLConnection uc = new URL("http://localhost").openConnection();
+        assertEquals(0, uc.getConnectTimeout());
+        uc.setConnectTimeout(0);
+        assertEquals(0, uc.getConnectTimeout());
+        try {
+            uc.setConnectTimeout(-100);
+            fail("should throw IllegalArgumentException");
+        } catch (IllegalArgumentException e) {
+            // correct
+        }
+        assertEquals(0, uc.getConnectTimeout());
+        uc.setConnectTimeout(100);
+        assertEquals(100, uc.getConnectTimeout());
+        try {
+            uc.setConnectTimeout(-1);
+            fail("should throw IllegalArgumentException");
+        } catch (IllegalArgumentException e) {
+            // correct
+        }
+        assertEquals(100, uc.getConnectTimeout());
+    }
+
+    /**
+     * @tests java.net.URLConnection#setDefaultAllowUserInteraction(boolean)
+     */
+    public void test_setDefaultAllowUserInteractionZ() {
+        assertTrue("Used to test", true);
+    }
+
+    /**
+     * @tests java.net.URLConnection#setDefaultRequestProperty(java.lang.String,
+     *        java.lang.String)
+     */
+    public void test_setDefaultRequestPropertyLjava_lang_StringLjava_lang_String() {
+        assertTrue("Used to test", true);
+    }
+
+    /**
+     * @tests java.net.URLConnection#setDefaultUseCaches(boolean)
+     */
+    public void test_setDefaultUseCachesZ() {
+        assertTrue("Used to test", true);
+    }
+
+    /**
+     * @throws IOException
+     * @throws MalformedURLException
+     * @tests java.net.URLConnection#setDoInput(boolean)
+     */
+    public void test_setDoInputZ() throws MalformedURLException, IOException {
+        assertTrue("Used to test", true);
+        HttpURLConnection u = null;
+
+        u = (HttpURLConnection) (new URL("http://localhost:" + port)
+                .openConnection());
+        u.connect();
+
+        try {
+            u.setDoInput(true);
+        } catch (IllegalStateException e) { // expected
+        }
+    }
+
+    /**
+     * @throws IOException
+     * @throws MalformedURLException
+     * @tests java.net.URLConnection#setDoOutput(boolean)
+     */
+    public void test_setDoOutputZ() throws MalformedURLException, IOException {
+        assertTrue("Used to test", true);
+        HttpURLConnection u = null;
+
+        u = (HttpURLConnection) (new URL("http://localhost:" + port)
+                .openConnection());
+        u.connect();
+
+        try {
+            u.setDoOutput(true);
+        } catch (IllegalStateException e) { // expected
+        }
+    }
+
+    /**
+     * @throws IOException
+     * @tests java.net.URLConnection#setFileNameMap(java.net.FileNameMap)
+     */
+    public void test_setFileNameMapLjava_net_FileNameMap() throws IOException {
+        // nothing happens if set null
+        URLConnection.setFileNameMap(null);
+        // take no effect
+        assertNotNull(URLConnection.getFileNameMap());
+    }
+
+    /**
+     * @tests java.net.URLConnection#setIfModifiedSince(long)
+     */
+    public void test_setIfModifiedSinceJ() throws IOException {
+        URL url = new URL("http://localhost:8080/");
+        URLConnection connection = url.openConnection();
+        Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
+        cal.clear();
+        cal.set(2000, Calendar.MARCH, 5);
+
+        long sinceTime = cal.getTime().getTime();
+        connection.setIfModifiedSince(sinceTime);
+        assertEquals("Wrong date set", sinceTime, connection
+                .getIfModifiedSince());
+
+    }
+
+    /**
+     * @tests java.net.URLConnection#setReadTimeout(int)
+     */
+    public void test_setReadTimeoutI() throws Exception {
+        URLConnection uc = new URL("http://localhost").openConnection();
+        assertEquals(0, uc.getReadTimeout());
+        uc.setReadTimeout(0);
+        assertEquals(0, uc.getReadTimeout());
+        try {
+            uc.setReadTimeout(-100);
+            fail("should throw IllegalArgumentException");
+        } catch (IllegalArgumentException e) {
+            // correct
+        }
+        assertEquals(0, uc.getReadTimeout());
+        uc.setReadTimeout(100);
+        assertEquals(100, uc.getReadTimeout());
+        try {
+            uc.setReadTimeout(-1);
+            fail("should throw IllegalArgumentException");
+        } catch (IllegalArgumentException e) {
+            // correct
+        }
+        assertEquals(100, uc.getReadTimeout());
+    }
+
+    /**
+     * @tests java.net.URLConnection#setRequestProperty(String, String)
+     */
+    public void test_setRequestProperty() throws MalformedURLException,
+            IOException {
+
+        MockURLConnection u = new MockURLConnection(new URL(

[... 77 lines stripped ...]


Mime
View raw message