2
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestHeaderElement.java,v 1.7 2004/02/22 18:08:49 olegk Exp $
4
* $Date: 2009-02-14 17:39:33 +0100 (Sat, 14 Feb 2009) $
5
* ====================================================================
6
* Licensed to the Apache Software Foundation (ASF) under one
7
* or more contributor license agreements. See the NOTICE file
8
* distributed with this work for additional information
9
* regarding copyright ownership. The ASF licenses this file
10
* to you under the Apache License, Version 2.0 (the
11
* "License"); you may not use this file except in compliance
12
* with the License. You may obtain a copy of the License at
14
* http://www.apache.org/licenses/LICENSE-2.0
16
* Unless required by applicable law or agreed to in writing,
17
* software distributed under the License is distributed on an
18
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19
* KIND, either express or implied. See the License for the
20
* specific language governing permissions and limitations
22
* ====================================================================
24
* This software consists of voluntary contributions made by many
25
* individuals on behalf of the Apache Software Foundation. For more
26
* information on the Apache Software Foundation, please see
27
* <http://www.apache.org/>.
29
* [Additional notices, if required by prior licensing conditions]
33
package org.apache.http.message;
35
import junit.framework.Test;
36
import junit.framework.TestCase;
37
import junit.framework.TestSuite;
39
import org.apache.http.HeaderElement;
40
import org.apache.http.NameValuePair;
43
* Simple tests for {@link HeaderElement}.
45
* @version $Id: TestHeaderElement.java 744517 2009-02-14 16:39:33Z sebb $
47
public class TestHeaderElement extends TestCase {
49
// ------------------------------------------------------------ Constructor
50
public TestHeaderElement(String testName) {
54
// ------------------------------------------------------------------- Main
55
public static void main(String args[]) {
56
String[] testCaseName = { TestHeaderElement.class.getName() };
57
junit.textui.TestRunner.main(testCaseName);
60
// ------------------------------------------------------- TestCase Methods
62
public static Test suite() {
63
return new TestSuite(TestHeaderElement.class);
66
public void testConstructor3() throws Exception {
67
HeaderElement element = new BasicHeaderElement("name", "value",
69
new BasicNameValuePair("param1", "value1"),
70
new BasicNameValuePair("param2", "value2")
72
assertEquals("name", element.getName());
73
assertEquals("value", element.getValue());
74
assertEquals(2, element.getParameters().length);
75
assertEquals("value1", element.getParameterByName("param1").getValue());
76
assertEquals("value2", element.getParameterByName("param2").getValue());
79
public void testConstructor2() throws Exception {
80
HeaderElement element = new BasicHeaderElement("name", "value");
81
assertEquals("name", element.getName());
82
assertEquals("value", element.getValue());
83
assertEquals(0, element.getParameters().length);
87
public void testInvalidName() {
89
new BasicHeaderElement(null, null, null);
90
fail("IllegalArgumentException should have been thrown");
91
} catch (IllegalArgumentException ex) {
96
public void testParamByName() throws Exception {
97
String s = "name = value; param1 = value1; param2 = value2";
98
HeaderElement element = BasicHeaderValueParser.parseHeaderElement(s, null);
99
assertEquals("value1", element.getParameterByName("param1").getValue());
100
assertEquals("value2", element.getParameterByName("param2").getValue());
101
assertNull(element.getParameterByName("param3"));
103
element.getParameterByName(null);
104
fail("IllegalArgumentException should have been thrown");
105
} catch (IllegalArgumentException ex) {
110
public void testHashCode() {
111
HeaderElement element1 = new BasicHeaderElement("name", "value",
112
new NameValuePair[] {
113
new BasicNameValuePair("param1", "value1"),
114
new BasicNameValuePair("param2", "value2")
116
HeaderElement element2 = new BasicHeaderElement("name", "value",
117
new NameValuePair[] {
118
new BasicNameValuePair("param2", "value2"),
119
new BasicNameValuePair("param1", "value1")
121
HeaderElement element3 = new BasicHeaderElement("name", "value");
122
HeaderElement element4 = new BasicHeaderElement("name", "value");
123
HeaderElement element5 = new BasicHeaderElement("name", "value",
124
new NameValuePair[] {
125
new BasicNameValuePair("param1", "value1"),
126
new BasicNameValuePair("param2", "value2")
128
assertTrue(element1.hashCode() != element2.hashCode());
129
assertTrue(element1.hashCode() != element3.hashCode());
130
assertTrue(element2.hashCode() != element3.hashCode());
131
assertTrue(element3.hashCode() == element4.hashCode());
132
assertTrue(element1.hashCode() == element5.hashCode());
135
public void testEquals() {
136
HeaderElement element1 = new BasicHeaderElement("name", "value",
137
new NameValuePair[] {
138
new BasicNameValuePair("param1", "value1"),
139
new BasicNameValuePair("param2", "value2")
141
HeaderElement element2 = new BasicHeaderElement("name", "value",
142
new NameValuePair[] {
143
new BasicNameValuePair("param2", "value2"),
144
new BasicNameValuePair("param1", "value1")
146
HeaderElement element3 = new BasicHeaderElement("name", "value");
147
HeaderElement element4 = new BasicHeaderElement("name", "value");
148
HeaderElement element5 = new BasicHeaderElement("name", "value",
149
new NameValuePair[] {
150
new BasicNameValuePair("param1", "value1"),
151
new BasicNameValuePair("param2", "value2")
153
assertTrue(element1.equals(element1));
154
assertTrue(!element1.equals(element2));
155
assertTrue(!element1.equals(element3));
156
assertTrue(!element2.equals(element3));
157
assertTrue(element3.equals(element4));
158
assertTrue(element1.equals(element5));
159
assertFalse(element1.equals(null));
160
assertFalse(element1.equals("name = value; param1 = value1; param2 = value2"));
163
public void testToString() {
164
String s = "name=value; param1=value1; param2=value2";
165
HeaderElement element = BasicHeaderValueParser.parseHeaderElement(s, null);
166
assertEquals(s, element.toString());
167
s = "name; param1=value1; param2=value2";
168
element = BasicHeaderValueParser.parseHeaderElement(s, null);
169
assertEquals(s, element.toString());
172
public void testCloning() throws Exception {
173
BasicHeaderElement orig = new BasicHeaderElement("name", "value",
174
new NameValuePair[] {
175
new BasicNameValuePair("param1", "value1"),
176
new BasicNameValuePair("param2", "value2")
178
BasicHeaderElement clone = (BasicHeaderElement) orig.clone();
179
assertEquals(orig, clone);