You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2017/12/15 07:15:12 UTC

[08/11] james-project git commit: JAMES-2257 Message update using old keywords reset DELETED and RECENT flag

JAMES-2257 Message update using old keywords reset DELETED and RECENT flag


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/43578898
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/43578898
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/43578898

Branch: refs/heads/master
Commit: 4357889865a96fed7ab449fda32587efdb123256
Parents: 2f5f9f8
Author: benwa <bt...@linagora.com>
Authored: Tue Dec 12 10:21:58 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Dec 15 14:03:32 2017 +0700

----------------------------------------------------------------------
 .../org/apache/james/jmap/model/OldKeyword.java |  9 ++++++
 .../apache/james/jmap/model/OldKeywordTest.java | 29 ++++++++++++++++++++
 2 files changed, 38 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/43578898/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/OldKeyword.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/OldKeyword.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/OldKeyword.java
index f205bb9..151a8f1 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/OldKeyword.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/OldKeyword.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.jmap.model;
 
+import java.util.Arrays;
 import java.util.Optional;
 
 import javax.mail.Flags;
@@ -160,6 +161,14 @@ public class OldKeyword {
         if (shouldMessageBeMarkSeen) {
             newStateFlags.add(Flags.Flag.SEEN);
         }
+        Arrays.stream(currentFlags.getUserFlags())
+            .forEach(newStateFlags::add);
+        if (currentFlags.contains(Flags.Flag.RECENT)) {
+            newStateFlags.add(Flags.Flag.RECENT);
+        }
+        if (currentFlags.contains(Flags.Flag.DELETED)) {
+            newStateFlags.add(Flags.Flag.DELETED);
+        }
         return newStateFlags;
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/43578898/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/OldKeywordTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/OldKeywordTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/OldKeywordTest.java
index 9b4d8b3..bcc079f 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/OldKeywordTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/OldKeywordTest.java
@@ -26,6 +26,7 @@ import java.util.Optional;
 import javax.mail.Flags;
 import javax.mail.Flags.Flag;
 
+import org.apache.james.mailbox.FlagsBuilder;
 import org.junit.Test;
 
 import nl.jqno.equalsverifier.EqualsVerifier;
@@ -242,4 +243,32 @@ public class OldKeywordTest {
 
         assertThat(testee.get().applyToState(new Flags(Flag.SEEN))).isEqualTo(new Flags(Flag.SEEN));
     }
+
+    @Test
+    public void applyStateShouldPreserveRecentFlag() {
+        Optional<OldKeyword> testee = OldKeyword.builder()
+            .isUnread(Optional.of(false))
+            .isFlagged(Optional.empty())
+            .isAnswered(Optional.empty())
+            .isDraft(Optional.empty())
+            .isForwarded(Optional.empty())
+            .computeOldKeyword();
+
+        assertThat(testee.get().applyToState(new Flags(Flag.RECENT)))
+            .isEqualTo(new FlagsBuilder().add(Flag.RECENT, Flag.SEEN).build());
+    }
+
+    @Test
+    public void applyStateShouldDeletedFlag() {
+        Optional<OldKeyword> testee = OldKeyword.builder()
+            .isUnread(Optional.of(false))
+            .isFlagged(Optional.empty())
+            .isAnswered(Optional.empty())
+            .isDraft(Optional.empty())
+            .isForwarded(Optional.empty())
+            .computeOldKeyword();
+
+        assertThat(testee.get().applyToState(new Flags(Flag.DELETED)))
+            .isEqualTo(new FlagsBuilder().add(Flag.DELETED, Flag.SEEN).build());
+    }
 }
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org