diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProviderTest.java
index 386b1f596..dc16ef9e9 100644
--- a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProviderTest.java
+++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProviderTest.java
@@ -1,6 +1,6 @@
/**
*
- * Copyright © 2017 Grigory Fedorov
+ * Copyright © 2017 Grigory Fedorov, Florian Schmaus
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,41 +16,108 @@
*/
package org.jivesoftware.smackx.httpfileupload.provider;
+import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual;
+import static org.junit.Assert.assertEquals;
+
+import java.net.MalformedURLException;
import java.net.URL;
-import org.jivesoftware.smack.packet.IQ;
import org.jivesoftware.smack.util.PacketParserUtils;
import org.jivesoftware.smackx.httpfileupload.element.Slot;
+import org.jivesoftware.smackx.httpfileupload.element.Slot_V0_2;
-import org.junit.Assert;
import org.junit.Test;
public class SlotProviderTest {
+ private static final String PUT_URL_STRING = "https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png";
+
+ private static final String GET_URL_STRING = "https://download.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png";
+
+ private static final URL PUT_URL = urlFromString(PUT_URL_STRING);
+ private static final URL GET_URL = urlFromString(GET_URL_STRING);
+
+ private static URL urlFromString(String urlString) {
+ try {
+ return new URL(urlString);
+ }
+ catch (MalformedURLException e) {
+ throw new Error(e);
+ }
+ }
+
/**
* Example 6. The upload service responds with a slot
* @see XEP-0363: HTTP File Upload 4. Requesting a slot
*/
- String slotExample
+ private static final String SLOT_IQ
= ""
+ ""
- + ""
- + ""
+ + ""
+ + ""
+ ""
+ "";
@Test
public void checkSlotProvider() throws Exception {
- Slot slot = PacketParserUtils.parseStanza(slotExample);
+ Slot slot = PacketParserUtils.parseStanza(SLOT_IQ);
- Assert.assertEquals(IQ.Type.result, slot.getType());
- Assert.assertEquals(new URL("https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png"),
- slot.getPutUrl());
- Assert.assertEquals(new URL("https://download.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png"),
- slot.getGetUrl());
+ checkUrls(slot);
+
+ assertXMLEqual(SLOT_IQ, slot.toXML().toString());
+ }
+
+ private static final String SLOT_V0_2_IQ =
+ "" +
+ "" +
+ "" + PUT_URL_STRING + "" +
+ "" + GET_URL_STRING + "" +
+ "" +
+ "";
+
+ @Test
+ public void checkSlotV0_2Provider() throws Exception {
+ Slot_V0_2 slot = PacketParserUtils.parseStanza(SLOT_V0_2_IQ);
+
+ checkUrls(slot);
+
+ String slotXml = slot.toXML().toString();
+ assertXMLEqual(SLOT_V0_2_IQ, slotXml);
+ }
+
+ private static final String SLOT_WITH_HEADERS_IQ =
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "";
+
+ @Test
+ public void checkSlotWithHeaders() throws Exception {
+ Slot slot = PacketParserUtils.parseStanza(SLOT_WITH_HEADERS_IQ);
+
+ checkUrls(slot);
+
+ String slotXml = slot.toXML().toString();
+ assertXMLEqual(SLOT_WITH_HEADERS_IQ, slotXml);
+ }
+
+ private static void checkUrls(Slot slot) {
+ assertEquals(PUT_URL, slot.getPutUrl());
+ assertEquals(GET_URL, slot.getGetUrl());
}
}