package jp.hrtdotnet.java.net;

import java.net.MalformedURLException;
import java.net.URL;

import junit.framework.TestCase;

public class HttpUtilTest extends TestCase {

    /* (非 Javadoc)
     * @see junit.framework.TestCase#setUp()
     */
    protected void setUp() throws Exception {
        super.setUp();
    }

    /* (非 Javadoc)
     * @see junit.framework.TestCase#tearDown()
     */
    protected void tearDown() throws Exception {
        super.tearDown();
    }

    /**
     * {@link jp.hrtdotnet.java.net.HttpUtil#setReferer(java.net.HttpURLConnection, java.lang.String)} のためのテスト・メソッド。
     */
    public void testSetReferer() {
        fail("まだ実装されていません");
    }

    /**
     * {@link jp.hrtdotnet.java.net.HttpUtil#getReferer(java.net.HttpURLConnection)} のためのテスト・メソッド。
     */
    public void testGetReferer() {
        fail("まだ実装されていません");
    }
    
    /**
     * {@link jp.hrtdotnet.java.net.HttpUtil#setUserAgent(java.net.HttpURLConnection, java.lang.String)} のためのテスト・メソッド。
     */
    public void testSetUserAgent() {
        fail("まだ実装されていません");
    }

    /**
     * {@link jp.hrtdotnet.java.net.HttpUtil#getUserAgent(java.net.HttpURLConnection)} のためのテスト・メソッド。
     */
    public void testGetUserAgent() {
        fail("まだ実装されていません");
    }

    /**
     * {@link jp.hrtdotnet.java.net.HttpUtil#setAuthentication(java.lang.String, java.lang.String)} のためのテスト・メソッド。
     */
    public void testSetAuthentication() {
        fail("まだ実装されていません");
    }

    /**
     * {@link jp.hrtdotnet.java.net.HttpUtil#checkFormat(java.lang.String)} のためのテスト・メソッド。
     */
    public void testCheckFormat() {
        assertTrue(HttpUtil.checkFormat("hTtp://www.sample.co.jp/"));
        assertTrue(HttpUtil.checkFormat("hTtps://www.sample.co.jp/"));
        assertFalse(HttpUtil.checkFormat("ftp://www.sample.co.jp/"));
    }

    /**
     * {@link jp.hrtdotnet.java.net.HttpUtil#checkProtocol(java.net.URL)} のためのテスト・メソッド。
     * @throws MalformedURLException 
     * @throws NullPointerException 
     */
    public void testCheckProtocol_URL() throws NullPointerException, MalformedURLException {
        assertTrue(HttpUtil.checkProtocol(new URL("htTp://www.sample.co.jp/")));        
        assertTrue(HttpUtil.checkProtocol(new URL("htTps://www.sample.co.jp/")));
        assertFalse(HttpUtil.checkProtocol(new URL("ftp://www.sample.co.jp/")));                
    }

    /**
     * {@link jp.hrtdotnet.java.net.HttpUtil#checkProtocol(java.lang.String)} のためのテスト・メソッド。
     */
    public void testCheckProtocol_String() {
        assertTrue(HttpUtil.checkProtocol("hTtp"));
        assertTrue(HttpUtil.checkProtocol("httPs"));        
        assertFalse(HttpUtil.checkProtocol("ftp"));        
    }

    /**
     * {@link jp.hrtdotnet.java.net.HttpUtil#getExtension(java.lang.String)} のためのテスト・メソッド。
     */
    public void testGetExtension() {
        assertEquals("html", HttpUtil.getExtension("http://www.sample.co.jp/abc.html"));
        assertEquals("txt", HttpUtil.getExtension("https://www.sample.co.jp/abc.txt"));
        try {
            assertEquals("html", HttpUtil.getExtension("ftp://www.sample.co.jp/abc.html"));
            fail();
        } catch (IllegalArgumentException e) {            
        }
    }

    /**
     * {@link jp.hrtdotnet.java.net.HttpUtil#isHttpUrl(java.lang.String)} のためのテスト・メソッド。
     */
    public void testIsHttpUrl() {
        assertTrue(HttpUtil.isHttpUrl("http://wwww "));
        assertTrue(HttpUtil.isHttpUrl("https://www"));
        assertTrue(HttpUtil.isHttpUrl("htTp://wwww "));
        assertTrue(HttpUtil.isHttpUrl("htTps://www"));
        assertFalse(HttpUtil.isHttpUrl(null));
        assertFalse(HttpUtil.isHttpUrl("aaaa"));
    }    
}
