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 ad...@apache.org on 2017/11/14 09:04:51 UTC
[1/5] james-project git commit: JAMES-2213 isForwarded getMessages
integration test
Repository: james-project
Updated Branches:
refs/heads/master 3aa1732b3 -> 5ceee7866
JAMES-2213 isForwarded getMessages integration test
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/5ceee786
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/5ceee786
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/5ceee786
Branch: refs/heads/master
Commit: 5ceee7866af13c6d9d36dc0c86f1d8052274279b
Parents: 39e9e3e
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Mon Nov 13 17:54:25 2017 +0100
Committer: quynhn <qn...@linagora.com>
Committed: Tue Nov 14 10:27:40 2017 +0700
----------------------------------------------------------------------
.../cucumber/GetMessagesMethodStepdefs.java | 5 +++++
.../src/test/resources/cucumber/GetMessages.feature | 14 ++++++++++++++
2 files changed, 19 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/5ceee786/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMessagesMethodStepdefs.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMessagesMethodStepdefs.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMessagesMethodStepdefs.java
index 5000ac4..9d353f6 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMessagesMethodStepdefs.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMessagesMethodStepdefs.java
@@ -639,6 +639,11 @@ public class GetMessagesMethodStepdefs {
assertThat(httpClient.jsonPath.<Boolean>read(FIRST_MESSAGE + ".hasAttachment")).isEqualTo(Boolean.valueOf(hasAttachment));
}
+ @Then("^the isForwarded property of the message is \"([^\"]*)\"$")
+ public void assertIsForwardedOfTheFirstMessage(String isForwarded) throws Exception {
+ assertThat(httpClient.jsonPath.<Boolean>read(FIRST_MESSAGE + ".isForwarded")).isEqualTo(Boolean.valueOf(isForwarded));
+ }
+
@Then("^the list of attachments of the message is empty$")
public void assertAttachmentsOfTheFirstMessageIsEmpty() throws Exception {
assertThat(httpClient.jsonPath.<List<Object>>read(ATTACHMENTS)).isEmpty();
http://git-wip-us.apache.org/repos/asf/james-project/blob/5ceee786/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/GetMessages.feature
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/GetMessages.feature b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/GetMessages.feature
index e786976..f0f8418 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/GetMessages.feature
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/GetMessages.feature
@@ -406,3 +406,17 @@ Feature: GetMessages method
Examples:
|flags |keyword |
|"$Flagged,$Forwarded" |$Forwarded,$Flagged |
+
+ Scenario: Retrieving message should include true isForwarded property when set
+ Given "alice@domain.tld" has a message "m1" in the "inbox" mailbox with flags "$Forwarded"
+ When "alice@domain.tld" ask for messages "m1"
+ Then no error is returned
+ And the list should contain 1 message
+ And the isForwarded property of the message is "true"
+
+ Scenario: Retrieving message should include false isForwarded property when not set
+ Given "alice@domain.tld" has a message "m1" in the "inbox" mailbox with flags "$Answered"
+ When "alice@domain.tld" ask for messages "m1"
+ Then no error is returned
+ And the list should contain 1 message
+ And the isForwarded property of the message is "false"
\ 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
[3/5] james-project git commit: JAMES-2213 OldKeyword will support
isForwarded now and - Converting from Keyword to OldKeyword - Add needed unit
testing
Posted by ad...@apache.org.
JAMES-2213 OldKeyword will support isForwarded now and
- Converting from Keyword to OldKeyword
- Add needed unit testing
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b1e43fca
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b1e43fca
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b1e43fca
Branch: refs/heads/master
Commit: b1e43fca9e419630ce2b9125618c1c52632c5db4
Parents: 3aa1732
Author: quynhn <qn...@linagora.com>
Authored: Mon Nov 13 10:53:14 2017 +0700
Committer: quynhn <qn...@linagora.com>
Committed: Tue Nov 14 10:27:40 2017 +0700
----------------------------------------------------------------------
.../james/jmap/model/CreationMessage.java | 11 ++++-
.../org/apache/james/jmap/model/Keyword.java | 1 +
.../org/apache/james/jmap/model/Keywords.java | 3 ++
.../org/apache/james/jmap/model/OldKeyword.java | 18 ++++++--
.../james/jmap/model/UpdateMessagePatch.java | 11 ++++-
.../apache/james/jmap/model/KeywordsTest.java | 48 +++++++++++++++-----
6 files changed, 72 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/b1e43fca/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/CreationMessage.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/CreationMessage.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/CreationMessage.java
index f67185d..8bcbe4b 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/CreationMessage.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/CreationMessage.java
@@ -27,6 +27,7 @@ import java.util.Objects;
import java.util.Optional;
import java.util.function.Predicate;
import java.util.stream.Collectors;
+
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
@@ -62,6 +63,7 @@ public class CreationMessage {
private Optional<Boolean> isFlagged = Optional.empty();
private Optional<Boolean> isAnswered = Optional.empty();
private Optional<Boolean> isDraft = Optional.empty();
+ private Optional<Boolean> isForwarded = Optional.empty();
private final ImmutableMap.Builder<String, String> headers;
private Optional<DraftEmailer> from = Optional.empty();
private final ImmutableList.Builder<DraftEmailer> to;
@@ -121,6 +123,11 @@ public class CreationMessage {
return this;
}
+ public Builder isForwarded(Optional<Boolean> isForwarded) {
+ this.isForwarded = isForwarded;
+ return this;
+ }
+
public Builder headers(ImmutableMap<String, String> headers) {
this.headers.putAll(headers);
return this;
@@ -225,8 +232,8 @@ public class CreationMessage {
}
private Optional<OldKeyword> getOldKeywords() {
- if (isAnswered.isPresent() || isFlagged.isPresent() || isUnread.isPresent() || isDraft.isPresent()) {
- return Optional.of(new OldKeyword(isUnread, isFlagged, isAnswered, isDraft));
+ if (isAnswered.isPresent() || isFlagged.isPresent() || isUnread.isPresent() || isDraft.isPresent() || isForwarded.isPresent()) {
+ return Optional.of(new OldKeyword(isUnread, isFlagged, isAnswered, isDraft, isForwarded));
}
return Optional.empty();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b1e43fca/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Keyword.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Keyword.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Keyword.java
index 72918d0..ca18d2b 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Keyword.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Keyword.java
@@ -46,6 +46,7 @@ public class Keyword {
public final static Keyword ANSWERED = new Keyword("$Answered");
public final static Keyword DELETED = new Keyword("$Deleted");
public final static Keyword RECENT = new Keyword("$Recent");
+ public final static Keyword FORWARDED = new Keyword("$Forwarded");
public final static Boolean FLAG_VALUE = true;
private final static ImmutableList<Keyword> NON_EXPOSED_IMAP_KEYWORDS = ImmutableList.of(Keyword.RECENT, Keyword.DELETED);
http://git-wip-us.apache.org/repos/asf/james-project/blob/b1e43fca/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Keywords.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Keywords.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Keywords.java
index c410cf9..286468f 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Keywords.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Keywords.java
@@ -126,6 +126,9 @@ public class Keywords {
if (oldKeyword.isUnread().isPresent() && oldKeyword.isUnread().get() == false) {
builder.add(Keyword.SEEN);
}
+ if (oldKeyword.isForwarded().orElse(false)) {
+ builder.add(Keyword.FORWARDED);
+ }
return fromSet(builder.build());
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b1e43fca/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 e2cb2b3..207b275 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
@@ -30,20 +30,24 @@ public class OldKeyword {
private final Optional<Boolean> isFlagged;
private final Optional<Boolean> isAnswered;
private final Optional<Boolean> isDraft;
+ private final Optional<Boolean> isForwarded;
@VisibleForTesting
- OldKeyword(boolean isUnread, boolean isFlagged, boolean isAnswered, boolean isDraft) {
+ OldKeyword(boolean isUnread, boolean isFlagged, boolean isAnswered, boolean isDraft, boolean isForwarded) {
this.isUnread = Optional.of(isUnread);
this.isFlagged = Optional.of(isFlagged);
this.isAnswered = Optional.of(isAnswered);
this.isDraft = Optional.of(isDraft);
+ this.isForwarded = Optional.of(isForwarded);
}
- public OldKeyword(Optional<Boolean> isUnread, Optional<Boolean> isFlagged, Optional<Boolean> isAnswered, Optional<Boolean> isDraft) {
+ public OldKeyword(Optional<Boolean> isUnread, Optional<Boolean> isFlagged, Optional<Boolean> isAnswered,
+ Optional<Boolean> isDraft, Optional<Boolean> isForwarded) {
this.isUnread = isUnread;
this.isFlagged = isFlagged;
this.isAnswered = isAnswered;
this.isDraft = isDraft;
+ this.isForwarded = isForwarded;
}
public Optional<Boolean> isUnread() {
@@ -62,6 +66,10 @@ public class OldKeyword {
return isDraft;
}
+ public Optional<Boolean> isForwarded() {
+ return isForwarded;
+ }
+
@Override
public final boolean equals(Object other) {
if (other instanceof OldKeyword) {
@@ -69,14 +77,15 @@ public class OldKeyword {
return Objects.equal(isUnread, oldKeyword.isUnread)
&& Objects.equal(isFlagged, oldKeyword.isFlagged)
&& Objects.equal(isAnswered, oldKeyword.isAnswered)
- && Objects.equal(isDraft, oldKeyword.isDraft);
+ && Objects.equal(isDraft, oldKeyword.isDraft)
+ && Objects.equal(isForwarded, oldKeyword.isForwarded);
}
return false;
}
@Override
public final int hashCode() {
- return Objects.hashCode(isUnread, isFlagged, isAnswered, isDraft);
+ return Objects.hashCode(isUnread, isFlagged, isAnswered, isDraft, isForwarded);
}
@Override
@@ -86,6 +95,7 @@ public class OldKeyword {
.add("isFlagged", isFlagged)
.add("isAnswered", isAnswered)
.add("isDraft", isDraft)
+ .add("isForwarded", isForwarded)
.toString();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b1e43fca/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/UpdateMessagePatch.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/UpdateMessagePatch.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/UpdateMessagePatch.java
index 6a46bf8..49a2ac8 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/UpdateMessagePatch.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/UpdateMessagePatch.java
@@ -23,6 +23,7 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
+
import javax.mail.Flags;
import org.apache.james.jmap.methods.ValidationResult;
@@ -48,6 +49,7 @@ public class UpdateMessagePatch {
private Optional<Boolean> isFlagged = Optional.empty();
private Optional<Boolean> isUnread = Optional.empty();
private Optional<Boolean> isAnswered = Optional.empty();
+ private Optional<Boolean> isForwarded = Optional.empty();
private Optional<Map<String, Boolean>> keywords = Optional.empty();
private Set<ValidationResult> validationResult = Sets.newHashSet();
@@ -76,6 +78,11 @@ public class UpdateMessagePatch {
return this;
}
+ public Builder isForwarded(Boolean isForwarded) {
+ this.isForwarded = Optional.of(isForwarded);
+ return this;
+ }
+
public Builder validationResult(Set<ValidationResult> validationResult) {
this.validationResult.addAll(validationResult);
return this;
@@ -97,9 +104,9 @@ public class UpdateMessagePatch {
}
private Optional<OldKeyword> getOldKeywords() {
- if (isAnswered.isPresent() || isFlagged.isPresent() || isUnread.isPresent()) {
+ if (isAnswered.isPresent() || isFlagged.isPresent() || isUnread.isPresent() || isForwarded.isPresent()) {
Optional<Boolean> isDraft = Optional.empty();
- return Optional.of(new OldKeyword(isUnread, isFlagged, isAnswered, isDraft));
+ return Optional.of(new OldKeyword(isUnread, isFlagged, isAnswered, isDraft, isForwarded));
}
return Optional.empty();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b1e43fca/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/KeywordsTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/KeywordsTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/KeywordsTest.java
index e992c59..5fa1d56 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/KeywordsTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/KeywordsTest.java
@@ -20,21 +20,23 @@
package org.apache.james.jmap.model;
import static org.assertj.core.api.Assertions.assertThat;
+
import java.util.Map;
import java.util.Optional;
+
import javax.mail.Flags;
import javax.mail.Flags.Flag;
import org.apache.james.mailbox.FlagsBuilder;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import nl.jqno.equalsverifier.EqualsVerifier;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
public class KeywordsTest {
public static final String ANY_KEYWORD = "AnyKeyword";
@@ -87,21 +89,37 @@ public class KeywordsTest {
Optional<Boolean> isUnread = Optional.empty();
Optional<Boolean> isFlagged = Optional.empty();
Optional<Boolean> isDraft = Optional.empty();
+ Optional<Boolean> isForwarded = Optional.empty();
Keywords keywords = Keywords.factory()
- .fromOldKeyword(new OldKeyword(isUnread, isFlagged, isAnswered, isDraft));
+ .fromOldKeyword(new OldKeyword(isUnread, isFlagged, isAnswered, isDraft, isForwarded));
assertThat(keywords.getKeywords())
.containsOnly(Keyword.ANSWERED);
}
@Test
+ public void fromOldKeywordsShouldReturnKeywordsFromIsForwarded() throws Exception {
+ Optional<Boolean> isAnswered = Optional.empty();
+ Optional<Boolean> isUnread = Optional.empty();
+ Optional<Boolean> isFlagged = Optional.empty();
+ Optional<Boolean> isDraft = Optional.empty();
+ Optional<Boolean> isForwarded = Optional.of(true);
+ Keywords keywords = Keywords.factory()
+ .fromOldKeyword(new OldKeyword(isUnread, isFlagged, isAnswered, isDraft, isForwarded));
+
+ assertThat(keywords.getKeywords())
+ .containsOnly(Keyword.FORWARDED);
+ }
+
+ @Test
public void fromOldKeywordsShouldReturnKeywordsFromIsDraft() throws Exception {
Optional<Boolean> isAnswered = Optional.empty();
Optional<Boolean> isUnread = Optional.empty();
Optional<Boolean> isFlagged = Optional.empty();
Optional<Boolean> isDraft = Optional.of(true);
+ Optional<Boolean> isForwarded = Optional.empty();
Keywords keywords = Keywords.factory()
- .fromOldKeyword(new OldKeyword(isUnread, isFlagged, isAnswered, isDraft));
+ .fromOldKeyword(new OldKeyword(isUnread, isFlagged, isAnswered, isDraft, isForwarded));
assertThat(keywords.getKeywords())
.containsOnly(Keyword.DRAFT);
@@ -113,8 +131,9 @@ public class KeywordsTest {
Optional<Boolean> isUnread = Optional.empty();
Optional<Boolean> isFlagged = Optional.of(true);
Optional<Boolean> isDraft = Optional.empty();
+ Optional<Boolean> isForwarded = Optional.empty();
Keywords keywords = Keywords.factory()
- .fromOldKeyword(new OldKeyword(isUnread, isFlagged, isAnswered, isDraft));
+ .fromOldKeyword(new OldKeyword(isUnread, isFlagged, isAnswered, isDraft, isForwarded));
assertThat(keywords.getKeywords())
.containsOnly(Keyword.FLAGGED);
@@ -126,8 +145,9 @@ public class KeywordsTest {
Optional<Boolean> isUnread = Optional.of(false);
Optional<Boolean> isFlagged = Optional.empty();
Optional<Boolean> isDraft = Optional.empty();
+ Optional<Boolean> isForwarded = Optional.empty();
Keywords keywords = Keywords.factory()
- .fromOldKeyword(new OldKeyword(isUnread, isFlagged, isAnswered, isDraft));
+ .fromOldKeyword(new OldKeyword(isUnread, isFlagged, isAnswered, isDraft, isForwarded));
assertThat(keywords.getKeywords())
.containsOnly(Keyword.SEEN);
@@ -139,8 +159,9 @@ public class KeywordsTest {
Optional<Boolean> isUnread = Optional.of(true);
Optional<Boolean> isFlagged = Optional.of(true);
Optional<Boolean> isDraft = Optional.of(true);
+ Optional<Boolean> isForwarded = Optional.empty();
Keywords keywords = Keywords.factory()
- .fromOldKeyword(new OldKeyword(isUnread, isFlagged, isAnswered, isDraft));
+ .fromOldKeyword(new OldKeyword(isUnread, isFlagged, isAnswered, isDraft, isForwarded));
assertThat(keywords.getKeywords())
.containsOnly(Keyword.ANSWERED, Keyword.DRAFT, Keyword.FLAGGED);
@@ -166,8 +187,9 @@ public class KeywordsTest {
Optional<Boolean> isUnread = Optional.of(true);
Optional<Boolean> isFlagged = Optional.of(true);
Optional<Boolean> isDraft = Optional.of(true);
+ Optional<Boolean> isForwarded = Optional.of(true);
- OldKeyword oldKeyword = new OldKeyword(isUnread, isFlagged, isAnswered, isDraft);
+ OldKeyword oldKeyword = new OldKeyword(isUnread, isFlagged, isAnswered, isDraft, isForwarded);
assertThat(Keywords.factory()
.fromMapOrOldKeyword(Optional.empty(), Optional.of(oldKeyword)))
@@ -181,8 +203,9 @@ public class KeywordsTest {
Optional<Boolean> isUnread = Optional.of(true);
Optional<Boolean> isFlagged = Optional.of(true);
Optional<Boolean> isDraft = Optional.of(true);
+ Optional<Boolean> isForwarded = Optional.of(true);
- OldKeyword oldKeyword = new OldKeyword(isUnread, isFlagged, isAnswered, isDraft);
+ OldKeyword oldKeyword = new OldKeyword(isUnread, isFlagged, isAnswered, isDraft, isForwarded);
Keywords.factory()
.fromMapOrOldKeyword(Optional.of(ImmutableMap.of()), Optional.of(oldKeyword));
@@ -205,14 +228,15 @@ public class KeywordsTest {
Optional<Boolean> isUnread = Optional.of(true);
Optional<Boolean> isFlagged = Optional.of(true);
Optional<Boolean> isDraft = Optional.of(true);
+ Optional<Boolean> isForwarded = Optional.of(true);
- OldKeyword oldKeyword = new OldKeyword(isUnread, isFlagged, isAnswered, isDraft);
+ OldKeyword oldKeyword = new OldKeyword(isUnread, isFlagged, isAnswered, isDraft, isForwarded);
Keywords keywords = Keywords.factory()
.fromMapOrOldKeyword(Optional.empty(), Optional.of(oldKeyword))
.get();
assertThat(keywords.getKeywords())
- .containsOnly(Keyword.ANSWERED, Keyword.DRAFT, Keyword.FLAGGED);
+ .containsOnly(Keyword.ANSWERED, Keyword.DRAFT, Keyword.FLAGGED, Keyword.FORWARDED);
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[5/5] james-project git commit: JAMES-2213 GetMessageList should
support filtering by isForwarded
Posted by ad...@apache.org.
JAMES-2213 GetMessageList should support filtering by isForwarded
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/a345a328
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/a345a328
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/a345a328
Branch: refs/heads/master
Commit: a345a328c83d838a2f0e7ba5d1d4fc091f5ef0c7
Parents: b1e43fc
Author: quynhn <qn...@linagora.com>
Authored: Mon Nov 13 11:34:05 2017 +0700
Committer: quynhn <qn...@linagora.com>
Committed: Tue Nov 14 10:27:40 2017 +0700
----------------------------------------------------------------------
.../integration/GetMessageListMethodTest.java | 50 +++++++++++++++++++-
.../james/jmap/model/FilterCondition.java | 22 +++++++--
.../james/jmap/utils/FilterToSearchQuery.java | 2 +
.../james/jmap/model/FilterConditionTest.java | 4 +-
4 files changed, 73 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/a345a328/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/GetMessageListMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/GetMessageListMethodTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/GetMessageListMethodTest.java
index e9b1ea4..9423e41 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/GetMessageListMethodTest.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/GetMessageListMethodTest.java
@@ -396,7 +396,55 @@ public abstract class GetMessageListMethodTest {
containsInAnyOrder(messageNotAnswered.getMessageId().serialize()),
not(containsInAnyOrder(messageAnswered.getMessageId().serialize()))));
}
-
+
+ @Test
+ public void getMessageListSetForwardedFilterShouldReturnOnlyForwardedMessages() throws Exception {
+ mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, alice, "mailbox");
+
+ ComposedMessageId messageNotForwarded = mailboxProbe.appendMessage(alice, MailboxPath.forUser(alice, "mailbox"),
+ new ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()), new Date(), false, new Flags());
+ ComposedMessageId messageForwarded = mailboxProbe.appendMessage(alice, MailboxPath.forUser(alice, "mailbox"),
+ ClassLoader.getSystemResourceAsStream("eml/twoAttachments.eml"), new Date(), false, new Flags(FORWARDED));
+
+ await();
+
+ given()
+ .header("Authorization", aliceAccessToken.serialize())
+ .body("[[\"getMessageList\", {\"filter\":{\"isForwarded\":\"true\"}}, \"#0\"]]")
+ .when()
+ .post("/jmap")
+ .then()
+ .statusCode(200)
+ .body(NAME, equalTo("messageList"))
+ .body(ARGUMENTS + ".messageIds", allOf(
+ containsInAnyOrder(messageForwarded.getMessageId().serialize()),
+ not(containsInAnyOrder(messageNotForwarded.getMessageId().serialize()))));
+ }
+
+ @Test
+ public void getMessageListUnsetForwardedFilterShouldReturnOnlyNotForwardedMessages() throws Exception {
+ mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, alice, "mailbox");
+
+ ComposedMessageId messageNotForwarded = mailboxProbe.appendMessage(alice, MailboxPath.forUser(alice, "mailbox"),
+ new ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()), new Date(), false, new Flags());
+ ComposedMessageId messageForwarded = mailboxProbe.appendMessage(alice, MailboxPath.forUser(alice, "mailbox"),
+ ClassLoader.getSystemResourceAsStream("eml/twoAttachments.eml"), new Date(), false, new Flags(FORWARDED));
+
+ await();
+
+ given()
+ .header("Authorization", aliceAccessToken.serialize())
+ .body("[[\"getMessageList\", {\"filter\":{\"isForwarded\":\"false\"}}, \"#0\"]]")
+ .when()
+ .post("/jmap")
+ .then()
+ .statusCode(200)
+ .body(NAME, equalTo("messageList"))
+ .body(ARGUMENTS + ".messageIds", allOf(
+ containsInAnyOrder(messageNotForwarded.getMessageId().serialize()),
+ not(containsInAnyOrder(messageForwarded.getMessageId().serialize()))));
+ }
+
@Test
public void getMessageListANDOperatorShouldReturnMessagesWhichMatchAllConditions() throws Exception {
mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, alice, "mailbox");
http://git-wip-us.apache.org/repos/asf/james-project/blob/a345a328/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/FilterCondition.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/FilterCondition.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/FilterCondition.java
index 0dd14a1..f1e94ce 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/FilterCondition.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/FilterCondition.java
@@ -51,6 +51,7 @@ public class FilterCondition implements Filter {
private Boolean isFlagged;
private Boolean isUnread;
private Boolean isAnswered;
+ private Boolean isForwarded;
private Boolean isDraft;
private Boolean hasAttachment;
private String text;
@@ -146,6 +147,11 @@ public class FilterCondition implements Filter {
return this;
}
+ public Builder isForwarded(boolean isForwarded) {
+ this.isForwarded = isForwarded;
+ return this;
+ }
+
public Builder hasAttachment(boolean hasAttachment) {
this.hasAttachment = hasAttachment;
return this;
@@ -200,7 +206,8 @@ public class FilterCondition implements Filter {
Preconditions.checkArgument(!hasKeyword.isPresent() || (new Keyword(hasKeyword.get()) != null), "hasKeyword is not valid");
Preconditions.checkArgument(!notKeyword.isPresent() || (new Keyword(notKeyword.get()) != null), "notKeyword is not valid");
return new FilterCondition(inMailboxes, notInMailboxes, Optional.ofNullable(before), Optional.ofNullable(after), Optional.ofNullable(minSize), Optional.ofNullable(maxSize),
- Optional.ofNullable(isFlagged), Optional.ofNullable(isUnread), Optional.ofNullable(isAnswered), Optional.ofNullable(isDraft), Optional.ofNullable(hasAttachment),
+ Optional.ofNullable(isFlagged), Optional.ofNullable(isUnread), Optional.ofNullable(isAnswered), Optional.ofNullable(isDraft), Optional.ofNullable(isForwarded),
+ Optional.ofNullable(hasAttachment),
Optional.ofNullable(text), Optional.ofNullable(from), Optional.ofNullable(to), Optional.ofNullable(cc), Optional.ofNullable(bcc), Optional.ofNullable(subject),
Optional.ofNullable(body), Optional.ofNullable(attachments), Optional.ofNullable(header), hasKeyword, notKeyword);
}
@@ -216,6 +223,7 @@ public class FilterCondition implements Filter {
private final Optional<Boolean> isUnread;
private final Optional<Boolean> isAnswered;
private final Optional<Boolean> isDraft;
+ private final Optional<Boolean> isForwarded;
private final Optional<Boolean> hasAttachment;
private final Optional<String> text;
private final Optional<String> from;
@@ -230,7 +238,8 @@ public class FilterCondition implements Filter {
private final Optional<String> notKeyword;
@VisibleForTesting FilterCondition(Optional<List<String>> inMailboxes, Optional<List<String>> notInMailboxes, Optional<ZonedDateTime> before, Optional<ZonedDateTime> after, Optional<Integer> minSize, Optional<Integer> maxSize,
- Optional<Boolean> isFlagged, Optional<Boolean> isUnread, Optional<Boolean> isAnswered, Optional<Boolean> isDraft, Optional<Boolean> hasAttachment,
+ Optional<Boolean> isFlagged, Optional<Boolean> isUnread, Optional<Boolean> isAnswered, Optional<Boolean> isDraft, Optional<Boolean> isForwarded,
+ Optional<Boolean> hasAttachment,
Optional<String> text, Optional<String> from, Optional<String> to, Optional<String> cc, Optional<String> bcc, Optional<String> subject,
Optional<String> body, Optional<String> attachments, Optional<Header> header, Optional<String> hasKeyword, Optional<String> notKeyword) {
@@ -244,6 +253,7 @@ public class FilterCondition implements Filter {
this.isUnread = isUnread;
this.isAnswered = isAnswered;
this.isDraft = isDraft;
+ this.isForwarded = isForwarded;
this.hasAttachment = hasAttachment;
this.text = text;
this.from = from;
@@ -298,6 +308,10 @@ public class FilterCondition implements Filter {
return isDraft;
}
+ public Optional<Boolean> getIsForwarded() {
+ return isForwarded;
+ }
+
public Optional<Boolean> getHasAttachment() {
return hasAttachment;
}
@@ -360,6 +374,7 @@ public class FilterCondition implements Filter {
&& Objects.equals(this.isUnread, other.isUnread)
&& Objects.equals(this.isAnswered, other.isAnswered)
&& Objects.equals(this.isDraft, other.isDraft)
+ && Objects.equals(this.isForwarded, other.isForwarded)
&& Objects.equals(this.hasAttachment, other.hasAttachment)
&& Objects.equals(this.text, other.text)
&& Objects.equals(this.from, other.from)
@@ -378,7 +393,7 @@ public class FilterCondition implements Filter {
@Override
public final int hashCode() {
- return Objects.hash(inMailboxes, notInMailboxes, before, after, minSize, maxSize, isFlagged, isUnread, isAnswered, isDraft, hasAttachment,
+ return Objects.hash(inMailboxes, notInMailboxes, before, after, minSize, maxSize, isFlagged, isUnread, isAnswered, isDraft, isForwarded, hasAttachment,
text, from, to, cc, bcc, subject, body, attachments, header, hasKeyword, notKeyword);
}
@@ -395,6 +410,7 @@ public class FilterCondition implements Filter {
isUnread.ifPresent(x -> helper.add("isUnread", x));
isAnswered.ifPresent(x -> helper.add("isAnswered", x));
isDraft.ifPresent(x -> helper.add("isDraft", x));
+ isForwarded.ifPresent(x -> helper.add("isForwarded", x));
hasAttachment.ifPresent(x -> helper.add("hasAttachment", x));
text.ifPresent(x -> helper.add("text", x));
from.ifPresent(x -> helper.add("from", x));
http://git-wip-us.apache.org/repos/asf/james-project/blob/a345a328/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/FilterToSearchQuery.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/FilterToSearchQuery.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/FilterToSearchQuery.java
index d364b59..e0b9cc6 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/FilterToSearchQuery.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/FilterToSearchQuery.java
@@ -28,6 +28,7 @@ import org.apache.james.jmap.model.Filter;
import org.apache.james.jmap.model.FilterCondition;
import org.apache.james.jmap.model.FilterOperator;
import org.apache.james.jmap.model.Keyword;
+import org.apache.james.jmap.model.Keywords;
import org.apache.james.mailbox.model.SearchQuery;
import org.apache.james.mailbox.model.SearchQuery.AddressType;
import org.apache.james.mailbox.model.SearchQuery.Criterion;
@@ -76,6 +77,7 @@ public class FilterToSearchQuery {
filter.getIsDraft().ifPresent(isDraft -> searchQuery.andCriteria(SearchQuery.flag(Flag.DRAFT, isDraft)));
filter.getIsFlagged().ifPresent(isFlagged -> searchQuery.andCriteria(SearchQuery.flag(Flag.FLAGGED, isFlagged)));
filter.getIsUnread().ifPresent(isUnread -> searchQuery.andCriteria(SearchQuery.flag(Flag.SEEN, !isUnread)));
+ filter.getIsForwarded().ifPresent(isForwarded -> searchQuery.andCriteria(SearchQuery.flagSet(Keyword.FORWARDED.getFlagName(), isForwarded)));
filter.getMaxSize().ifPresent(maxSize -> searchQuery.andCriteria(SearchQuery.sizeLessThan(maxSize)));
filter.getMinSize().ifPresent(minSize -> searchQuery.andCriteria(SearchQuery.sizeGreaterThan(minSize)));
filter.getHasAttachment().ifPresent(hasAttachment -> searchQuery.andCriteria(SearchQuery.hasAttachment(hasAttachment)));
http://git-wip-us.apache.org/repos/asf/james-project/blob/a345a328/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/FilterConditionTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/FilterConditionTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/FilterConditionTest.java
index 828c94a..8cac964 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/FilterConditionTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/FilterConditionTest.java
@@ -85,6 +85,7 @@ public class FilterConditionTest {
boolean isUnread = true;
boolean isAnswered = true;
boolean isDraft = true;
+ boolean isForwarded = true;
boolean hasAttachment = true;
String text = "text";
String from = "sender@james.org";
@@ -99,7 +100,7 @@ public class FilterConditionTest {
Optional<String> notKeyword = Optional.of("$Flagged");
FilterCondition expectedFilterCondition = new FilterCondition(Optional.of(ImmutableList.of("1")), Optional.of(ImmutableList.of("2")), Optional.of(before), Optional.of(after), Optional.of(minSize), Optional.of(maxSize),
- Optional.of(isFlagged), Optional.of(isUnread), Optional.of(isAnswered), Optional.of(isDraft), Optional.of(hasAttachment), Optional.of(text), Optional.of(from),
+ Optional.of(isFlagged), Optional.of(isUnread), Optional.of(isAnswered), Optional.of(isDraft), Optional.of(isForwarded), Optional.of(hasAttachment), Optional.of(text), Optional.of(from),
Optional.of(to), Optional.of(cc), Optional.of(bcc), Optional.of(subject), Optional.of(body), Optional.of(attachments), Optional.of(header),
hasKeyword, notKeyword);
@@ -114,6 +115,7 @@ public class FilterConditionTest {
.isUnread(isUnread)
.isAnswered(isAnswered)
.isDraft(isDraft)
+ .isForwarded(isForwarded)
.hasAttachment(hasAttachment)
.text(text)
.from(from)
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[2/5] james-project git commit: JAMES-2213 Allow createMessage and
updateMessage with isForwarded and later can retrieve message with
isForwarded value
Posted by ad...@apache.org.
JAMES-2213 Allow createMessage and updateMessage with isForwarded and
later can retrieve message with isForwarded value
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/35b1d121
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/35b1d121
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/35b1d121
Branch: refs/heads/master
Commit: 35b1d1219927a4c8df8c8c872704184edc4df945
Parents: a345a32
Author: quynhn <qn...@linagora.com>
Authored: Mon Nov 13 15:12:15 2017 +0700
Committer: quynhn <qn...@linagora.com>
Committed: Tue Nov 14 10:27:40 2017 +0700
----------------------------------------------------------------------
.../integration/SetMessagesMethodTest.java | 47 ++++++++++++++++++++
.../org/apache/james/jmap/model/Message.java | 4 ++
.../james/jmap/model/MessageProperties.java | 1 +
.../james/jmap/json/ParsingWritingObjects.java | 2 +-
.../james/jmap/model/MessageFactoryTest.java | 6 +--
.../jmap/src/test/resources/json/message.json | 3 +-
6 files changed, 58 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/35b1d121/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
index d72a60e..6e74189 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
@@ -994,6 +994,53 @@ public abstract class SetMessagesMethodTest {
.body(ARGUMENTS + ".list[0].isAnswered", equalTo(true));
}
+
+ @Test
+ public void setMessagesShouldMarkMessageAsForwardWhenIsForwardedPassed() throws MailboxException {
+ mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, USERNAME, "mailbox");
+
+ ComposedMessageId message = mailboxProbe.appendMessage(USERNAME, USER_MAILBOX,
+ new ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes(Charsets.UTF_8)), new Date(), false, new Flags());
+ await();
+
+ String serializedMessageId = message.getMessageId().serialize();
+
+ given()
+ .header("Authorization", accessToken.serialize())
+ .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"isForwarded\" : true } } }, \"#0\"]]", serializedMessageId))
+ .when()
+ .post("/jmap")
+ .then()
+ .log().ifValidationFails()
+ .spec(getSetMessagesUpdateOKResponseAssertions(serializedMessageId));
+ }
+
+ @Test
+ public void setMessagesShouldMarkAsForwardedWhenIsForwardedPassed() throws MailboxException {
+ mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, USERNAME, "mailbox");
+
+ ComposedMessageId message = mailboxProbe.appendMessage(USERNAME, USER_MAILBOX,
+ new ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes(Charsets.UTF_8)), new Date(), false, new Flags());
+ await();
+
+ String serializedMessageId = message.getMessageId().serialize();
+ given()
+ .header("Authorization", accessToken.serialize())
+ .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"isForwarded\" : true } } }, \"#0\"]]", serializedMessageId))
+ .when()
+ .post("/jmap");
+
+ with()
+ .header("Authorization", accessToken.serialize())
+ .body("[[\"getMessages\", {\"ids\": [\"" + serializedMessageId + "\"]}, \"#0\"]]")
+ .post("/jmap")
+ .then()
+ .log().ifValidationFails()
+ .body(NAME, equalTo("messages"))
+ .body(ARGUMENTS + ".list", hasSize(1))
+ .body(ARGUMENTS + ".list[0].isForwarded", equalTo(true));
+ }
+
@Test
public void setMessagesShouldReturnNotFoundWhenUpdateUnknownMessage() {
mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, USERNAME, "mailbox");
http://git-wip-us.apache.org/repos/asf/james-project/blob/35b1d121/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Message.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Message.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Message.java
index 797d191..557e99f 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Message.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Message.java
@@ -332,6 +332,10 @@ public class Message {
return keywords.contains(Keyword.DRAFT);
}
+ public boolean isIsForwarded() {
+ return keywords.contains(Keyword.FORWARDED);
+ }
+
public boolean isHasAttachment() {
return hasAttachment;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/35b1d121/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageProperties.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageProperties.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageProperties.java
index bf1bff5..ca71165 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageProperties.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageProperties.java
@@ -128,6 +128,7 @@ public class MessageProperties {
isFlagged("isFlagged"),
isAnswered("isAnswered"),
isDraft("isDraft"),
+ isForwarded("isForwarded"),
hasAttachment("hasAttachment"),
headers("headers"),
from("from"),
http://git-wip-us.apache.org/repos/asf/james-project/blob/35b1d121/server/protocols/jmap/src/test/java/org/apache/james/jmap/json/ParsingWritingObjects.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/json/ParsingWritingObjects.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/json/ParsingWritingObjects.java
index 7a7a04e..b81731a 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/json/ParsingWritingObjects.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/json/ParsingWritingObjects.java
@@ -51,7 +51,7 @@ public interface ParsingWritingObjects {
Flags FLAGS = FlagsBuilder.builder()
.add(Flags.Flag.FLAGGED, Flags.Flag.ANSWERED, Flags.Flag.DRAFT, Flags.Flag.SEEN)
.build();
- ImmutableSet<Keyword> KEYWORDS = ImmutableSet.of(Keyword.DRAFT, Keyword.FLAGGED, Keyword.ANSWERED, Keyword.SEEN);
+ ImmutableSet<Keyword> KEYWORDS = ImmutableSet.of(Keyword.DRAFT, Keyword.FLAGGED, Keyword.ANSWERED, Keyword.SEEN, Keyword.FORWARDED);
boolean HAS_ATTACHMENT = true;
ImmutableMap<String, String> HEADERS = ImmutableMap.of("h1", "h1Value", "h2", "h2Value");
Emailer FROM = Emailer.builder().name("myName").email("myEmail@james.org").build();
http://git-wip-us.apache.org/repos/asf/james-project/blob/35b1d121/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessageFactoryTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessageFactoryTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessageFactoryTest.java
index 5637620..434ca06 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessageFactoryTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessageFactoryTest.java
@@ -90,7 +90,7 @@ public class MessageFactoryTest {
public void flagsShouldBeSetIntoMessage() throws Exception {
MetaDataWithContent testMail = MetaDataWithContent.builder()
.uid(MessageUid.of(2))
- .keywords(Keywords.factory().from(Keyword.ANSWERED, Keyword.FLAGGED, Keyword.DRAFT))
+ .keywords(Keywords.factory().from(Keyword.ANSWERED, Keyword.FLAGGED, Keyword.DRAFT, Keyword.FORWARDED))
.size(0)
.internalDate(INTERNAL_DATE)
.content(new ByteArrayInputStream("".getBytes(Charsets.UTF_8)))
@@ -100,8 +100,8 @@ public class MessageFactoryTest {
.build();
Message testee = messageFactory.fromMetaDataWithContent(testMail);
assertThat(testee)
- .extracting(Message::isIsUnread, Message::isIsFlagged, Message::isIsAnswered, Message::isIsDraft)
- .containsExactly(true, true, true, true);
+ .extracting(Message::isIsUnread, Message::isIsFlagged, Message::isIsAnswered, Message::isIsDraft, Message::isIsForwarded)
+ .containsExactly(true, true, true, true, true);
}
@Test
http://git-wip-us.apache.org/repos/asf/james-project/blob/35b1d121/server/protocols/jmap/src/test/resources/json/message.json
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/resources/json/message.json b/server/protocols/jmap/src/test/resources/json/message.json
index ba0c82f..264c6fb 100644
--- a/server/protocols/jmap/src/test/resources/json/message.json
+++ b/server/protocols/jmap/src/test/resources/json/message.json
@@ -8,6 +8,7 @@
"isFlagged": true,
"isAnswered": true,
"isDraft": true,
+ "isForwarded": true,
"hasAttachment": false,
"headers": { "h1": "h1Value", "h2": "h2Value" },
"from": { "name": "myName", "email": "myEmail@james.org"},
@@ -23,5 +24,5 @@
"htmlBody": "<h1>myHtmlBody</h1>",
"attachments": [ ],
"attachedMessages": { },
- "keywords": {"$Draft" : true, "$Flagged" : true, "$Answered" : true, "$Seen" : true}
+ "keywords": {"$Draft" : true, "$Flagged" : true, "$Answered" : true, "$Seen" : true, "$Forwarded" : true}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[4/5] james-project git commit: Fix Eclipse warnings
Posted by ad...@apache.org.
Fix Eclipse warnings
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/39e9e3e3
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/39e9e3e3
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/39e9e3e3
Branch: refs/heads/master
Commit: 39e9e3e3283d448c8d446edf3bd8cce71433c707
Parents: 35b1d12
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Mon Nov 13 17:29:43 2017 +0100
Committer: quynhn <qn...@linagora.com>
Committed: Tue Nov 14 10:27:40 2017 +0700
----------------------------------------------------------------------
.../java/org/apache/james/mailbox/model/AttachmentIdTest.java | 2 --
.../apache/james/mailbox/store/mail/model/FlagsFactoryTest.java | 2 +-
.../org/apache/james/imap/encode/LSubResponseEncoderTest.java | 3 ---
.../org/apache/james/imap/encode/ListResponseEncoderTest.java | 2 --
.../org/apache/james/imap/encode/SearchResponseEncoderTest.java | 2 --
.../org/apache/james/imap/encode/XListResponseEncoderTest.java | 1 -
.../java/org/apache/james/jmap/utils/FilterToSearchQuery.java | 1 -
7 files changed, 1 insertion(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/39e9e3e3/mailbox/api/src/test/java/org/apache/james/mailbox/model/AttachmentIdTest.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/AttachmentIdTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/AttachmentIdTest.java
index baf826b..29bd55d 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/model/AttachmentIdTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/AttachmentIdTest.java
@@ -22,9 +22,7 @@ package org.apache.james.mailbox.model;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import java.io.InputStream;
import java.util.UUID;
-import java.util.stream.Stream;
import org.apache.commons.io.IOUtils;
import org.junit.Test;
http://git-wip-us.apache.org/repos/asf/james-project/blob/39e9e3e3/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/FlagsFactoryTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/FlagsFactoryTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/FlagsFactoryTest.java
index 5f32579..053bfd1 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/FlagsFactoryTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/FlagsFactoryTest.java
@@ -63,7 +63,7 @@ public class FlagsFactoryTest {
public void builderShouldAcceptNullUserFlags() {
assertThat(
FlagsFactory.builder()
- .addUserFlags(null)
+ .addUserFlags((String)null)
.build())
.isEqualTo(new Flags());
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/39e9e3e3/protocols/imap/src/test/java/org/apache/james/imap/encode/LSubResponseEncoderTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/encode/LSubResponseEncoderTest.java b/protocols/imap/src/test/java/org/apache/james/imap/encode/LSubResponseEncoderTest.java
index 119a0e4..91690bc 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/encode/LSubResponseEncoderTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/encode/LSubResponseEncoderTest.java
@@ -20,9 +20,6 @@
package org.apache.james.imap.encode;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
import org.apache.james.imap.api.ImapMessage;
import org.apache.james.imap.encode.base.ByteImapResponseWriter;
http://git-wip-us.apache.org/repos/asf/james-project/blob/39e9e3e3/protocols/imap/src/test/java/org/apache/james/imap/encode/ListResponseEncoderTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/encode/ListResponseEncoderTest.java b/protocols/imap/src/test/java/org/apache/james/imap/encode/ListResponseEncoderTest.java
index 2aef368..8ce7e83 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/encode/ListResponseEncoderTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/encode/ListResponseEncoderTest.java
@@ -20,9 +20,7 @@
package org.apache.james.imap.encode;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
import org.apache.james.imap.api.ImapMessage;
import org.apache.james.imap.encode.base.ByteImapResponseWriter;
http://git-wip-us.apache.org/repos/asf/james-project/blob/39e9e3e3/protocols/imap/src/test/java/org/apache/james/imap/encode/SearchResponseEncoderTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/encode/SearchResponseEncoderTest.java b/protocols/imap/src/test/java/org/apache/james/imap/encode/SearchResponseEncoderTest.java
index 70ea129..4f4d18c 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/encode/SearchResponseEncoderTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/encode/SearchResponseEncoderTest.java
@@ -27,9 +27,7 @@ import org.apache.james.imap.api.ImapMessage;
import org.apache.james.imap.encode.base.ByteImapResponseWriter;
import org.apache.james.imap.encode.base.ImapResponseComposerImpl;
import org.apache.james.imap.message.response.LSubResponse;
-import org.apache.james.imap.message.response.ListResponse;
import org.apache.james.imap.message.response.SearchResponse;
-import org.apache.james.mailbox.model.MailboxMetaData;
import org.jmock.Mockery;
import org.jmock.integration.junit4.JUnit4Mockery;
import org.junit.Before;
http://git-wip-us.apache.org/repos/asf/james-project/blob/39e9e3e3/protocols/imap/src/test/java/org/apache/james/imap/encode/XListResponseEncoderTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/encode/XListResponseEncoderTest.java b/protocols/imap/src/test/java/org/apache/james/imap/encode/XListResponseEncoderTest.java
index c11b1f0..cb0fdff 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/encode/XListResponseEncoderTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/encode/XListResponseEncoderTest.java
@@ -27,7 +27,6 @@ import org.apache.james.imap.api.process.MailboxType;
import org.apache.james.imap.encode.base.ByteImapResponseWriter;
import org.apache.james.imap.encode.base.ImapResponseComposerImpl;
import org.apache.james.imap.message.response.LSubResponse;
-import org.apache.james.imap.message.response.ListResponse;
import org.apache.james.imap.message.response.XListResponse;
import org.apache.james.mailbox.model.MailboxMetaData;
import org.jmock.Mockery;
http://git-wip-us.apache.org/repos/asf/james-project/blob/39e9e3e3/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/FilterToSearchQuery.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/FilterToSearchQuery.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/FilterToSearchQuery.java
index e0b9cc6..da6fca8 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/FilterToSearchQuery.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/FilterToSearchQuery.java
@@ -28,7 +28,6 @@ import org.apache.james.jmap.model.Filter;
import org.apache.james.jmap.model.FilterCondition;
import org.apache.james.jmap.model.FilterOperator;
import org.apache.james.jmap.model.Keyword;
-import org.apache.james.jmap.model.Keywords;
import org.apache.james.mailbox.model.SearchQuery;
import org.apache.james.mailbox.model.SearchQuery.AddressType;
import org.apache.james.mailbox.model.SearchQuery.Criterion;
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org