package org.limewire.xmpp.client.impl; import java.io.IOException; import java.util.prefs.Preferences; import junit.framework.Test; import org.limewire.security.certificate.CipherProviderImpl; import org.limewire.util.BaseTestCase; public class PasswordManagerImplTest extends BaseTestCase { private PasswordManagerImpl passwordManagerImpl; public PasswordManagerImplTest(String name) { super(name); } public static Test suite() { return buildTestSuite(PasswordManagerImplTest.class); } @Override protected void setUp() throws Exception { passwordManagerImpl = new PasswordManagerImpl(new CipherProviderImpl()); } public void testLoadPasswordNonExistingPasswordThrows() throws Exception { try { passwordManagerImpl.loadPassword("mimi"); fail("io exception expected"); } catch (IOException ie) { } } public void testPasswordIsStoredInPreferences() throws Exception { Preferences preferences = Preferences.userRoot().node(PasswordManagerImpl.PREFERENCES_NODE); try { passwordManagerImpl.storePassword("mimi", "imim"); String encrpytedPassword = preferences.get("mimi", null); assertNotNull(encrpytedPassword); assertNotEquals("imim", encrpytedPassword); } finally { // clean up in case of failure preferences.remove("mimi"); } } public void testRemovePassword() throws IOException { Preferences preferences = Preferences.userRoot().node(PasswordManagerImpl.PREFERENCES_NODE); try { passwordManagerImpl.storePassword("mimi", "imim"); String encrpytedPassword = preferences.get("mimi", null); assertNotNull(encrpytedPassword); passwordManagerImpl.removePassword("mimi"); assertNull(preferences.get("mimi", null)); } finally { // clean up in case of failure preferences.remove("mimi"); } } public void loadStoredPassword() throws IOException { Preferences preferences = Preferences.userRoot().node(PasswordManagerImpl.PREFERENCES_NODE); try { passwordManagerImpl.storePassword("mimi", "imim"); assertEquals("imim", passwordManagerImpl.loadPassword("mimi")); } finally { // clean up in case of failure preferences.remove("mimi"); } } public void testStoreEmptyPasswordThrowsIllegalArgument() throws IOException { Preferences preferences = Preferences.userRoot().node(PasswordManagerImpl.PREFERENCES_NODE); try { passwordManagerImpl.storePassword("mimi", ""); fail("illegal argument expected"); } catch (IllegalArgumentException iae) { } finally { // clean up in case of failure preferences.remove("mimi"); } } public void testStoreEmptyUsernameThrowsIllegalArgument() throws IOException { Preferences preferences = Preferences.userRoot().node(PasswordManagerImpl.PREFERENCES_NODE); try { passwordManagerImpl.storePassword("", "imim"); fail("illegal argument expected"); } catch (IllegalArgumentException iae) { } finally { // clean up in case of failure preferences.remove(""); } } public void testRemovePasswordWithInvalidUserNameThrowsIllegalArgument() { try { passwordManagerImpl.removePassword(null); fail("IAE expected"); } catch (IllegalArgumentException iae) { } try { passwordManagerImpl.removePassword(""); fail("IAE expected"); } catch (IllegalArgumentException iae) { } } }