summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJames Lemieux <jplemieux@google.com>2014-01-10 13:45:15 -0800
committerJames Lemieux <jplemieux@google.com>2014-02-05 16:46:17 -0800
commit3b59b333ad0693f74f9a8cfb24a468a8acbaca8c (patch)
treedbeaa7cc50d73bd788eade08bb438689f8ba39d5 /tests
parent87c2f00ecf8f5755eb0fced359bdedcbde5ed4b8 (diff)
downloadandroid_packages_apps_UnifiedEmail-3b59b333ad0693f74f9a8cfb24a468a8acbaca8c.tar.gz
android_packages_apps_UnifiedEmail-3b59b333ad0693f74f9a8cfb24a468a8acbaca8c.tar.bz2
android_packages_apps_UnifiedEmail-3b59b333ad0693f74f9a8cfb24a468a8acbaca8c.zip
Mail in Sent, Drafts and Outbox should show addressees, not sender.
b/10847599 This is the second attempt at fixing this bug. The strategy has changed entirely to accommodate GMail as well as reuse formatting rules that squish the list of conversation participants into an abbreviated line for display in conversation lists. ConversationInfo used to include a List<MessageInfo> which was used to answer questions about which senders had read which messages in the thread. This has been removed and replaced with a List<ParticipantInfo>. The backend should populate that list with appropriate conversation participants (e.g. recipients of the last message in the case of Sent, Drafts or Outbox; senders for all other mailbox types) Change-Id: I834223c55296bcd2509fdf544634c155594739b0
Diffstat (limited to 'tests')
-rw-r--r--tests/src/com/android/mail/browse/SendersFormattingTests.java155
1 files changed, 69 insertions, 86 deletions
diff --git a/tests/src/com/android/mail/browse/SendersFormattingTests.java b/tests/src/com/android/mail/browse/SendersFormattingTests.java
index 2020c055b..4a072c3fa 100644
--- a/tests/src/com/android/mail/browse/SendersFormattingTests.java
+++ b/tests/src/com/android/mail/browse/SendersFormattingTests.java
@@ -22,111 +22,94 @@ import android.test.suitebuilder.annotation.SmallTest;
import android.text.SpannableString;
import com.android.mail.providers.ConversationInfo;
-import com.android.mail.providers.MessageInfo;
+import com.android.mail.providers.ParticipantInfo;
+import com.google.common.collect.Lists;
import java.util.ArrayList;
@SmallTest
public class SendersFormattingTests extends AndroidTestCase {
- private static ConversationInfo createConversationInfo(int count) {
- int draftCount = 5;
- String first = "snippet", firstUnread = first, last = first;
- return new ConversationInfo(count, draftCount, first, firstUnread, last);
+ private static ConversationInfo createConversationInfo() {
+ return new ConversationInfo(0, 5, "snippet", "snippet", "snippet");
}
- public void testMe() {
- // Blank sender == from "me"
- ConversationInfo conv = createConversationInfo(1);
- boolean read = false, starred = false;
- MessageInfo info = new MessageInfo(read, starred, null, -1, null);
- conv.addMessage(info);
- ArrayList<SpannableString> strings = new ArrayList<SpannableString>();
- ArrayList<String> emailDisplays = null;
- SendersView.format(getContext(), conv, "", 100, strings, emailDisplays, emailDisplays,
- null, false);
- assertEquals(1, strings.size());
- assertEquals(strings.get(0).toString(), "me");
-
- ConversationInfo conv2 = createConversationInfo(1);
- MessageInfo info2 = new MessageInfo(read, starred, "", -1, null);
- strings.clear();
- conv2.addMessage(info2);
- SendersView.format(getContext(), conv, "", 100, strings, emailDisplays, emailDisplays,
- null, false);
- assertEquals(1, strings.size());
- assertEquals(strings.get(0).toString(), "me");
-
- ConversationInfo conv3 = createConversationInfo(2);
- MessageInfo info3 = new MessageInfo(read, starred, "", -1, null);
- conv3.addMessage(info3);
- MessageInfo info4 = new MessageInfo(read, starred, "", -1, null);
- conv3.addMessage(info4);
- strings.clear();
- SendersView.format(getContext(), conv, "", 100, strings, emailDisplays, emailDisplays,
- null, false);
- assertEquals(1, strings.size());
- assertEquals(strings.get(0).toString(), "me");
- }
+ public void testMeFromNullName() {
+ final ConversationInfo conv = createConversationInfo();
+ conv.addParticipant(new ParticipantInfo(null, "something@somewhere.com", 0, false));
+ final ArrayList<SpannableString> strings = Lists.newArrayList();
+ assertEquals(0, strings.size());
- public void testDupes() {
- // Duplicate sender; should only return 1
- ArrayList<SpannableString> strings = new ArrayList<SpannableString>();
- ArrayList<String> emailDisplays = null;
- ConversationInfo conv = createConversationInfo(2);
- boolean read = false, starred = false;
- String sender = "sender@sender.com";
- MessageInfo info = new MessageInfo(read, starred, sender, -1, null);
- conv.addMessage(info);
- MessageInfo info2 = new MessageInfo(read, starred, sender, -1, null);
- conv.addMessage(info2);
- SendersView.format(getContext(), conv, "", 100, strings, emailDisplays, emailDisplays,
- null, false);
- // We actually don't remove the item, we just set it to null, so count
- // just the non-null items.
- int count = 0;
- for (int i = 0; i < strings.size(); i++) {
- if (strings.get(i) != null) {
- count++;
- assertEquals(strings.get(i).toString(), sender);
- }
- }
- assertEquals(1, count);
+ SendersView.format(getContext(), conv, "", 100, strings, null, null, null, false);
+ assertEquals(1, strings.size());
+ assertEquals("me", strings.get(0).toString());
}
- public void testSenderNameBadInput() {
- final ConversationInfo conv = createConversationInfo(1);
- final MessageInfo msg = new MessageInfo(false, false, "****^****", 0, null);
- conv.addMessage(msg);
+ public void testMeFromEmptyName() {
+ final ConversationInfo conv = createConversationInfo();
+ conv.addParticipant(new ParticipantInfo("", "something@somewhere.com", 0, false));
+ final ArrayList<SpannableString> strings = Lists.newArrayList();
+ assertEquals(0, strings.size());
- final byte[] serialized = conv.toBlob();
+ SendersView.format(getContext(), conv, "", 100, strings, null, null, null, false);
+ assertEquals(1, strings.size());
+ assertEquals("me", strings.get(0).toString());
+ }
- ConversationInfo conv2 = ConversationInfo.fromBlob(serialized);
- assertEquals(1, conv2.messageInfos.size());
- assertEquals(msg.sender, conv2.messageInfos.get(0).sender);
+ public void testMeFromDuplicateEmptyNames() {
+ final ConversationInfo conv = createConversationInfo();
+ conv.addParticipant(new ParticipantInfo("", "something@somewhere.com", 0, false));
+ conv.addParticipant(new ParticipantInfo("", "something@somewhere.com", 0, false));
+ final ArrayList<SpannableString> strings = Lists.newArrayList();
+ assertEquals(0, strings.size());
+
+ SendersView.format(getContext(), conv, "", 100, strings, null, null, null, false);
+ assertEquals(2, strings.size());
+ assertNull(strings.get(0));
+ assertEquals("me", strings.get(1).toString());
}
- public void testConversationSnippetsBadInput() {
- final String firstSnippet = "*^*";
- final String firstUnreadSnippet = "*^*^*";
- final String lastSnippet = "*^*^*^*";
+ public void testDuplicates() {
+ final ConversationInfo conv = createConversationInfo();
+ conv.addParticipant(new ParticipantInfo("Something", "something@somewhere.com", 0, false));
+ conv.addParticipant(new ParticipantInfo("Something", "something@somewhere.com", 0, false));
- final ConversationInfo conv = new ConversationInfo(42, 49, firstSnippet,
- firstUnreadSnippet, lastSnippet);
- final MessageInfo msg = new MessageInfo(false, false, "Foo Bar", 0, null);
- conv.addMessage(msg);
+ final ArrayList<SpannableString> strings = Lists.newArrayList();
+ assertEquals(0, strings.size());
- assertEquals(firstSnippet, conv.firstSnippet);
- assertEquals(firstUnreadSnippet, conv.firstUnreadSnippet);
- assertEquals(lastSnippet, conv.lastSnippet);
+ SendersView.format(getContext(), conv, "", 100, strings, null, null, null, false);
+ assertEquals(2, strings.size());
+ assertNull(strings.get(0));
+ assertEquals("Something", strings.get(1).toString());
+ }
- final byte[] serialized = conv.toBlob();
+ public void testSenderNameBadInput() {
+ final ConversationInfo before = createConversationInfo();
+ before.addParticipant(new ParticipantInfo("****^****", null, 0, false));
- ConversationInfo conv2 = ConversationInfo.fromBlob(serialized);
+ final byte[] serialized = before.toBlob();
- assertEquals(conv.firstSnippet, conv2.firstSnippet);
- assertEquals(conv.firstUnreadSnippet, conv2.firstUnreadSnippet);
- assertEquals(conv.lastSnippet, conv2.lastSnippet);
+ final ConversationInfo after = ConversationInfo.fromBlob(serialized);
+ assertEquals(1, after.participantInfos.size());
+ assertEquals(before.participantInfos.get(0).name, after.participantInfos.get(0).name);
}
-}
+ public void testConversationSnippetsBadInput() {
+ final String first = "*^*";
+ final String firstUnread = "*^*^*";
+ final String last = "*^*^*^*";
+
+ final ConversationInfo before = new ConversationInfo(42, 49, first, firstUnread, last);
+ before.addParticipant(new ParticipantInfo("Foo Bar", "foo@bar.com", 0, false));
+ assertEquals(first, before.firstSnippet);
+ assertEquals(firstUnread, before.firstUnreadSnippet);
+ assertEquals(last, before.lastSnippet);
+
+ final byte[] serialized = before.toBlob();
+
+ final ConversationInfo after = ConversationInfo.fromBlob(serialized);
+ assertEquals(before.firstSnippet, after.firstSnippet);
+ assertEquals(before.firstUnreadSnippet, after.firstUnreadSnippet);
+ assertEquals(before.lastSnippet, after.lastSnippet);
+ }
+} \ No newline at end of file