1   /*
2    * $HeadURL: https://svn.apache.org/repos/asf/httpcomponents/oac.hc3x/trunk/src/test/org/apache/commons/httpclient/auth/TestChallengeParser.java $
3    * $Revision: 1425331 $
4    * $Date: 2012-12-22 19:29:41 +0100 (Sat, 22 Dec 2012) $
5    * ====================================================================
6    *
7    *  Licensed to the Apache Software Foundation (ASF) under one or more
8    *  contributor license agreements.  See the NOTICE file distributed with
9    *  this work for additional information regarding copyright ownership.
10   *  The ASF licenses this file to You under the Apache License, Version 2.0
11   *  (the "License"); you may not use this file except in compliance with
12   *  the License.  You may obtain a copy of the License at
13   *
14   *      http://www.apache.org/licenses/LICENSE-2.0
15   *
16   *  Unless required by applicable law or agreed to in writing, software
17   *  distributed under the License is distributed on an "AS IS" BASIS,
18   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19   *  See the License for the specific language governing permissions and
20   *  limitations under the License.
21   * ====================================================================
22   *
23   * This software consists of voluntary contributions made by many
24   * individuals on behalf of the Apache Software Foundation.  For more
25   * information on the Apache Software Foundation, please see
26   * <http://www.apache.org/>.
27   *
28   * [Additional notices, if required by prior licensing conditions]
29   *
30   */
31  
32  package org.apache.commons.httpclient.auth;
33  
34  import junit.framework.Test;
35  import junit.framework.TestCase;
36  import junit.framework.TestSuite;
37  import java.util.Map;
38  import org.apache.commons.httpclient.auth.AuthChallengeParser;
39  import org.apache.commons.httpclient.auth.MalformedChallengeException; 
40  
41  /***
42   * Unit tests for {@link AuthChallengeParser}.
43   *
44   * @author <a href="mailto:oleg@ural.ru">Oleg Kalnichevski</a>
45   */
46  public class TestChallengeParser extends TestCase {
47  
48      // ------------------------------------------------------------ Constructor
49      public TestChallengeParser(String testName) {
50          super(testName);
51      }
52  
53      // ------------------------------------------------------------------- Main
54      public static void main(String args[]) {
55          String[] testCaseName = { TestChallengeParser.class.getName() };
56          junit.textui.TestRunner.main(testCaseName);
57      }
58  
59      // ------------------------------------------------------- TestCase Methods
60  
61      public static Test suite() {
62          return new TestSuite(TestChallengeParser.class);
63      }
64  
65  
66      public void testParsingChallenge() {
67          String challenge = 
68            "Basic realm=\"realm1\", test, test1 =  stuff, test2 =  \"stuff, stuff\", test3=\"crap";
69          String scheme = null;
70          Map elements = null;
71          try {
72              scheme = AuthChallengeParser.extractScheme(challenge);
73              elements = AuthChallengeParser.extractParams(challenge);
74          } catch (MalformedChallengeException e) {
75              fail("Unexpected exception: " + e.toString());
76          }
77          assertEquals("basic", scheme);
78          assertEquals("realm1", elements.get("realm"));
79          assertEquals(null, elements.get("test"));
80          assertEquals("stuff", elements.get("test1"));
81          assertEquals("stuff, stuff", elements.get("test2"));
82          assertEquals("\"crap", elements.get("test3"));
83      }
84  }