james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From adup...@apache.org
Subject [1/4] james-project git commit: JAMES-2215 Integration test about consistency of total and unread counts on a shared folder
Date Wed, 15 Nov 2017 12:33:32 GMT
Repository: james-project
Updated Branches:
  refs/heads/master 5df4371bc -> 2d22e0178


JAMES-2215 Integration test about consistency of total and unread counts on a shared folder


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

Branch: refs/heads/master
Commit: b73c53fea1807453612b0f928b0558056163daf2
Parents: b539779
Author: Antoine Duprat <aduprat@linagora.com>
Authored: Mon Nov 13 15:35:09 2017 +0100
Committer: Antoine Duprat <aduprat@linagora.com>
Committed: Wed Nov 15 09:56:59 2017 +0100

----------------------------------------------------------------------
 .../CassandraGetMailboxesMethodTest.java        |  45 ++++
 .../cucumber/GetMailboxesMethodStepdefs.java    |  84 +++++++
 .../cucumber/GetMessagesMethodStepdefs.java     |   5 +
 .../resources/cucumber/GetMailboxes.feature     | 236 +++++++++++++++++++
 .../cucumber/MemoryGetMailboxesMethodTest.java  |  32 +++
 5 files changed, 402 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b73c53fe/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraGetMailboxesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraGetMailboxesMethodTest.java
b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraGetMailboxesMethodTest.java
new file mode 100644
index 0000000..edf671b
--- /dev/null
+++ b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraGetMailboxesMethodTest.java
@@ -0,0 +1,45 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.jmap.cassandra.cucumber;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.runner.RunWith;
+
+import cucumber.api.CucumberOptions;
+import cucumber.api.junit.Cucumber;
+
+@RunWith(Cucumber.class)
+@CucumberOptions(features="classpath:cucumber/GetMailboxes.feature",
+                glue={"org.apache.james.jmap.methods.integration", "org.apache.james.jmap.cassandra.cucumber"},
+                strict = true)
+public class CassandraGetMailboxesMethodTest {
+
+    @BeforeClass
+    public static void init() {
+        CucumberCassandraSingleton.cassandraServer.start();
+    }
+
+    @AfterClass
+    public static void after() {
+        CucumberCassandraSingleton.cassandraServer.stop();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/b73c53fe/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMailboxesMethodStepdefs.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMailboxesMethodStepdefs.java
b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMailboxesMethodStepdefs.java
new file mode 100644
index 0000000..8b6514e
--- /dev/null
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/GetMailboxesMethodStepdefs.java
@@ -0,0 +1,84 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.jmap.methods.integration.cucumber;
+
+import static com.jayway.jsonpath.Criteria.where;
+import static com.jayway.jsonpath.Filter.filter;
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import cucumber.api.java.en.Then;
+import cucumber.api.java.en.When;
+import cucumber.runtime.java.guice.ScenarioScoped;
+
+@ScenarioScoped
+public class GetMailboxesMethodStepdefs {
+
+    private static final String NAME = "[0][0]";
+    private static final String ARGUMENTS = "[0][1]";
+
+    private final UserStepdefs userStepdefs;
+    private final HttpClient httpClient;
+
+    @Inject
+    private GetMailboxesMethodStepdefs(UserStepdefs userStepdefs, HttpClient httpClient)
{
+        this.userStepdefs = userStepdefs;
+        this.httpClient = httpClient;
+    }
+
+    @When("^\"([^\"]*)\" ask for mailboxes$")
+    public void getMailboxes(String user) throws Throwable {
+        userStepdefs.execWithUser(user, 
+                () -> httpClient.post("[[\"getMailboxes\", {}, \"#0\"]]"));
+    }
+
+    @Then("^a mailboxes answer is returned without error$")
+    public void assertGetMailboxesOkStatus() throws Exception {
+        assertThat(httpClient.response.getStatusLine().getStatusCode()).isEqualTo(200);
+        assertThat(httpClient.jsonPath.<String>read(NAME)).isEqualTo("mailboxes");
+    }
+
+    @Then("^the list should contain (\\d+) (?:mailbox|mailboxes)$")
+    public void assertNumberOfMailboxes(int numberOfMailboxes) throws Exception {
+        assertThat(httpClient.jsonPath.<List<String>>read(ARGUMENTS + ".list")).hasSize(numberOfMailboxes);
+    }
+
+    @Then("^the mailbox \"([^\"]*)\" should be present$")
+    public void assertMailboxesNames(String mailboxName) throws Exception {
+        assertThat(httpClient.jsonPath.<List<String>>read(ARGUMENTS + ".list[*].name")).contains(mailboxName);
+    }
+
+    @Then("^the mailbox \"([^\"]*)\" has (\\d+) (?:messages|message)$")
+    public void assertNumberOfMessages(String mailboxName, int numberOfMessages) throws Exception
{
+        assertThat(httpClient.jsonPath.<List<Integer>>read(ARGUMENTS + ".list[?].totalMessages",
+                filter(where("name").is(mailboxName))))
+            .containsOnly(numberOfMessages);
+    }
+
+    @Then("^the mailbox \"([^\"]*)\" has (\\d+) unseen (?:messages|message)$")
+    public void assertNumberOfUnseenMessages(String mailboxName, int numberOfUnseenMessages)
throws Exception {
+        assertThat(httpClient.jsonPath.<List<Integer>>read(ARGUMENTS + ".list[?].unreadMessages",
+                filter(where("name").is(mailboxName))))
+            .containsOnly(numberOfUnseenMessages);
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/b73c53fe/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 9d353f6..4750950 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
@@ -358,6 +358,11 @@ public class GetMessagesMethodStepdefs {
         userStepdefs.execWithUser(username, () -> appendMessageWithFlags(messageName,
mailbox, flagList));
     }
 
+    @Given("^\"([^\"]*)\" has a message \"([^\"]*)\" in \"([^\"]*)\" mailbox$")
+    public void appendSimpleMessage(String username, String messageName, String mailbox)
throws Throwable {
+        userStepdefs.execWithUser(username, () -> appendMessageWithFlags(messageName,
mailbox, ImmutableList.of()));
+    }
+
     @Given("^the user has a message \"([^\"]*)\" in the \"([^\"]*)\" mailbox with flags \"([^\"]*)\"$")
     public void appendMessageWithFlags(String messageName, String mailbox, List<String>
flagList) throws Exception {
         appendMessage(messageName, StringListToFlags.fromFlagList(flagList));

http://git-wip-us.apache.org/repos/asf/james-project/blob/b73c53fe/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/GetMailboxes.feature
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/GetMailboxes.feature
b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/GetMailboxes.feature
new file mode 100644
index 0000000..45c545e
--- /dev/null
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/GetMailboxes.feature
@@ -0,0 +1,236 @@
+#***************************************************************
+# Licensed to the Apache Software Foundation (ASF) under one   *
+# or more contributor license agreements.  See the NOTICE file *
+# distributed with this work for additional information        *
+# regarding copyright ownership.  The ASF licenses this file   *
+# to you under the Apache License, Version 2.0 (the            *
+# "License"); you may not use this file except in compliance   *
+# with the License.  You may obtain a copy of the License at   *
+#                                                              *
+#   http://www.apache.org/licenses/LICENSE-2.0                 *
+#                                                              *
+# Unless required by applicable law or agreed to in writing,   *
+# software distributed under the License is distributed on an  *
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+# KIND, either express or implied.  See the License for the    *
+# specific language governing permissions and limitations      *
+# under the License.                                           *
+# **************************************************************/
+Feature: GetMailboxes method
+  As a James user
+  I want to be able to retrieve my mailboxes
+
+  Background:
+    Given a domain named "domain.tld"
+    And a user "alice@domain.tld"
+    And a user "bob@domain.tld"
+    And "alice@domain.tld" has a mailbox "INBOX"
+    And "bob@domain.tld" has a mailbox "bobMailbox"
+    And "alice@domain.tld" has a mailbox "shared"
+    And "alice@domain.tld" shares her mailbox "shared" with "bob@domain.tld" with "aeilrwt"
rights
+
+  Scenario: Sharer can read the total and unread counts on a shared folder
+    Given "alice@domain.tld" has a message "m1" in "shared" mailbox
+    And "alice@domain.tld" has a message "m2" in "shared" mailbox with subject "my test subject
2", content "testmail 2"
+    When "alice@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 2 messages
+    And the mailbox "shared" has 2 unseen messages
+
+  Scenario: Sharee can read the total and unread counts on a shared folder
+    Given "alice@domain.tld" has a message "m1" in "shared" mailbox
+    And "alice@domain.tld" has a message "m2" in "shared" mailbox with subject "my test subject
2", content "testmail 2"
+    When "bob@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 2 messages
+    And the mailbox "shared" has 2 unseen messages
+
+  Scenario: Copy message should update the total and the unread counts when asked by sharer
+    Given "alice@domain.tld" has a message "m1" in "INBOX" mailbox
+    And "alice@domain.tld" copies "m1" from mailbox "INBOX" to mailbox "shared"
+    When "alice@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 1 message
+    And the mailbox "shared" has 1 unseen message
+
+  Scenario: Copy message should update the total and the unread counts when asked by sharer
/ sharee view
+    Given "alice@domain.tld" has a message "m1" in "INBOX" mailbox
+    And "alice@domain.tld" copies "m1" from mailbox "INBOX" to mailbox "shared"
+    When "bob@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 1 message
+    And the mailbox "shared" has 1 unseen message
+
+  Scenario: Copy message should update the total and the unread counts when asked by sharee
+    Given "bob@domain.tld" has a message "m1" in "bobMailbox" mailbox
+    And "bob@domain.tld" copies "m1" from mailbox "bobMailbox" of user "bob@domain.tld" to
mailbox "shared" of user "alice@domain.tld"
+    When "alice@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 1 message
+    And the mailbox "shared" has 1 unseen message
+
+  Scenario: Copy message should update the total and the unread counts when asked by sharee
/ sharee view
+    Given "bob@domain.tld" has a message "m1" in "bobMailbox" mailbox
+    And "bob@domain.tld" copies "m1" from mailbox "bobMailbox" of user "bob@domain.tld" to
mailbox "shared" of user "alice@domain.tld"
+    When "bob@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 1 message
+    And the mailbox "shared" has 1 unseen message
+
+  Scenario: Move message should update the total and the unread counts when asked by sharer
+    Given "alice@domain.tld" has a message "m1" in "INBOX" mailbox
+    And "alice@domain.tld" moves "m1" to mailbox "shared" of user "alice@domain.tld"
+    When "alice@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 1 message
+    And the mailbox "shared" has 1 unseen message
+
+  Scenario: Move message should update the total and the unread counts of origin mailbox
when asked by sharer
+    Given "alice@domain.tld" has a message "m1" in "INBOX" mailbox
+    And "alice@domain.tld" moves "m1" to mailbox "shared" of user "alice@domain.tld"
+    When "alice@domain.tld" ask for mailboxes
+    Then the mailbox "INBOX" has 0 messages
+    And the mailbox "INBOX" has 0 unseen messages
+
+  Scenario: Move message should update the total and the unread counts when asked by sharer
/ sharee view
+    Given "alice@domain.tld" has a message "m1" in "INBOX" mailbox
+    And "alice@domain.tld" moves "m1" to mailbox "shared" of user "alice@domain.tld"
+    When "bob@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 1 message
+    And the mailbox "shared" has 1 unseen message
+
+  Scenario: Move message should update the total and the unread counts of origin mailbox
when asked by sharer / sharee view
+    Given "alice@domain.tld" has a mailbox "sharedBis"
+    And "alice@domain.tld" has a message "m1" in "sharedBis" mailbox
+    And "alice@domain.tld" shares her mailbox "sharedBis" with "bob@domain.tld" with "aeilrwt"
rights
+    And "alice@domain.tld" moves "m1" to mailbox "shared" of user "alice@domain.tld"
+    When "bob@domain.tld" ask for mailboxes
+    Then the mailbox "sharedBis" has 0 messages
+    And the mailbox "sharedBis" has 0 unseen messages
+
+  Scenario: Move message should update the total and the unread counts when asked by sharee
+    Given "bob@domain.tld" has a message "m1" in "bobMailbox" mailbox
+    And "bob@domain.tld" moves "m1" to mailbox "shared" of user "alice@domain.tld"
+    When "alice@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 1 message
+    And the mailbox "shared" has 1 unseen message
+
+  Scenario: Move message should update the total and the unread counts of origin mailbox
when asked by sharee
+    Given "bob@domain.tld" has a mailbox "sharedBis"
+    And "bob@domain.tld" has a message "m1" in "sharedBis" mailbox
+    And "bob@domain.tld" shares her mailbox "sharedBis" with "alice@domain.tld" with "aeilrwt"
rights
+    And "bob@domain.tld" moves "m1" to mailbox "shared" of user "alice@domain.tld"
+    When "alice@domain.tld" ask for mailboxes
+    Then the mailbox "sharedBis" has 0 messages
+    And the mailbox "sharedBis" has 0 unseen messages
+
+  Scenario: Move message should update the total and the unread counts when asked by sharee
/ sharee view
+    Given "bob@domain.tld" has a message "m1" in "bobMailbox" mailbox
+    And "bob@domain.tld" moves "m1" to mailbox "shared" of user "alice@domain.tld"
+    When "bob@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 1 message
+    And the mailbox "shared" has 1 unseen message
+
+  Scenario: Move message should update the total and the unread counts of origin mailbox
when asked by sharee / sharee view
+    Given "bob@domain.tld" has a message "m1" in "bobMailbox" mailbox
+    And "bob@domain.tld" moves "m1" to mailbox "shared" of user "alice@domain.tld"
+    When "bob@domain.tld" ask for mailboxes
+    Then the mailbox "bobMailbox" has 0 messages
+    And the mailbox "bobMailbox" has 0 unseen messages
+
+  Scenario: Moving a message to a delegated mailbox without rights should not change the
total and the unread counts
+    Given "alice@domain.tld" has a mailbox "shared2"
+    And "alice@domain.tld" shares her mailbox "shared2" with "bob@domain.tld" with "lr" rights
+    And "bob@domain.tld" has a message "m1" in "bobMailbox" mailbox
+    And "bob@domain.tld" moves "m1" to mailbox "shared2" of user "alice@domain.tld"
+    When "alice@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 0 messages
+    And the mailbox "shared" has 0 unseen messages
+
+  Scenario: Moving a message to a delegated mailbox without rights should not change the
total and the unread counts / sharee view
+    Given "alice@domain.tld" has a mailbox "shared2"
+    And "alice@domain.tld" shares her mailbox "shared2" with "bob@domain.tld" with "lr" rights
+    And "bob@domain.tld" has a message "m1" in "bobMailbox" mailbox
+    And "bob@domain.tld" moves "m1" to mailbox "shared2" of user "alice@domain.tld"
+    When "bob@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 0 messages
+    And the mailbox "shared" has 0 unseen messages
+
+  Scenario: Move message should update the total and the unread counts when asked by sharee
and seen message
+    Given "bob@domain.tld" has a message "m1" in the "bobMailbox" mailbox with flags "$Seen"
+    And "bob@domain.tld" moves "m1" to mailbox "shared" of user "alice@domain.tld"
+    When "alice@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 1 message
+    And the mailbox "shared" has 0 unseen message
+
+  Scenario: Move message should update the total and the unread counts when asked by sharee
/ sharee view and seen message
+    Given "bob@domain.tld" has a message "m1" in the "bobMailbox" mailbox with flags "$Seen"
+    And "bob@domain.tld" moves "m1" to mailbox "shared" of user "alice@domain.tld"
+    When "bob@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 1 message
+    And the mailbox "shared" has 0 unseen message
+
+  Scenario: Move message should update the total and the unread counts of origin mailbox
when asked by sharer and seen message
+    Given "alice@domain.tld" has a message "m1" in the "INBOX" mailbox with flags "$Seen"
+    And "alice@domain.tld" moves "m1" to mailbox "shared" of user "alice@domain.tld"
+    When "alice@domain.tld" ask for mailboxes
+    Then the mailbox "INBOX" has 0 messages
+    And the mailbox "INBOX" has 0 unseen messages
+
+  Scenario: Moving a message to a delegated mailbox without rights should not change the
total and the unread counts
+    Given "alice@domain.tld" has a mailbox "shared2"
+    And "alice@domain.tld" shares her mailbox "shared2" with "bob@domain.tld" with "lri"
rights
+    And "bob@domain.tld" has a message "m1" in the "bobMailbox" mailbox with flags "$Seen"
+    And "bob@domain.tld" moves "m1" to mailbox "shared2" of user "alice@domain.tld"
+    When "alice@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 0 messages
+    And the mailbox "shared" has 0 unseen messages
+
+  Scenario: Moving a message to a delegated mailbox without rights should not change the
total and the unread counts / sharee view
+    Given "alice@domain.tld" has a mailbox "shared2"
+    And "alice@domain.tld" shares her mailbox "shared2" with "bob@domain.tld" with "lri"
rights
+    And "bob@domain.tld" has a message "m1" in the "bobMailbox" mailbox with flags "$Seen"
+    And "bob@domain.tld" moves "m1" to mailbox "shared2" of user "alice@domain.tld"
+    When "bob@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 0 messages
+    And the mailbox "shared" has 0 unseen messages
+
+  Scenario: Set flags by sharer should update unseen count when read by sharer
+    Given "alice@domain.tld" has a message "m1" in "shared" mailbox
+    When "alice@domain.tld" sets flags "$Seen" on message "m1"
+    When "alice@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 1 message
+    And the mailbox "shared" has 0 unseen messages
+
+  Scenario: Set flags by sharer should update unseen count when read by sharee
+    Given "alice@domain.tld" has a message "m1" in "shared" mailbox
+    When "alice@domain.tld" sets flags "$Seen" on message "m1"
+    When "bob@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 1 message
+    And the mailbox "shared" has 0 unseen messages
+
+  Scenario: Set flags by sharee should update unseen count when read by sharer
+    Given "alice@domain.tld" has a message "m1" in "shared" mailbox
+    When "bob@domain.tld" sets flags "$Seen" on message "m1"
+    When "alice@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 1 message
+    And the mailbox "shared" has 0 unseen messages
+
+  Scenario: Set flags by sharee should update unseen count when read by sharee
+    Given "alice@domain.tld" has a message "m1" in "shared" mailbox
+    When "bob@domain.tld" sets flags "$Seen" on message "m1"
+    When "bob@domain.tld" ask for mailboxes
+    Then the mailbox "shared" has 1 message
+    And the mailbox "shared" has 0 unseen messages
+
+  Scenario: Set flags by sharee should not update unseen count when no rights and read by
sharer
+    Given "alice@domain.tld" has a mailbox "shared2"
+    And "alice@domain.tld" shares her mailbox "shared2" with "bob@domain.tld" with "lri"
rights
+    And "alice@domain.tld" has a message "m1" in "shared2" mailbox
+    When "bob@domain.tld" sets flags "$Seen" on message "m1"
+    When "alice@domain.tld" ask for mailboxes
+    Then the mailbox "shared2" has 1 message
+    And the mailbox "shared2" has 1 unseen message
+
+  Scenario: As sharee read a message it should not update unseen count when no rights and
read by sharee
+    Given "alice@domain.tld" has a mailbox "shared2"
+    And "alice@domain.tld" shares her mailbox "shared2" with "bob@domain.tld" with "lri"
rights
+    And "alice@domain.tld" has a message "m1" in "shared2" mailbox
+    When "bob@domain.tld" sets flags "$Seen" on message "m1"
+    When "bob@domain.tld" ask for mailboxes
+    Then the mailbox "shared2" has 1 message
+    And the mailbox "shared2" has 1 unseen message
+

http://git-wip-us.apache.org/repos/asf/james-project/blob/b73c53fe/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/cucumber/MemoryGetMailboxesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/cucumber/MemoryGetMailboxesMethodTest.java
b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/cucumber/MemoryGetMailboxesMethodTest.java
new file mode 100644
index 0000000..799b467
--- /dev/null
+++ b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/cucumber/MemoryGetMailboxesMethodTest.java
@@ -0,0 +1,32 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.jmap.memory.cucumber;
+
+import org.junit.runner.RunWith;
+
+import cucumber.api.CucumberOptions;
+import cucumber.api.junit.Cucumber;
+
+@RunWith(Cucumber.class)
+@CucumberOptions(features="classpath:cucumber/GetMailboxes.feature",
+                glue={"org.apache.james.jmap.methods.integration", "org.apache.james.jmap.memory.cucumber"},
+                strict = true)
+public class MemoryGetMailboxesMethodTest {
+}


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


Mime
View raw message