package com.pugh.sockso;
import com.pugh.sockso.tests.SocksoTestCase;
import org.apache.log4j.Logger;
import java.util.Map;
public class StringPropertiesTest extends SocksoTestCase implements PropertiesListener {
private static Logger log = Logger.getLogger( StringPropertiesTest.class );
private boolean propertiesSavedFlag;
@Override
public void propertiesSaved( Properties p ) {
propertiesSavedFlag = true;
}
public void testAddPropertiesListener() {
Properties p = new StringProperties();
p.addPropertiesListener( this );
propertiesSavedFlag = false;
assertFalse( propertiesSavedFlag );
p.save();
assertTrue( propertiesSavedFlag );
}
public void testGetAndSet() {
final Properties p = new StringProperties();
String value = "asdasd";
String name = "asdsd";
p.set( name, value );
assertEquals( p.get(name), value );
}
public void testGetAndSetInt() {
final Properties p = new StringProperties();
String name = "foo.bar";
int value = 123213;
p.set( name, value );
assertEquals( p.get(name,-1), value );
// test a default
p.set( name, "string" );
assertEquals( p.get(name,value), value );
}
public void testGetMatches() {
final Properties p = new StringProperties();
p.set( "prop.a", "b" );
p.set( "prop.b", "c" );
Map<String,String> h = p.getMatches( "prop" );
assertEquals( "b", h.get("a") );
assertEquals( "c", h.get("b") );
}
public void testDelete() {
final Properties p = new StringProperties();
final String name = "foo.bar";
p.set( name, "baz" );
assertTrue( p.exists(name) );
p.delete( name );
assertFalse( p.exists(name) );
}
public void testExists() {
final Properties p = new StringProperties();
final String name = "foo.bar";
p.set( name, "baz" );
assertTrue( p.exists(name) );
p.delete( name );
assertFalse( p.exists(name) );
}
public void testGetUrl() {
final Properties p = new StringProperties();
assertEquals( "/foo", p.getUrl("foo") );
assertEquals( "/foo", p.getUrl("/foo") );
assertEquals( "/file/skins/original/foo", p.getUrl("<skin>/foo") );
assertEquals( "/file/skins/original/foo", p.getUrl("/<skin>/foo") );
p.set("www.skin","other");
assertEquals( "/file/skins/other/foo", p.getUrl("<skin>/foo") );
p.set("server.basepath","other");
assertEquals( "/other/file/skins/other/foo", p.getUrl("<skin>/foo") );
p.set("server.basepath","http://other.com");
assertEquals( "http://other.com/file/skins/other/foo", p.getUrl("<skin>/foo") );
assertEquals( "http://test.com/foo", p.getUrl("http://test.com/foo") );
assertEquals( "https://test.com/foo", p.getUrl("https://test.com/foo") );
}
}