mirror of
https://github.com/moparisthebest/davmail
synced 2025-01-05 18:58:02 -05:00
Carddav: fix case insensitive param values
git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@1201 3d1905a2-6b24-0410-a738-b14d5a86fcbd
This commit is contained in:
parent
2c63a6b72a
commit
2d775713ec
@ -2683,13 +2683,13 @@ public abstract class ExchangeSession {
|
|||||||
} else if ("NICKNAME".equals(property.getKey())) {
|
} else if ("NICKNAME".equals(property.getKey())) {
|
||||||
properties.put("nickname", property.getValue());
|
properties.put("nickname", property.getValue());
|
||||||
} else if ("TEL".equals(property.getKey())) {
|
} else if ("TEL".equals(property.getKey())) {
|
||||||
if (property.hasParam("TYPE", "cell") || property.hasParam("X-GROUP", "CELL")) {
|
if (property.hasParam("TYPE", "cell") || property.hasParam("X-GROUP", "cell")) {
|
||||||
properties.put("mobile", property.getValue());
|
properties.put("mobile", property.getValue());
|
||||||
}
|
}
|
||||||
if (property.hasParam("TYPE", "work") || property.hasParam("X-GROUP", "WORK")) {
|
if (property.hasParam("TYPE", "work") || property.hasParam("X-GROUP", "work")) {
|
||||||
properties.put("telephoneNumber", property.getValue());
|
properties.put("telephoneNumber", property.getValue());
|
||||||
}
|
}
|
||||||
if (property.hasParam("TYPE", "home") || property.hasParam("X-GROUP", "HOME")) {
|
if (property.hasParam("TYPE", "home") || property.hasParam("X-GROUP", "home")) {
|
||||||
properties.put("homePhone", property.getValue());
|
properties.put("homePhone", property.getValue());
|
||||||
}
|
}
|
||||||
if (property.hasParam("TYPE", "fax")) {
|
if (property.hasParam("TYPE", "fax")) {
|
||||||
|
@ -175,28 +175,28 @@ public class VCardReader extends ICSBufferedReader {
|
|||||||
startIndex = i + 1;
|
startIndex = i + 1;
|
||||||
} else if (currentChar == ':') {
|
} else if (currentChar == ':') {
|
||||||
if (startIndex < i) {
|
if (startIndex < i) {
|
||||||
paramValues.add(line.substring(startIndex, i));
|
paramValues.add(line.substring(startIndex, i).toLowerCase());
|
||||||
}
|
}
|
||||||
property.addParam(paramName, paramValues);
|
property.addParam(paramName, paramValues);
|
||||||
state = State.VALUE;
|
state = State.VALUE;
|
||||||
startIndex = i + 1;
|
startIndex = i + 1;
|
||||||
} else if (currentChar == ';') {
|
} else if (currentChar == ';') {
|
||||||
if (startIndex < i) {
|
if (startIndex < i) {
|
||||||
paramValues.add(line.substring(startIndex, i));
|
paramValues.add(line.substring(startIndex, i).toLowerCase());
|
||||||
}
|
}
|
||||||
property.addParam(paramName, paramValues);
|
property.addParam(paramName, paramValues);
|
||||||
state = State.PARAM_NAME;
|
state = State.PARAM_NAME;
|
||||||
startIndex = i + 1;
|
startIndex = i + 1;
|
||||||
} else if (currentChar == ',') {
|
} else if (currentChar == ',') {
|
||||||
if (startIndex < i) {
|
if (startIndex < i) {
|
||||||
paramValues.add(line.substring(startIndex, i));
|
paramValues.add(line.substring(startIndex, i).toLowerCase());
|
||||||
}
|
}
|
||||||
startIndex = i + 1;
|
startIndex = i + 1;
|
||||||
}
|
}
|
||||||
} else if (state == State.QUOTED_PARAM_VALUE) {
|
} else if (state == State.QUOTED_PARAM_VALUE) {
|
||||||
if (currentChar == '"') {
|
if (currentChar == '"') {
|
||||||
state = State.PARAM_VALUE;
|
state = State.PARAM_VALUE;
|
||||||
paramValues.add(line.substring(startIndex, i));
|
paramValues.add(line.substring(startIndex, i).toLowerCase());
|
||||||
startIndex = i + 1;
|
startIndex = i + 1;
|
||||||
}
|
}
|
||||||
} else if (state == State.VALUE) {
|
} else if (state == State.VALUE) {
|
||||||
|
@ -274,7 +274,22 @@ public class TestExchangeSessionContact extends AbstractExchangeSessionTestCase
|
|||||||
assertNull(contact.get("haspicture"));
|
assertNull(contact.get("haspicture"));
|
||||||
|
|
||||||
assertNull(session.getContactPhoto(contact));
|
assertNull(session.getContactPhoto(contact));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testUpperCaseParamName() throws IOException {
|
||||||
|
ExchangeSession.Contact contact = (ExchangeSession.Contact) session.getItem("testcontactfolder", itemName);
|
||||||
|
|
||||||
|
VCardWriter vCardWriter = new VCardWriter();
|
||||||
|
vCardWriter.startCard();
|
||||||
|
vCardWriter.appendProperty("TEL;TYPE=CELL", "mobile");
|
||||||
|
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("mobile", contact.get("mobile"));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user