From 492d65feedda9a3445e109c5eed66def9df30f53 Mon Sep 17 00:00:00 2001 From: Art O Cathain Date: Wed, 18 Feb 2015 19:40:43 +0000 Subject: [PATCH 1/9] reduce duplication --- .../setup/AccountSetupAccountType.java | 109 +++++++----------- .../k9/activity/setup/AccountSetupBasics.java | 2 +- 2 files changed, 43 insertions(+), 68 deletions(-) diff --git a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupAccountType.java b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupAccountType.java index 5bc9f4130..54e8c24e7 100644 --- a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupAccountType.java +++ b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupAccountType.java @@ -14,6 +14,7 @@ import com.fsck.k9.Preferences; import com.fsck.k9.R; import com.fsck.k9.activity.K9Activity; import java.net.URI; +import java.net.URISyntaxException; /** * Prompts the user to select an account type. The account type, along with the @@ -49,83 +50,57 @@ public class AccountSetupAccountType extends K9Activity implements OnClickListen mMakeDefault = getIntent().getBooleanExtra(EXTRA_MAKE_DEFAULT, false); } - private void onPop() { - try { - URI uri = new URI(mAccount.getStoreUri()); - uri = new URI("pop3+ssl+", uri.getUserInfo(), uri.getHost(), uri.getPort(), null, null, null); - mAccount.setStoreUri(uri.toString()); - - uri = new URI(mAccount.getTransportUri()); - uri = new URI("smtp+tls+", uri.getUserInfo(), uri.getHost(), uri.getPort(), null, null, null); - mAccount.setTransportUri(uri.toString()); - - AccountSetupIncoming.actionIncomingSettings(this, mAccount, mMakeDefault); - finish(); - } catch (Exception use) { - failure(use); - } + private void setupStoreAndSmtpTransport(String schemePrefix) throws URISyntaxException { + URI uri = new URI(mAccount.getStoreUri()); + uri = new URI(schemePrefix, uri.getUserInfo(), uri.getHost(), uri.getPort(), null, null, null); + mAccount.setStoreUri(uri.toString()); + uri = new URI(mAccount.getTransportUri()); + uri = new URI("smtp+tls+", uri.getUserInfo(), uri.getHost(), uri.getPort(), null, null, null); + mAccount.setTransportUri(uri.toString()); } - private void onImap() { - try { - URI uri = new URI(mAccount.getStoreUri()); - uri = new URI("imap+ssl+", uri.getUserInfo(), uri.getHost(), uri.getPort(), null, null, null); - mAccount.setStoreUri(uri.toString()); + private void setupDav() throws URISyntaxException { + URI uri = new URI(mAccount.getStoreUri()); - uri = new URI(mAccount.getTransportUri()); - uri = new URI("smtp+tls+", uri.getUserInfo(), uri.getHost(), uri.getPort(), null, null, null); - mAccount.setTransportUri(uri.toString()); - - AccountSetupIncoming.actionIncomingSettings(this, mAccount, mMakeDefault); - finish(); - } catch (Exception use) { - failure(use); + /* + * The user info we have been given from + * AccountSetupBasics.onManualSetup() is encoded as an IMAP store + * URI: AuthType:UserName:Password (no fields should be empty). + * However, AuthType is not applicable to WebDAV nor to its store + * URI. Re-encode without it, using just the UserName and Password. + */ + String userPass = ""; + String[] userInfo = uri.getUserInfo().split(":"); + if (userInfo.length > 1) { + userPass = userInfo[1]; } - - } - - private void onWebDav() { - try { - URI uri = new URI(mAccount.getStoreUri()); - - /* - * The user info we have been given from - * AccountSetupBasics.onManualSetup() is encoded as an IMAP store - * URI: AuthType:UserName:Password (no fields should be empty). - * However, AuthType is not applicable to WebDAV nor to its store - * URI. Re-encode without it, using just the UserName and Password. - */ - String userPass = ""; - String[] userInfo = uri.getUserInfo().split(":"); - if (userInfo.length > 1) { - userPass = userInfo[1]; - } - if (userInfo.length > 2) { - userPass = userPass + ":" + userInfo[2]; - } - uri = new URI("webdav+ssl+", userPass, uri.getHost(), uri.getPort(), null, null, null); - mAccount.setStoreUri(uri.toString()); - AccountSetupIncoming.actionIncomingSettings(this, mAccount, mMakeDefault); - finish(); - } catch (Exception use) { - failure(use); + if (userInfo.length > 2) { + userPass = userPass + ":" + userInfo[2]; } - + uri = new URI("webdav+ssl+", userPass, uri.getHost(), uri.getPort(), null, null, null); + mAccount.setStoreUri(uri.toString()); } public void onClick(View v) { - switch (v.getId()) { - case R.id.pop: - onPop(); - break; - case R.id.imap: - onImap(); - break; - case R.id.webdav: - onWebDav(); - break; + try { + switch (v.getId()) { + case R.id.pop: + setupStoreAndSmtpTransport("pop3+ssl+"); + break; + case R.id.imap: + setupStoreAndSmtpTransport("imap+ssl+"); + break; + case R.id.webdav: + setupDav(); + break; + } + } catch (Exception ex) { + failure(ex); } + + AccountSetupIncoming.actionIncomingSettings(this, mAccount, mMakeDefault); + finish(); } private void failure(Exception use) { diff --git a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupBasics.java b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupBasics.java index 91cd119ba..c9b8b345f 100644 --- a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupBasics.java +++ b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupBasics.java @@ -347,7 +347,7 @@ public class AccountSetupBasics extends K9Activity } } - protected void onNext() { + private void onNext() { if (mClientCertificateCheckBox.isChecked()) { // Auto-setup doesn't support client certificates. From d5d42469b030b4544ef80009cccac236fd6e76d1 Mon Sep 17 00:00:00 2001 From: Art O Cathain Date: Sun, 22 Feb 2015 16:03:58 +0000 Subject: [PATCH 2/9] Avoid confusing reuse of local variables --- .../setup/AccountSetupAccountType.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupAccountType.java b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupAccountType.java index 54e8c24e7..1366c2563 100644 --- a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupAccountType.java +++ b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupAccountType.java @@ -51,17 +51,17 @@ public class AccountSetupAccountType extends K9Activity implements OnClickListen } private void setupStoreAndSmtpTransport(String schemePrefix) throws URISyntaxException { - URI uri = new URI(mAccount.getStoreUri()); - uri = new URI(schemePrefix, uri.getUserInfo(), uri.getHost(), uri.getPort(), null, null, null); - mAccount.setStoreUri(uri.toString()); + URI storeUriForDecode = new URI(mAccount.getStoreUri()); + URI storeUri = new URI(schemePrefix, storeUriForDecode.getUserInfo(), storeUriForDecode.getHost(), storeUriForDecode.getPort(), null, null, null); + mAccount.setStoreUri(storeUri.toString()); - uri = new URI(mAccount.getTransportUri()); - uri = new URI("smtp+tls+", uri.getUserInfo(), uri.getHost(), uri.getPort(), null, null, null); - mAccount.setTransportUri(uri.toString()); + URI transportUriForDecode = new URI(mAccount.getTransportUri()); + URI transportUri = new URI("smtp+tls+", transportUriForDecode.getUserInfo(), transportUriForDecode.getHost(), transportUriForDecode.getPort(), null, null, null); + mAccount.setTransportUri(transportUri.toString()); } private void setupDav() throws URISyntaxException { - URI uri = new URI(mAccount.getStoreUri()); + URI uriForDecode = new URI(mAccount.getStoreUri()); /* * The user info we have been given from @@ -71,14 +71,14 @@ public class AccountSetupAccountType extends K9Activity implements OnClickListen * URI. Re-encode without it, using just the UserName and Password. */ String userPass = ""; - String[] userInfo = uri.getUserInfo().split(":"); + String[] userInfo = uriForDecode.getUserInfo().split(":"); if (userInfo.length > 1) { userPass = userInfo[1]; } if (userInfo.length > 2) { userPass = userPass + ":" + userInfo[2]; } - uri = new URI("webdav+ssl+", userPass, uri.getHost(), uri.getPort(), null, null, null); + URI uri = new URI("webdav+ssl+", userPass, uriForDecode.getHost(), uriForDecode.getPort(), null, null, null); mAccount.setStoreUri(uri.toString()); } From 23c01b0390f90689fa51cc1f479c4845c1529295 Mon Sep 17 00:00:00 2001 From: Valentin CAULIER Date: Sat, 21 Feb 2015 15:35:35 +0100 Subject: [PATCH 3/9] MessageReference class, method equals() unit tests --- .../k9/activity/MessageReferenceTest.java | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java b/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java index a59e63a23..45b767ac0 100644 --- a/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java +++ b/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java @@ -8,8 +8,10 @@ import org.junit.Test; import org.junit.runner.RunWith; import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertNull; +import static junit.framework.Assert.assertTrue; @RunWith(AndroidJUnit4.class) public class MessageReferenceTest @@ -88,4 +90,76 @@ public class MessageReferenceTest // Corruption in the Flag should throw MessagingException. new MessageReference("!:%^&%^*$&$by&(BYWkh:Zm9%^@sZGVy:MT-35#$AxMDEwMTA=:ANSWE!RED"); } + + @Test + public void notAnInstanceOfMessageReferenceCantEquals() + { + // A MessageReference : + MessageReference m = new MessageReference(); + // And another Object : + Object o = new Object(); + // Asserting it is not equals, as not an instance of MessageReference: + assertFalse(m.equals(o)); + } + + @Test + public void sameMessageReferenceObjectsAreEquals() + { + // First MessageReference : + MessageReference m1 = new MessageReference(); + m1.accountUuid = "acc1"; + m1.folderName = "folder1"; + m1.uid = "uid1"; + // Same MessageReference than m1 : + MessageReference m2 = new MessageReference(); + m2.accountUuid = "acc1"; + m2.folderName = "folder1"; + m2.uid = "uid1"; + + assertTrue(m1.equals(m2)); + assertTrue(m2.equals(m1)); + } + + @Test + public void messageReferenceWithAnotherAccountUuidDontEquals() + { + // First MessageReference : + MessageReference m1 = new MessageReference(); + m1.accountUuid = "acc1"; + // A MessageReference with another accountUuid : + MessageReference m2 = new MessageReference(); + m2.accountUuid = "acc2"; + + assertFalse(m1.equals(m2)); + assertFalse(m2.equals(m1)); + } + + @Test + public void messageReferenceWithAnotherFolderNameDontEquals() + { + // First MessageReference : + MessageReference m1 = new MessageReference(); + m1.folderName = "folder1"; + // A MessageReference with another folderName : + MessageReference m2 = new MessageReference(); + m2.folderName = "folder2"; + + assertFalse(m1.equals(m2)); + assertFalse(m2.equals(m1)); + } + + @Test + public void messageReferenceWithAnotherUidDontEquals() + { + // First MessageReference : + MessageReference m1 = new MessageReference(); + m1.uid = "uid1"; + // A MessageReference with another uid : + MessageReference m2 = new MessageReference(); + m2.uid = "uid2"; + + assertFalse(m1.equals(m2)); + assertFalse(m2.equals(m1)); + } + } From 8fbb3edd1c9423b22ac06b1d29372ed2f8465ae4 Mon Sep 17 00:00:00 2001 From: cketti Date: Mon, 23 Feb 2015 01:45:30 +0100 Subject: [PATCH 4/9] Fix code style --- .../k9/activity/MessageReferenceTest.java | 45 +++++++------------ 1 file changed, 17 insertions(+), 28 deletions(-) diff --git a/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java b/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java index 45b767ac0..76e122c6d 100644 --- a/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java +++ b/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java @@ -1,5 +1,6 @@ package com.fsck.k9.activity; + import android.support.test.runner.AndroidJUnit4; import com.fsck.k9.mail.Flag; @@ -13,15 +14,15 @@ import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertNull; import static junit.framework.Assert.assertTrue; + @RunWith(AndroidJUnit4.class) -public class MessageReferenceTest -{ +public class MessageReferenceTest { /** - * Typically happens during forwards. (You have a reference, but no flag since we don't currently consider FORWARDED a flag.) + * Typically happens during forwards. (You have a reference, but no flag since we don't currently consider + * FORWARDED a flag.) */ @Test - public void testIdentityStringNoFlag() - { + public void testIdentityStringNoFlag() { MessageReference mr = new MessageReference(); mr.accountUuid = "o hai!"; mr.folderName = "folder"; @@ -34,8 +35,7 @@ public class MessageReferenceTest * Typically happens during replies. */ @Test - public void testIdentityString() - { + public void testIdentityString() { MessageReference mr = new MessageReference(); mr.accountUuid = "o hai!"; mr.folderName = "folder"; @@ -46,8 +46,7 @@ public class MessageReferenceTest } @Test - public void testParseIdentityStringNoFlag() throws MessagingException - { + public void testParseIdentityStringNoFlag() throws MessagingException { MessageReference mr = new MessageReference("!:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA="); assertEquals("o hai!", mr.accountUuid); assertEquals("folder", mr.folderName); @@ -56,8 +55,7 @@ public class MessageReferenceTest } @Test - public void testParseIdentityString() throws MessagingException - { + public void testParseIdentityString() throws MessagingException { MessageReference mr = new MessageReference("!:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA=:ANSWERED"); assertEquals("o hai!", mr.accountUuid); assertEquals("folder", mr.folderName); @@ -66,21 +64,18 @@ public class MessageReferenceTest } @Test - public void testBadVersion() throws MessagingException - { + public void testBadVersion() throws MessagingException { MessageReference mr = new MessageReference("@:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA=:ANSWERED"); assertNull(mr.accountUuid); } @Test(expected = MessagingException.class) - public void testNull() throws MessagingException - { + public void testNull() throws MessagingException { new MessageReference(null); } @Test(expected = MessagingException.class) - public void testCorruption() throws MessagingException - { + public void testCorruption() throws MessagingException { MessageReference mr = new MessageReference("!:%^&%^*$&$by&(BYWkh:Zm9%^@sZGVy:MT-35#$AxMDEwMTA=:ANSWERED"); // No idea what this is going to generate, but it should be non-null. assertNotNull(mr.accountUuid); @@ -92,8 +87,7 @@ public class MessageReferenceTest } @Test - public void notAnInstanceOfMessageReferenceCantEquals() - { + public void notAnInstanceOfMessageReferenceCantEquals() { // A MessageReference : MessageReference m = new MessageReference(); // And another Object : @@ -103,8 +97,7 @@ public class MessageReferenceTest } @Test - public void sameMessageReferenceObjectsAreEquals() - { + public void sameMessageReferenceObjectsAreEquals() { // First MessageReference : MessageReference m1 = new MessageReference(); m1.accountUuid = "acc1"; @@ -121,8 +114,7 @@ public class MessageReferenceTest } @Test - public void messageReferenceWithAnotherAccountUuidDontEquals() - { + public void messageReferenceWithAnotherAccountUuidDontEquals() { // First MessageReference : MessageReference m1 = new MessageReference(); m1.accountUuid = "acc1"; @@ -135,8 +127,7 @@ public class MessageReferenceTest } @Test - public void messageReferenceWithAnotherFolderNameDontEquals() - { + public void messageReferenceWithAnotherFolderNameDontEquals() { // First MessageReference : MessageReference m1 = new MessageReference(); m1.folderName = "folder1"; @@ -149,8 +140,7 @@ public class MessageReferenceTest } @Test - public void messageReferenceWithAnotherUidDontEquals() - { + public void messageReferenceWithAnotherUidDontEquals() { // First MessageReference : MessageReference m1 = new MessageReference(); m1.uid = "uid1"; @@ -161,5 +151,4 @@ public class MessageReferenceTest assertFalse(m1.equals(m2)); assertFalse(m2.equals(m1)); } - } From 084e7a16877aaa5c766b8080028502a29b238f99 Mon Sep 17 00:00:00 2001 From: cketti Date: Mon, 23 Feb 2015 02:22:10 +0100 Subject: [PATCH 5/9] Change names of test methods --- .../k9/activity/MessageReferenceTest.java | 31 +++++++------------ 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java b/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java index 76e122c6d..507c42c15 100644 --- a/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java +++ b/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java @@ -10,7 +10,6 @@ import org.junit.runner.RunWith; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertFalse; -import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertNull; import static junit.framework.Assert.assertTrue; @@ -22,7 +21,7 @@ public class MessageReferenceTest { * FORWARDED a flag.) */ @Test - public void testIdentityStringNoFlag() { + public void checkIdentityStringFromMessageReferenceWithoutFlag() { MessageReference mr = new MessageReference(); mr.accountUuid = "o hai!"; mr.folderName = "folder"; @@ -35,7 +34,7 @@ public class MessageReferenceTest { * Typically happens during replies. */ @Test - public void testIdentityString() { + public void checkIdentityStringFromMessageReferenceWithFlag() { MessageReference mr = new MessageReference(); mr.accountUuid = "o hai!"; mr.folderName = "folder"; @@ -46,7 +45,7 @@ public class MessageReferenceTest { } @Test - public void testParseIdentityStringNoFlag() throws MessagingException { + public void parseIdentityStringWithoutFlag() throws MessagingException { MessageReference mr = new MessageReference("!:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA="); assertEquals("o hai!", mr.accountUuid); assertEquals("folder", mr.folderName); @@ -55,7 +54,7 @@ public class MessageReferenceTest { } @Test - public void testParseIdentityString() throws MessagingException { + public void parseIdentityStringWithFlag() throws MessagingException { MessageReference mr = new MessageReference("!:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA=:ANSWERED"); assertEquals("o hai!", mr.accountUuid); assertEquals("folder", mr.folderName); @@ -64,30 +63,24 @@ public class MessageReferenceTest { } @Test - public void testBadVersion() throws MessagingException { + public void parseIdentityStringContainingBadVersionNumber() throws MessagingException { MessageReference mr = new MessageReference("@:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA=:ANSWERED"); assertNull(mr.accountUuid); } @Test(expected = MessagingException.class) - public void testNull() throws MessagingException { + public void parseNullIdentityString() throws MessagingException { new MessageReference(null); } @Test(expected = MessagingException.class) - public void testCorruption() throws MessagingException { - MessageReference mr = new MessageReference("!:%^&%^*$&$by&(BYWkh:Zm9%^@sZGVy:MT-35#$AxMDEwMTA=:ANSWERED"); - // No idea what this is going to generate, but it should be non-null. - assertNotNull(mr.accountUuid); - assertNotNull(mr.folderName); - assertNotNull(mr.uid); - + public void parseIdentityStringWithCorruptFlag() throws MessagingException { // Corruption in the Flag should throw MessagingException. new MessageReference("!:%^&%^*$&$by&(BYWkh:Zm9%^@sZGVy:MT-35#$AxMDEwMTA=:ANSWE!RED"); } @Test - public void notAnInstanceOfMessageReferenceCantEquals() { + public void equalsWithAnObjectShouldReturnFalse() { // A MessageReference : MessageReference m = new MessageReference(); // And another Object : @@ -97,7 +90,7 @@ public class MessageReferenceTest { } @Test - public void sameMessageReferenceObjectsAreEquals() { + public void equalsWithMessageReferenceContainingSameDataShouldReturnTrue() { // First MessageReference : MessageReference m1 = new MessageReference(); m1.accountUuid = "acc1"; @@ -114,7 +107,7 @@ public class MessageReferenceTest { } @Test - public void messageReferenceWithAnotherAccountUuidDontEquals() { + public void equalsWithMessageReferenceContainingDifferentAccountUuidShouldReturnFalse() { // First MessageReference : MessageReference m1 = new MessageReference(); m1.accountUuid = "acc1"; @@ -127,7 +120,7 @@ public class MessageReferenceTest { } @Test - public void messageReferenceWithAnotherFolderNameDontEquals() { + public void equalsWithMessageReferenceContainingDifferentFolderNameShouldReturnFalse() { // First MessageReference : MessageReference m1 = new MessageReference(); m1.folderName = "folder1"; @@ -140,7 +133,7 @@ public class MessageReferenceTest { } @Test - public void messageReferenceWithAnotherUidDontEquals() { + public void equalsWithMessageReferenceContainingDifferentUidShouldReturnFalse() { // First MessageReference : MessageReference m1 = new MessageReference(); m1.uid = "uid1"; From af491fdb418af26007933647cc641ea33d5239ab Mon Sep 17 00:00:00 2001 From: cketti Date: Mon, 23 Feb 2015 02:23:00 +0100 Subject: [PATCH 6/9] Remove comments --- .../k9/activity/MessageReferenceTest.java | 24 ++++--------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java b/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java index 507c42c15..de2ba2794 100644 --- a/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java +++ b/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java @@ -16,10 +16,7 @@ import static junit.framework.Assert.assertTrue; @RunWith(AndroidJUnit4.class) public class MessageReferenceTest { - /** - * Typically happens during forwards. (You have a reference, but no flag since we don't currently consider - * FORWARDED a flag.) - */ + @Test public void checkIdentityStringFromMessageReferenceWithoutFlag() { MessageReference mr = new MessageReference(); @@ -30,9 +27,6 @@ public class MessageReferenceTest { assertEquals("!:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA=", mr.toIdentityString()); } - /** - * Typically happens during replies. - */ @Test public void checkIdentityStringFromMessageReferenceWithFlag() { MessageReference mr = new MessageReference(); @@ -75,28 +69,23 @@ public class MessageReferenceTest { @Test(expected = MessagingException.class) public void parseIdentityStringWithCorruptFlag() throws MessagingException { - // Corruption in the Flag should throw MessagingException. new MessageReference("!:%^&%^*$&$by&(BYWkh:Zm9%^@sZGVy:MT-35#$AxMDEwMTA=:ANSWE!RED"); } @Test public void equalsWithAnObjectShouldReturnFalse() { - // A MessageReference : MessageReference m = new MessageReference(); - // And another Object : Object o = new Object(); - // Asserting it is not equals, as not an instance of MessageReference: assertFalse(m.equals(o)); } @Test public void equalsWithMessageReferenceContainingSameDataShouldReturnTrue() { - // First MessageReference : MessageReference m1 = new MessageReference(); m1.accountUuid = "acc1"; m1.folderName = "folder1"; m1.uid = "uid1"; - // Same MessageReference than m1 : + MessageReference m2 = new MessageReference(); m2.accountUuid = "acc1"; m2.folderName = "folder1"; @@ -108,10 +97,9 @@ public class MessageReferenceTest { @Test public void equalsWithMessageReferenceContainingDifferentAccountUuidShouldReturnFalse() { - // First MessageReference : MessageReference m1 = new MessageReference(); m1.accountUuid = "acc1"; - // A MessageReference with another accountUuid : + MessageReference m2 = new MessageReference(); m2.accountUuid = "acc2"; @@ -121,10 +109,9 @@ public class MessageReferenceTest { @Test public void equalsWithMessageReferenceContainingDifferentFolderNameShouldReturnFalse() { - // First MessageReference : MessageReference m1 = new MessageReference(); m1.folderName = "folder1"; - // A MessageReference with another folderName : + MessageReference m2 = new MessageReference(); m2.folderName = "folder2"; @@ -134,10 +121,9 @@ public class MessageReferenceTest { @Test public void equalsWithMessageReferenceContainingDifferentUidShouldReturnFalse() { - // First MessageReference : MessageReference m1 = new MessageReference(); m1.uid = "uid1"; - // A MessageReference with another uid : + MessageReference m2 = new MessageReference(); m2.uid = "uid2"; From a979accb548c2eb62f1ae8959afcc80a60df8d44 Mon Sep 17 00:00:00 2001 From: cketti Date: Mon, 23 Feb 2015 02:41:57 +0100 Subject: [PATCH 7/9] Add helper methods to get more readable tests --- .../k9/activity/MessageReferenceTest.java | 122 ++++++++++-------- 1 file changed, 65 insertions(+), 57 deletions(-) diff --git a/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java b/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java index de2ba2794..f5c353b08 100644 --- a/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java +++ b/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java @@ -19,47 +19,44 @@ public class MessageReferenceTest { @Test public void checkIdentityStringFromMessageReferenceWithoutFlag() { - MessageReference mr = new MessageReference(); - mr.accountUuid = "o hai!"; - mr.folderName = "folder"; - mr.uid = "10101010"; + MessageReference messageReference = createMessageReference("o hai!", "folder", "10101010"); - assertEquals("!:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA=", mr.toIdentityString()); + assertEquals("!:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA=", messageReference.toIdentityString()); } @Test public void checkIdentityStringFromMessageReferenceWithFlag() { - MessageReference mr = new MessageReference(); - mr.accountUuid = "o hai!"; - mr.folderName = "folder"; - mr.uid = "10101010"; - mr.flag = Flag.ANSWERED; + MessageReference messageReference = + createMessageReferenceWithFlag("o hai!", "folder", "10101010", Flag.ANSWERED); - assertEquals("!:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA=:ANSWERED", mr.toIdentityString()); + assertEquals("!:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA=:ANSWERED", messageReference.toIdentityString()); } @Test public void parseIdentityStringWithoutFlag() throws MessagingException { - MessageReference mr = new MessageReference("!:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA="); - assertEquals("o hai!", mr.accountUuid); - assertEquals("folder", mr.folderName); - assertEquals("10101010", mr.uid); - assertNull(mr.flag); + MessageReference messageReference = new MessageReference("!:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA="); + + assertEquals("o hai!", messageReference.accountUuid); + assertEquals("folder", messageReference.folderName); + assertEquals("10101010", messageReference.uid); + assertNull(messageReference.flag); } @Test public void parseIdentityStringWithFlag() throws MessagingException { - MessageReference mr = new MessageReference("!:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA=:ANSWERED"); - assertEquals("o hai!", mr.accountUuid); - assertEquals("folder", mr.folderName); - assertEquals("10101010", mr.uid); - assertEquals(Flag.ANSWERED, mr.flag); + MessageReference messageReference = new MessageReference("!:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA=:ANSWERED"); + + assertEquals("o hai!", messageReference.accountUuid); + assertEquals("folder", messageReference.folderName); + assertEquals("10101010", messageReference.uid); + assertEquals(Flag.ANSWERED, messageReference.flag); } @Test public void parseIdentityStringContainingBadVersionNumber() throws MessagingException { - MessageReference mr = new MessageReference("@:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA=:ANSWERED"); - assertNull(mr.accountUuid); + MessageReference messageReference = new MessageReference("@:byBoYWkh:Zm9sZGVy:MTAxMDEwMTA=:ANSWERED"); + + assertNull(messageReference.accountUuid); } @Test(expected = MessagingException.class) @@ -74,60 +71,71 @@ public class MessageReferenceTest { @Test public void equalsWithAnObjectShouldReturnFalse() { - MessageReference m = new MessageReference(); - Object o = new Object(); - assertFalse(m.equals(o)); + MessageReference messageReference = new MessageReference(); + Object object = new Object(); + + assertFalse(messageReference.equals(object)); } @Test public void equalsWithMessageReferenceContainingSameDataShouldReturnTrue() { - MessageReference m1 = new MessageReference(); - m1.accountUuid = "acc1"; - m1.folderName = "folder1"; - m1.uid = "uid1"; + MessageReference messageReferenceOne = createMessageReference("account", "folder", "uid"); + MessageReference messageReferenceTwo = createMessageReference("account", "folder", "uid"); - MessageReference m2 = new MessageReference(); - m2.accountUuid = "acc1"; - m2.folderName = "folder1"; - m2.uid = "uid1"; - - assertTrue(m1.equals(m2)); - assertTrue(m2.equals(m1)); + assertEqualsReturnsTrueSymmetrically(messageReferenceOne, messageReferenceTwo); } @Test public void equalsWithMessageReferenceContainingDifferentAccountUuidShouldReturnFalse() { - MessageReference m1 = new MessageReference(); - m1.accountUuid = "acc1"; + MessageReference messageReferenceOne = createMessageReference("account", "folder", "uid"); + MessageReference messageReferenceTwo = createMessageReference("-------", "folder", "uid"); - MessageReference m2 = new MessageReference(); - m2.accountUuid = "acc2"; - - assertFalse(m1.equals(m2)); - assertFalse(m2.equals(m1)); + assertEqualsReturnsFalseSymmetrically(messageReferenceOne, messageReferenceTwo); } @Test public void equalsWithMessageReferenceContainingDifferentFolderNameShouldReturnFalse() { - MessageReference m1 = new MessageReference(); - m1.folderName = "folder1"; + MessageReference messageReferenceOne = createMessageReference("account", "folder", "uid"); + MessageReference messageReferenceTwo = createMessageReference("account", "------", "uid"); - MessageReference m2 = new MessageReference(); - m2.folderName = "folder2"; - - assertFalse(m1.equals(m2)); - assertFalse(m2.equals(m1)); + assertEqualsReturnsFalseSymmetrically(messageReferenceOne, messageReferenceTwo); } @Test public void equalsWithMessageReferenceContainingDifferentUidShouldReturnFalse() { - MessageReference m1 = new MessageReference(); - m1.uid = "uid1"; + MessageReference messageReferenceOne = createMessageReference("account", "folder", "uid"); + MessageReference messageReferenceTwo = createMessageReference("account", "folder", "---"); - MessageReference m2 = new MessageReference(); - m2.uid = "uid2"; + assertEqualsReturnsFalseSymmetrically(messageReferenceOne, messageReferenceTwo); + } - assertFalse(m1.equals(m2)); - assertFalse(m2.equals(m1)); + private MessageReference createMessageReference(String accountUuid, String folderName, String uid) { + MessageReference messageReference = new MessageReference(); + messageReference.accountUuid = accountUuid; + messageReference.folderName = folderName; + messageReference.uid = uid; + + return messageReference; + } + + private MessageReference createMessageReferenceWithFlag(String accountUuid, String folderName, String uid, + Flag flag) { + MessageReference messageReference = new MessageReference(); + messageReference.accountUuid = accountUuid; + messageReference.folderName = folderName; + messageReference.uid = uid; + messageReference.flag = flag; + + return messageReference; + } + + private void assertEqualsReturnsTrueSymmetrically(MessageReference referenceOne, MessageReference referenceTwo) { + assertTrue(referenceOne.equals(referenceTwo)); + assertTrue(referenceTwo.equals(referenceOne)); + } + + private void assertEqualsReturnsFalseSymmetrically(MessageReference referenceOne, MessageReference referenceTwo) { + assertFalse(referenceOne.equals(referenceTwo)); + assertFalse(referenceTwo.equals(referenceOne)); } } From d443a6d4eb8d6315e517f8609d6f9521ff831c0c Mon Sep 17 00:00:00 2001 From: cketti Date: Mon, 23 Feb 2015 02:50:08 +0100 Subject: [PATCH 8/9] Add more tests --- .../fsck/k9/activity/MessageReferenceTest.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java b/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java index f5c353b08..1bc708e1e 100644 --- a/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java +++ b/k9mail/src/androidTest/java/com/fsck/k9/activity/MessageReferenceTest.java @@ -77,6 +77,21 @@ public class MessageReferenceTest { assertFalse(messageReference.equals(object)); } + @SuppressWarnings("ObjectEqualsNull") + @Test + public void equalsWithNullShouldReturnFalse() { + MessageReference messageReference = createMessageReference("account", "folder", "uid"); + + assertFalse(messageReference.equals(null)); + } + + @Test + public void equalsWithSameMessageReferenceShouldReturnTrue() { + MessageReference messageReference = createMessageReference("account", "folder", "uid"); + + assertTrue(messageReference.equals(messageReference)); + } + @Test public void equalsWithMessageReferenceContainingSameDataShouldReturnTrue() { MessageReference messageReferenceOne = createMessageReference("account", "folder", "uid"); From 737e0d2ac8bf55fe72af806380bd15042262c900 Mon Sep 17 00:00:00 2001 From: cketti Date: Mon, 23 Feb 2015 03:36:34 +0100 Subject: [PATCH 9/9] Minor code style fixes --- .../activity/setup/AccountSetupAccountType.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupAccountType.java b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupAccountType.java index 1366c2563..41d5ab552 100644 --- a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupAccountType.java +++ b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupAccountType.java @@ -23,11 +23,9 @@ import java.net.URISyntaxException; */ public class AccountSetupAccountType extends K9Activity implements OnClickListener { private static final String EXTRA_ACCOUNT = "account"; - private static final String EXTRA_MAKE_DEFAULT = "makeDefault"; private Account mAccount; - private boolean mMakeDefault; public static void actionSelectAccountType(Context context, Account account, boolean makeDefault) { @@ -52,11 +50,13 @@ public class AccountSetupAccountType extends K9Activity implements OnClickListen private void setupStoreAndSmtpTransport(String schemePrefix) throws URISyntaxException { URI storeUriForDecode = new URI(mAccount.getStoreUri()); - URI storeUri = new URI(schemePrefix, storeUriForDecode.getUserInfo(), storeUriForDecode.getHost(), storeUriForDecode.getPort(), null, null, null); + URI storeUri = new URI(schemePrefix, storeUriForDecode.getUserInfo(), storeUriForDecode.getHost(), + storeUriForDecode.getPort(), null, null, null); mAccount.setStoreUri(storeUri.toString()); URI transportUriForDecode = new URI(mAccount.getTransportUri()); - URI transportUri = new URI("smtp+tls+", transportUriForDecode.getUserInfo(), transportUriForDecode.getHost(), transportUriForDecode.getPort(), null, null, null); + URI transportUri = new URI("smtp+tls+", transportUriForDecode.getUserInfo(), transportUriForDecode.getHost(), + transportUriForDecode.getPort(), null, null, null); mAccount.setTransportUri(transportUri.toString()); } @@ -85,15 +85,18 @@ public class AccountSetupAccountType extends K9Activity implements OnClickListen public void onClick(View v) { try { switch (v.getId()) { - case R.id.pop: + case R.id.pop: { setupStoreAndSmtpTransport("pop3+ssl+"); break; - case R.id.imap: + } + case R.id.imap: { setupStoreAndSmtpTransport("imap+ssl+"); break; - case R.id.webdav: + } + case R.id.webdav: { setupDav(); break; + } } } catch (Exception ex) { failure(ex);