package com.limegroup.gnutella.settings;
import java.io.File;
import org.limewire.core.settings.SharingSettings;
import org.limewire.gnutella.tests.LimeTestCase;
import org.limewire.util.MediaType;
import junit.framework.Test;
public class SharingSettingsTest extends LimeTestCase {
public SharingSettingsTest(String name) {
super(name);
}
public static void main(java.lang.String[] args) {
junit.textui.TestRunner.run(suite());
}
public static Test suite() {
return buildTestSuite(SharingSettingsTest.class);
}
/**
* Tests if all settings are set to the default save directory.
*/
public void testUnsetMediaTypeDirectories() {
MediaType[] types = MediaType.getDefaultMediaTypes();
for (int i = 0; i < types.length; i++) {
assertEquals("Should be the save directory",
SharingSettings.getSaveDirectory(null),
SharingSettings.getFileSettingForMediaType(types[i]).get());
}
}
public void testSetMediaTypeDirectories() throws Exception {
File tmpFile = File.createTempFile("prefix", "postfix");
tmpFile.deleteOnExit();
File dir = new File(tmpFile.getParentFile(), "subdir");
dir.mkdir();
dir.deleteOnExit();
// set all mediatype directories
MediaType[] types = MediaType.getDefaultMediaTypes();
for (int i = 0; i < types.length; i++) {
SharingSettings.getFileSettingForMediaType(types[i]).set(dir);
}
// test if they are all set
for (int i = 0; i < types.length; i++) {
assertEquals("Should be the set directory",
dir,
SharingSettings.getFileSettingForMediaType(types[i]).get());
}
// revert them
for (int i = 0; i < types.length; i++) {
SharingSettings.getFileSettingForMediaType(types[i]).revertToDefault();
}
// check if they are reverted
for (int i = 0; i < types.length; i++) {
assertTrue("Should be default",
SharingSettings.getFileSettingForMediaType(
types[i]).isDefault());
assertEquals("Should be the save directory",
SharingSettings.getSaveDirectory(null),
SharingSettings.getFileSettingForMediaType(types[i]).get());
}
}
public void testSetStoreDirectory() throws Exception {
File tmpFile = File.createTempFile("prefix", "postfix");
tmpFile.deleteOnExit();
File dir = new File(tmpFile.getParentFile(), "subdir");
dir.mkdir();
dir.deleteOnExit();
// test the lws directory
SharingSettings.setSaveLWSDirectory(dir);
assertEquals("Should be the set directory",
dir.getCanonicalPath(),
SharingSettings.getSaveLWSDirectory().getCanonicalPath());
SharingSettings.setSaveLWSDirectory(SharingSettings.DEFAULT_SAVE_LWS_DIR);
assertEquals("Should be the save directory",
SharingSettings.getSaveLWSDirectory(),
SharingSettings.DEFAULT_SAVE_LWS_DIR);
}
public void testGetSaveDirectoryForNoFilenameLabel() {
assertEquals(SharingSettings.getSaveDirectory(null), SharingSettings.getSaveDirectory("No Filename"));
}
}