blob: 9d8eb533c418dbbf2eeac179b9444fedcf5bb020 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.
*/
package javax.activation;
import java.util.Enumeration;
import junit.framework.TestCase;
/**
*
* @version $Rev$ $Date$
*/
public class MimeTypeParameterListTest extends TestCase {
private MimeTypeParameterList parameterList;
protected void setUp() throws Exception {
super.setUp();
parameterList = new MimeTypeParameterList();
}
public void testEmptyParameterList() {
assertEquals(0, parameterList.size());
assertTrue(parameterList.isEmpty());
}
public void testSimpleParameterList() throws MimeTypeParseException {
parameterList.parse(";name=value");
assertEquals(1, parameterList.size());
assertFalse(parameterList.isEmpty());
Enumeration e = parameterList.getNames();
assertTrue(e.hasMoreElements());
assertEquals("name", e.nextElement());
assertFalse(e.hasMoreElements());
assertEquals("value", parameterList.get("name"));
}
public void testQuotedValue() throws MimeTypeParseException {
parameterList.parse(";name=\"val()ue\"");
assertEquals(1, parameterList.size());
assertEquals("val()ue", parameterList.get("name"));
}
public void testWhiteSpacesParameterList() throws MimeTypeParseException {
parameterList.parse("; name= value");
assertEquals(1, parameterList.size());
assertEquals("name", parameterList.getNames().nextElement());
assertEquals("value", parameterList.get("name"));
}
public void testLongParameterList() throws MimeTypeParseException {
parameterList.parse(";name1=value1; name2 = value2; name3=value3;name4 = value4");
assertEquals(4, parameterList.size());
assertEquals("value1", parameterList.get("name1"));
assertEquals("value2", parameterList.get("name2"));
assertEquals("value3", parameterList.get("name3"));
assertEquals("value4", parameterList.get("name4"));
}
public void testCaseInsensitivity() throws MimeTypeParseException {
parameterList.parse(";name1=value; NAME2=VALUE; NaMe3=VaLuE");
assertEquals(3, parameterList.size());
assertEquals("value", parameterList.get("name1"));
assertEquals("VALUE", parameterList.get("name2"));
assertEquals("VaLuE", parameterList.get("name3"));
assertEquals("value", parameterList.get("NAME1"));
assertEquals("value", parameterList.get("NaMe1"));
parameterList.remove("NAME1");
assertNull(parameterList.get("name1"));
parameterList.remove("name3");
assertEquals("; name2=VALUE", parameterList.toString());
}
public void testNoValueParameterList() {
try {
parameterList.parse("; name=");
fail("Expected MimeTypeParseException");
} catch (MimeTypeParseException e) {
// ok
}
}
public void testMissingValueParameterList() {
try {
parameterList.parse("; name=;name2=value");
fail("Expected MimeTypeParseException");
} catch (MimeTypeParseException e) {
// ok
}
}
public void testNoNameParameterList() {
try {
parameterList.parse("; = value");
fail("Expected MimeTypeParseException");
} catch (MimeTypeParseException e) {
// ok
}
}
public void testUnterminatedQuotedString() {
try {
parameterList.parse("; = \"value");
fail("Expected MimeTypeParseException");
} catch (MimeTypeParseException e) {
// ok
}
}
public void testSpecialInAttribute() {
String specials = "()<>@,;:\\\"/[]?= \t";
for (int i=0; i < specials.length(); i++) {
try {
parameterList.parse(";na"+specials.charAt(i)+"me=value");
fail("Expected MimeTypeParseException for special: " + specials.charAt(i));
} catch (MimeTypeParseException e) {
// ok
}
}
}
}