package com.limegroup.gnutella.downloader; import java.util.LinkedList; import java.util.List; import junit.framework.Test; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.limegroup.gnutella.DownloadManager; import com.limegroup.gnutella.Downloader; import com.limegroup.gnutella.RouterService; import com.limegroup.gnutella.settings.ConnectionSettings; import com.limegroup.gnutella.settings.DownloadSettings; import com.limegroup.gnutella.stubs.ActivityCallbackStub; import com.limegroup.gnutella.util.CommonUtils; /** * Tests backwards compatibility with old downloads.dat files. */ public class OldDownloadsTest extends com.limegroup.gnutella.util.BaseTestCase { private static final Log LOG = LogFactory.getLog(OldDownloadsTest.class); private static final String filePath = "com/limegroup/gnutella/downloader/"; public OldDownloadsTest(String name) { super(name); } public static void main(String[] args) { junit.textui.TestRunner.run(suite()); } public static Test suite() { return buildTestSuite(OldDownloadsTest.class); } public void testLegacy() throws Exception { doTest("downloads_30.dat","mpg4_golem160x90first120.avi",2777638); doTest("downloads_233.dat", "Test1.mp3", 1922612); //doTest("downloads_224.dat"); //Has XML serialization problem //doTest("downloads_202.dat"); //Has XML serialization problem } private void doTest(String file,String name,int size) throws Exception { LOG.debug("-Trying to read downloads.dat from \""+file+"\""); //Build part of backend ConnectionSettings.CONNECT_ON_STARTUP.setValue(false); DownloadSettings.MAX_SIM_DOWNLOAD.setValue(0); TestActivityCallback callback=new TestActivityCallback(); RouterService rs = new RouterService(callback); DownloadManager dm = rs.getDownloadManager(); dm.initialize(); assertTrue("unable to read snapshot!", dm.readSnapshot(CommonUtils.getResourceFile(filePath + file))); assertEquals("unexpected amount of downloaders added to gui", 1, callback.downloaders.size()); ManagedDownloader md=(ManagedDownloader)callback.downloaders.get(0); assertEquals("unexpected filename", name, md.getSaveFile().getName()); assertEquals("unexpected content length!", size, md.getContentLength()); } /** * Records lists of downloads */ class TestActivityCallback extends ActivityCallbackStub { List /* of Downloader */ downloaders=new LinkedList(); public void addDownload(Downloader d) { downloaders.add(d); } public void removeDownload(Downloader d) { downloaders.remove(d); } } }