| /* |
| * $Header: /home/data/cvs/rt/org.eclipse.ecf/tests/bundles/org.eclipse.ecf.tests.apache.httpclient.server/src/org/apache/commons/httpclient/TestHttpState.java,v 1.1 2009/02/13 18:07:50 slewis Exp $ |
| * $Revision: 1.1 $ |
| * $Date: 2009/02/13 18:07:50 $ |
| * ==================================================================== |
| * |
| * Copyright 1999-2004 The Apache Software Foundation |
| * |
| * Licensed 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. |
| * ==================================================================== |
| * |
| * This software consists of voluntary contributions made by many |
| * individuals on behalf of the Apache Software Foundation. For more |
| * information on the Apache Software Foundation, please see |
| * <http://www.apache.org/>. |
| * |
| * [Additional notices, if required by prior licensing conditions] |
| * |
| */ |
| |
| package org.apache.commons.httpclient; |
| |
| import org.apache.commons.httpclient.auth.AuthScope; |
| |
| import junit.framework.*; |
| |
| /** |
| * |
| * Simple tests for {@link HttpState}. |
| * |
| * @author Rodney Waldhoff |
| * @author <a href="mailto:jsdever@apache.org">Jeff Dever</a> |
| * @author Sean C. Sullivan |
| * @author Oleg Kalnichevski |
| * |
| * @version $Id: TestHttpState.java,v 1.1 2009/02/13 18:07:50 slewis Exp $ |
| * |
| */ |
| public class TestHttpState extends TestCase { |
| |
| public final static Credentials CREDS1 = |
| new UsernamePasswordCredentials("user1", "pass1"); |
| public final static Credentials CREDS2 = |
| new UsernamePasswordCredentials("user2", "pass2"); |
| |
| public final static AuthScope SCOPE1 = |
| new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, "realm1"); |
| public final static AuthScope SCOPE2 = |
| new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, "realm2"); |
| public final static AuthScope BOGUS = |
| new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, "bogus"); |
| public final static AuthScope DEFSCOPE = |
| new AuthScope("host", AuthScope.ANY_PORT, "realm"); |
| |
| |
| // ------------------------------------------------------------ Constructor |
| public TestHttpState(String testName) { |
| super(testName); |
| } |
| |
| // ------------------------------------------------------------------- Main |
| public static void main(String args[]) { |
| String[] testCaseName = { TestHttpState.class.getName() }; |
| junit.textui.TestRunner.main(testCaseName); |
| } |
| |
| // ------------------------------------------------------- TestCase Methods |
| |
| public static Test suite() { |
| return new TestSuite(TestHttpState.class); |
| } |
| |
| |
| // ----------------------------------------------------------- Test Methods |
| |
| public void testHttpStateCredentials() { |
| HttpState state = new HttpState(); |
| state.setCredentials(SCOPE1, CREDS1); |
| state.setCredentials(SCOPE2, CREDS2); |
| assertEquals(CREDS1, state.getCredentials(SCOPE1)); |
| assertEquals(CREDS2, state.getCredentials(SCOPE2)); |
| } |
| |
| public void testToString() |
| { |
| HttpState state = new HttpState(); |
| assertNotNull(state.toString()); |
| |
| state.addCookie(new Cookie("foo", "bar", "yeah")); |
| assertNotNull(state.toString()); |
| |
| state.addCookie(new Cookie("flub", "duck", "yuck")); |
| assertNotNull(state.toString()); |
| |
| state.setCredentials(SCOPE1, CREDS1); |
| assertNotNull(state.toString()); |
| |
| state.setProxyCredentials(SCOPE2, CREDS2); |
| assertNotNull(state.toString()); |
| } |
| |
| public void testHttpStateNoCredentials() { |
| HttpState state = new HttpState(); |
| assertEquals(null, state.getCredentials(BOGUS)); |
| } |
| |
| public void testHttpStateDefaultCredentials() { |
| HttpState state = new HttpState(); |
| state.setCredentials(AuthScope.ANY, CREDS1); |
| state.setCredentials(SCOPE2, CREDS2); |
| assertEquals(CREDS1, state.getCredentials(BOGUS)); |
| } |
| |
| public void testHttpStateProxyCredentials() { |
| HttpState state = new HttpState(); |
| state.setProxyCredentials(SCOPE1, CREDS1); |
| state.setProxyCredentials(SCOPE2, CREDS2); |
| assertEquals(CREDS1, state.getProxyCredentials(SCOPE1)); |
| assertEquals(CREDS2, state.getProxyCredentials(SCOPE2)); |
| } |
| |
| public void testHttpStateProxyNoCredentials() { |
| HttpState state = new HttpState(); |
| assertEquals(null, state.getProxyCredentials(BOGUS)); |
| } |
| |
| public void testHttpStateProxyDefaultCredentials() { |
| HttpState state = new HttpState(); |
| state.setProxyCredentials(AuthScope.ANY, CREDS1); |
| state.setProxyCredentials(SCOPE2, CREDS2); |
| assertEquals(CREDS1, state.getProxyCredentials(BOGUS)); |
| } |
| |
| // --------------------------------- Test Methods for Selecting Credentials |
| |
| public void testDefaultCredentials() throws Exception { |
| HttpState state = new HttpState(); |
| Credentials expected = new UsernamePasswordCredentials("name", "pass"); |
| state.setCredentials(AuthScope.ANY, expected); |
| Credentials got = state.getCredentials(DEFSCOPE); |
| assertEquals(got, expected); |
| } |
| |
| public void testRealmCredentials() throws Exception { |
| HttpState state = new HttpState(); |
| Credentials expected = new UsernamePasswordCredentials("name", "pass"); |
| state.setCredentials(DEFSCOPE, expected); |
| Credentials got = state.getCredentials(DEFSCOPE); |
| assertEquals(expected, got); |
| } |
| |
| public void testHostCredentials() throws Exception { |
| HttpState state = new HttpState(); |
| Credentials expected = new UsernamePasswordCredentials("name", "pass"); |
| state.setCredentials( |
| new AuthScope("host", AuthScope.ANY_PORT, AuthScope.ANY_REALM), expected); |
| Credentials got = state.getCredentials(DEFSCOPE); |
| assertEquals(expected, got); |
| } |
| |
| public void testWrongHostCredentials() throws Exception { |
| HttpState state = new HttpState(); |
| Credentials expected = new UsernamePasswordCredentials("name", "pass"); |
| state.setCredentials( |
| new AuthScope("host1", AuthScope.ANY_PORT, "realm"), expected); |
| Credentials got = state.getCredentials( |
| new AuthScope("host2", AuthScope.ANY_PORT, "realm")); |
| assertNotSame(expected, got); |
| } |
| |
| public void testWrongRealmCredentials() throws Exception { |
| HttpState state = new HttpState(); |
| Credentials cred = new UsernamePasswordCredentials("name", "pass"); |
| state.setCredentials( |
| new AuthScope("host", AuthScope.ANY_PORT, "realm1"), cred); |
| Credentials got = state.getCredentials( |
| new AuthScope("host", AuthScope.ANY_PORT, "realm2")); |
| assertNotSame(cred, got); |
| } |
| |
| // ------------------------------- Test Methods for matching Credentials |
| |
| public void testScopeMatching() { |
| AuthScope authscope1 = new AuthScope("somehost", 80, "somerealm", "somescheme"); |
| AuthScope authscope2 = new AuthScope("someotherhost", 80, "somerealm", "somescheme"); |
| assertTrue(authscope1.match(authscope2) < 0); |
| |
| int m1 = authscope1.match( |
| new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM, "somescheme")); |
| int m2 = authscope1.match( |
| new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, "somerealm", AuthScope.ANY_SCHEME)); |
| assertTrue(m2 > m1); |
| |
| m1 = authscope1.match( |
| new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM, "somescheme")); |
| m2 = authscope1.match( |
| new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, "somerealm", AuthScope.ANY_SCHEME)); |
| assertTrue(m2 > m1); |
| |
| m1 = authscope1.match( |
| new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, "somerealm", "somescheme")); |
| m2 = authscope1.match( |
| new AuthScope(AuthScope.ANY_HOST, 80, AuthScope.ANY_REALM, AuthScope.ANY_SCHEME)); |
| assertTrue(m2 > m1); |
| |
| m1 = authscope1.match( |
| new AuthScope(AuthScope.ANY_HOST, 80, "somerealm", "somescheme")); |
| m2 = authscope1.match( |
| new AuthScope("somehost", AuthScope.ANY_PORT, AuthScope.ANY_REALM, AuthScope.ANY_SCHEME)); |
| assertTrue(m2 > m1); |
| |
| m1 = authscope1.match(AuthScope.ANY); |
| m2 = authscope1.match( |
| new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM, "somescheme")); |
| assertTrue(m2 > m1); |
| } |
| |
| public void testCredentialsMatching() { |
| Credentials creds1 = new UsernamePasswordCredentials("name1", "pass1"); |
| Credentials creds2 = new UsernamePasswordCredentials("name2", "pass2"); |
| Credentials creds3 = new UsernamePasswordCredentials("name3", "pass3"); |
| |
| AuthScope scope1 = new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM); |
| AuthScope scope2 = new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, "somerealm"); |
| AuthScope scope3 = new AuthScope("somehost", AuthScope.ANY_PORT, AuthScope.ANY_REALM); |
| |
| HttpState state = new HttpState(); |
| state.setCredentials(scope1, creds1); |
| state.setCredentials(scope2, creds2); |
| state.setCredentials(scope3, creds3); |
| |
| Credentials got = state.getCredentials( |
| new AuthScope("someotherhost", 80, "someotherrealm", "basic")); |
| Credentials expected = creds1; |
| assertEquals(expected, got); |
| |
| got = state.getCredentials( |
| new AuthScope("someotherhost", 80, "somerealm", "basic")); |
| expected = creds2; |
| assertEquals(expected, got); |
| |
| got = state.getCredentials( |
| new AuthScope("somehost", 80, "someotherrealm", "basic")); |
| expected = creds3; |
| assertEquals(expected, got); |
| } |
| } |