Carddav: Fix lower case param names

git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@1211 3d1905a2-6b24-0410-a738-b14d5a86fcbd
This commit is contained in:
mguessan 2010-07-19 16:55:57 +00:00
parent ac4f06383f
commit 12013cd1ee
2 changed files with 22 additions and 5 deletions

View File

@ -157,19 +157,19 @@ public class VCardReader extends ICSBufferedReader {
}
} else if (state == State.PARAM_NAME) {
if (currentChar == '=') {
paramName = line.substring(startIndex, i);
paramName = line.substring(startIndex, i).toUpperCase();
state = State.PARAM_VALUE;
paramValues = new HashSet<String>();
startIndex = i + 1;
} else if (currentChar == ';') {
// param with no value
paramName = line.substring(startIndex, i);
paramName = line.substring(startIndex, i).toUpperCase();
property.addParam(paramName, null);
state = State.PARAM_NAME;
startIndex = i + 1;
} else if (currentChar == ':') {
// param with no value
paramName = line.substring(startIndex, i);
paramName = line.substring(startIndex, i).toUpperCase();
property.addParam(paramName, null);
state = State.VALUE;
startIndex = i + 1;

View File

@ -298,7 +298,7 @@ public class TestExchangeSessionContact extends AbstractExchangeSessionTestCase
VCardWriter vCardWriter = new VCardWriter();
vCardWriter.startCard();
vCardWriter.appendProperty("TEL;TYPE=CELL;TYPE=PREF", "mobile");
vCardWriter.appendProperty("TEL;TYPE=CELL;TYPE=pref", "another mobile");
vCardWriter.endCard();
ExchangeSession.ItemResult result = session.createOrUpdateContact("testcontactfolder", itemName, vCardWriter.toString(), contact.etag, null);
@ -306,8 +306,25 @@ public class TestExchangeSessionContact extends AbstractExchangeSessionTestCase
contact = (ExchangeSession.Contact) session.getItem("testcontactfolder", itemName);
assertEquals("mobile", contact.get("mobile"));
assertEquals("another mobile", contact.get("mobile"));
}
public void testLowerCaseTypesParamName() throws IOException {
ExchangeSession.Contact contact = (ExchangeSession.Contact) session.getItem("testcontactfolder", itemName);
VCardWriter vCardWriter = new VCardWriter();
vCardWriter.startCard();
vCardWriter.appendProperty("TEL;type=HOME;type=pref", "5 68 99 3");
vCardWriter.endCard();
ExchangeSession.ItemResult result = session.createOrUpdateContact("testcontactfolder", itemName, vCardWriter.toString(), contact.etag, null);
assertEquals(200, result.status);
contact = (ExchangeSession.Contact) session.getItem("testcontactfolder", itemName);
assertEquals("5 68 99 3", contact.get("homePhone"));
}
}