package com.limegroup.gnutella.browser;
import java.net.URLEncoder;
import com.limegroup.gnutella.util.BaseTestCase;
public class ExternalControlTest extends BaseTestCase {
MagnetOptions[] validMagnets;
public ExternalControlTest(String name) {
super(name);
}
public void setUp() {
validMagnets = MagnetOptions.parseMagnet("magnet:?xt.1=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C&xt.2=urn:sha1:TXGCZQTH26NL6OUQAJJPFALHG2LTGBC7");
}
public void testParseValidMagnets() {
String magnets = createMultiLineMagnetLinks(validMagnets);
MagnetOptions[] opts = ExternalControl.parseMagnets(magnets);
assertEquals("Should have parsed " + validMagnets.length + " magnets", validMagnets.length, opts.length);
// and parse again
assertEquals("Should have parsed " + opts.length + " magnets", opts.length,
ExternalControl.parseMagnets(createMultiLineMagnetLinks(opts)).length);
// compound magnets with multiple lines
opts = ExternalControl.parseMagnets
("magnet:?xt.1=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C&xt.2=urn:sha1:TXGCZQTH26NL6OUQAJJPFALHG2LTGBC7"
+ System.getProperty("line.separator")
+ "magnet:?xt.1=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C&xt.2=urn:sha1:TXGCZQTH26NL6OUQAJJPFALHG2LTGBC7");
assertEquals("Should have parsed 2 magnets", 4, opts.length);
}
private String createMultiLineMagnetLinks(MagnetOptions[] opts) {
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < opts.length; i++) {
if (i > 0) {
buffer.append(System.getProperty("line.separator"));
}
buffer.append(opts[i].toString());
}
return buffer.toString();
}
}