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