diff options
| -rw-r--r-- | src/com/isode/stroke/jid/JID.java | 13 | ||||
| -rw-r--r-- | test/com/isode/stroke/jid/JIDTest.java | 10 |
2 files changed, 15 insertions, 8 deletions
diff --git a/src/com/isode/stroke/jid/JID.java b/src/com/isode/stroke/jid/JID.java index 59eef52..8b62ca1 100644 --- a/src/com/isode/stroke/jid/JID.java +++ b/src/com/isode/stroke/jid/JID.java @@ -1,8 +1,8 @@ /* - * Copyright (c) 2010-2012, Isode Limited, London, England. + * Copyright (c) 2010-2016, Isode Limited, London, England. * All rights reserved. */ /* * Copyright (c) 2010, Remko Tronçon. * All rights reserved. */ @@ -11,19 +11,19 @@ * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ package com.isode.stroke.jid; -import com.isode.stroke.idn.ICUConverter; -import com.isode.stroke.idn.IDNConverter; -import com.ibm.icu.text.StringPrepParseException; -import com.isode.stroke.base.NotNull; import java.util.Arrays; import java.util.List; +import com.isode.stroke.base.NotNull; +import com.isode.stroke.idn.ICUConverter; +import com.isode.stroke.idn.IDNConverter; + /** * JID helper. * * This represents the JID used in XMPP * (RFC6120 - http://tools.ietf.org/html/rfc6120 particularly section 1.4), * further defined in XMPP Address Format (http://tools.ietf.org/html/rfc6122 ). @@ -144,12 +144,15 @@ public class JID implements Comparable<JID> { */ public JID(String node, String domain, String resource) { NotNull.exceptIfNull(node, "node"); NotNull.exceptIfNull(domain, "domain"); valid_ = true; hasResource_ = (resource != null); + if (hasResource_ && resource.isEmpty()) { + valid_ = false; + } nameprepAndSetComponents(node, domain, resource); } private void nameprepAndSetComponents(String node, String domain, String resource) { if (domain.isEmpty() || idnConverter.getIDNAEncoded(domain) == null) { valid_ = false; diff --git a/test/com/isode/stroke/jid/JIDTest.java b/test/com/isode/stroke/jid/JIDTest.java index 96de429..69bee05 100644 --- a/test/com/isode/stroke/jid/JIDTest.java +++ b/test/com/isode/stroke/jid/JIDTest.java @@ -9,18 +9,16 @@ * See Documentation/Licenses/BSD-simplified.txt for more information. */ package com.isode.stroke.jid; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; + import org.junit.Test; -import com.isode.stroke.jid.JID; public class JIDTest { public JIDTest() { } @@ -152,12 +150,18 @@ public class JIDTest { @Test public void testConstructorWithStrings_EmptyDomain() { JID testling = new JID("foo", "", "baz"); assertFalse(testling.isValid()); } + + @Test + public void testConstructorWithStrings_EmptyResource() { + JID testling = new JID("foo","bar",""); + assertFalse(testling.isValid()); + } @Test public void testIsBare() { assertTrue(new JID("foo@bar").isBare()); } |
Swift