private static void unitTest() {
		System.out.println("PARSE/ASSEMBLE TESTS");
		
		// Dirs and Files
		unitTestParseAssemble("http://www.organic.com");
		unitTestParseAssemble("http://www.organic.com/");
		unitTestParseAssemble("http://www.organic.com/file.jsp");
		
		unitTestParseAssemble("http://www.organic.com/dir");
		unitTestParseAssemble("http://www.organic.com/dir/");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp");
		
		unitTestParseAssemble("http://www.organic.com/dir/dir2");
		unitTestParseAssemble("http://www.organic.com/dir/dir2/");
		unitTestParseAssemble("http://www.organic.com/dir/dir2/file.jsp");
		
		// Query
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp??");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?=?");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?name");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?name=");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?name=value");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?=");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?==");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?=value");
		
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?&");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?&&");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?&&&");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?&value");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?name&");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?name&value");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?name=value&name=value");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?name=&name=value");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?=&");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?&=");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?=&=");
		unitTestParseAssemble("http://www.organic.com/dir/file.jsp?name=value+space&name=value%20space");
		
		unitTestParseAssemble("http://www.organic.com?");
		unitTestParseAssemble("http://www.organic.com?name=value");
		
		// Fragments
		unitTestParseAssemble("http://www.organic.com#");
		unitTestParseAssemble("http://www.organic.com##");
		unitTestParseAssemble("http://www.organic.com#fragment");
		unitTestParseAssemble("http://www.organic.com?name=value#fragment");
		
		// Ports
		unitTestParseAssemble("http://www.organic.com:8080");
		unitTestParseAssemble("http://www.organic.com:8080/");
		unitTestParseAssemble("http://www.organic.com:8080?");
		unitTestParseAssemble("http://www.organic.com:8080?name=value");
		
		// All Together
		unitTestParseAssemble("http://maynard:password@www.organic.com:8080/dir/file.jsp?name=value&name+space=value%20space#fragment");
		
		// Relative URLs
		unitTestParseAssemble("/file.jsp");
		unitTestParseAssemble("/");
		unitTestParseAssemble("../");
		unitTestParseAssemble("file.jsp");
		unitTestParseAssemble("dir/file.jsp?name=value");
		unitTestParseAssemble("http:/file.jsp");
		
		// Empty URL
		unitTestParseAssemble("");
		unitTestParseAssemble(null);
		
		// Test Getters and Setters
		MuteableURL m_url = new MuteableURL(null);
		m_url.setProtocol("http");
		m_url.setHost("www.organic.com");
		m_url.setPath("/dir/file.jsp");
		m_url.setQuery("this=that&these=those");
		m_url.setFragment("fragment");
		System.out.println(m_url.toString());
		
		m_url.setFile("new_file.jsp");
		System.out.println(m_url.toString());
		
		m_url.setAbsolutePath(false);
		System.out.println(m_url.toString());
		
		m_url.setAbsolutePath(true);
		System.out.println(m_url.toString());
		
		m_url.setPath("../rel/file.jsp");
		System.out.println(m_url.toString());
		
		MuteableURL m_url2 = new MuteableURL(null);
		m_url2.setProtocol("http");
		m_url2.setHost("www.organic.com");
		m_url2.setQuery("this=that&these=those");
		System.out.println(m_url2.toString());
		
		m_url2.setFile("new_file.jsp");
		System.out.println(m_url2.toString());
		
		m_url2.setAbsolutePath(false);
		System.out.println(m_url2.toString());
	}