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 rd...@apache.org on 2008/08/02 22:43:21 UTC
svn commit: r682045 - in /james/server/trunk:
experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/imap/
experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/
experimental-seda-imap-...
Author: rdonkin
Date: Sat Aug 2 13:43:20 2008
New Revision: 682045
URL: http://svn.apache.org/viewvc?rev=682045&view=rev
Log:
More tests now pass
Added:
james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/imap/AbstractTestConcurrentSessions.java
james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/ConcurrentExistsResponse.test
james/server/trunk/phoenix-deployment/src/test/org/apache/james/experimental/imapserver/ExperimentalConcurrentSessionsTest.java
Removed:
james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/concurrent/ExistsResponse.test
Modified:
james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchMultipleMessages.test
james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchSingleMessage.test
james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/Uid.test
james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imap/message/request/imap4rev1/StoreRequest.java
james/server/trunk/phoenix-deployment/src/test/org/apache/james/experimental/imapserver/ExperimentalSelectedStateTest.java
Added: james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/imap/AbstractTestConcurrentSessions.java
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/imap/AbstractTestConcurrentSessions.java?rev=682045&view=auto
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/imap/AbstractTestConcurrentSessions.java (added)
+++ james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/imap/AbstractTestConcurrentSessions.java Sat Aug 2 13:43:20 2008
@@ -0,0 +1,33 @@
+/****************************************************************
+ * 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.test.functional.imap;
+
+import java.util.Locale;
+
+public abstract class AbstractTestConcurrentSessions extends AbstractSimpleScriptedTestProtocol {
+
+ public AbstractTestConcurrentSessions(HostSystem system) {
+ super(system);
+ }
+
+ public void testFetchEnvelopeUS() throws Exception {
+ //scriptTest("ConcurrentExistsResponse", Locale.US);
+ }
+}
Added: james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/ConcurrentExistsResponse.test
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/ConcurrentExistsResponse.test?rev=682045&view=auto
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/ConcurrentExistsResponse.test (added)
+++ james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/ConcurrentExistsResponse.test Sat Aug 2 13:43:20 2008
@@ -0,0 +1,110 @@
+################################################################
+# 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. #
+################################################################
+# Tests that appending a message from one session triggers an EXISTS and RECENT response
+# in a concurrent session on the same mailbox
+SESSION: 1
+C: 1a CREATE existsresponse
+S: 1a OK CREATE completed.
+
+C: 1b STATUS existsresponse (MESSAGES)
+S: \* STATUS existsresponse \(MESSAGES 0\)
+S: 1b OK STATUS completed
+
+SESSION: 2
+C: 2a SELECT existsresponse
+S: \* FLAGS \(\\Answered \\Deleted \\Draft \\Flagged \\Seen\)
+S: \* 0 EXISTS
+S: \* 0 RECENT
+S: \* OK \[UIDVALIDITY \d+\]
+S: \* OK No messages unseen
+S: \* OK \[PERMANENTFLAGS \(\\Answered \\Deleted \\Draft \\Flagged \\Seen\)\]
+S: 2a OK \[READ-WRITE\] SELECT completed
+
+SESSION: 3
+C: 3a SELECT existsresponse
+S: \* FLAGS \(\\Answered \\Deleted \\Draft \\Flagged \\Seen\)
+S: \* 0 EXISTS
+S: \* 0 RECENT
+S: \* OK \[UIDVALIDITY \d+\]
+S: \* OK No messages unseen
+S: \* OK \[PERMANENTFLAGS \(\\Answered \\Deleted \\Draft \\Flagged \\Seen\)\]
+S: 3a OK \[READ-WRITE\] SELECT completed
+
+SESSION: 4
+C: 4a SELECT existsresponse
+S: \* FLAGS \(\\Answered \\Deleted \\Draft \\Flagged \\Seen\)
+S: \* 0 EXISTS
+S: \* 0 RECENT
+S: \* OK \[UIDVALIDITY \d+\]
+S: \* OK No messages unseen
+S: \* OK \[PERMANENTFLAGS \(\\Answered \\Deleted \\Draft \\Flagged \\Seen\)\]
+S: 4a OK \[READ-WRITE\] SELECT completed
+
+SESSION: 1
+C: 1c APPEND existsresponse {310+}
+C: Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)
+C: From: Fred Foobar <fo...@Blurdybloop.COM>
+C: Subject: afternoon meeting
+C: To: mooch@owatagu.siam.edu
+C: Message-Id: <B2...@Blurdybloop.COM>
+C: MIME-Version: 1.0
+C: Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
+C:
+C: Hello Joe, do you think we can meet at 3:30 tomorrow?
+C:
+S: 1c OK APPEND completed
+
+C: 1b STATUS existsresponse (MESSAGES RECENT)
+S: \* STATUS existsresponse \(MESSAGES 1 RECENT 1\)
+S: 1b OK STATUS completed
+
+# EXISTS response on NOOP
+SESSION: 2
+C: 2b NOOP
+S: \* 1 EXISTS
+S: \* 1 RECENT
+S: 2b OK NOOP completed
+
+C: 2c CLOSE
+S: 2c OK CLOSE completed
+
+# EXISTS response on STORE (recent is no longer set)
+SESSION: 3
+C: 3b STORE 1 +FLAGS.SILENT (\Flagged)
+S: \* 1 EXISTS
+S: \* 0 RECENT
+S: 3b OK STORE completed
+
+C: 3c CLOSE
+S: 3c OK CLOSE completed
+
+# EXISTS response on CREATE
+SESSION: 4
+C: 4b CREATE another
+S: \* 1 EXISTS
+S: \* 0 RECENT
+S: \* 1 FETCH \(FLAGS \(\\Flagged\)
+S: 4b OK CREATE completed
+
+C: 4c DELETE another
+S: 4c OK DELETE completed
+
+C: 4c DELETE existsresponse
+S: 4c OK DELETE completed
+
Modified: james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchMultipleMessages.test
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchMultipleMessages.test?rev=682045&r1=682044&r2=682045&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchMultipleMessages.test (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchMultipleMessages.test Sat Aug 2 13:43:20 2008
@@ -21,7 +21,7 @@
S: \* 1 FETCH \(UID .*\)
S: \* 2 FETCH \(UID .*\)
S: \* 3 FETCH \(UID .*\)
-S: f1 OK FETCH completed
+S: f1 OK FETCH completed.
# Fetch 3 messages with BODY
C: f1 FETCH 1:3 (BODY.PEEK[HEADER.FIELDS (Subject)])
@@ -37,4 +37,4 @@
S: Subject\: Test 03
S:
S: \)
-S: f1 OK FETCH completed
+S: f1 OK FETCH completed.
Modified: james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchSingleMessage.test
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchSingleMessage.test?rev=682045&r1=682044&r2=682045&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchSingleMessage.test (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchSingleMessage.test Sat Aug 2 13:43:20 2008
@@ -18,15 +18,13 @@
################################################################
# BODY
C: f1 FETCH 1 (BODY)
-# TODO this is wrong - line number incorrect.
-S: \* 1 FETCH \(BODY \(\"TEXT\" \"PLAIN\" \(\"CHARSET\" \"US-ASCII\"\) NIL NIL \"7BIT\" 9 1\)\)
-S: f1 OK FETCH completed
+S: \* 1 FETCH \(BODY \(\"TEXT\" \"PLAIN\" \(\"charset\" \"us-ascii\"\) NIL NIL \"7BIT\" 9 1\)\)
+S: f1 OK FETCH completed.
# BODY[]
# Not PEEK, so the Seen flag is implicitly set.
-# TODO - should test that this flag is persisted
-C: f1 FETCH 1 (BODY[])
-S: \* 1 FETCH \(FLAGS \(\\Seen\) BODY\[\] \{255\}
+C: f2 FETCH 1 (BODY[])
+S: \* 1 FETCH \(FLAGS \(\\Recent \\Seen\) BODY\[\] \{254\}
S: Date: Mon, 7 Feb 1994 21:52:25 -0800 \(PST\)
S: From: Fred Foobar <foobar@Blurdybloop\.COM>
S: Subject: Test 01
@@ -37,10 +35,10 @@
S:
S: Test 01
S: \)
-S: f1 OK FETCH completed
+S: f2 OK FETCH completed.
# BODY[HEADER]
-C: f1 FETCH 1 (BODY[HEADER])
+C: f3 FETCH 1 (BODY[HEADER])
S: \* 1 FETCH \(BODY\[HEADER\] \{245\}
S: Date: Mon, 7 Feb 1994 21:52:25 -0800 \(PST\)
S: From: Fred Foobar <foobar@Blurdybloop\.COM>
@@ -51,19 +49,19 @@
S: Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
S:
S: \)
-S: f1 OK FETCH completed
+S: f3 OK FETCH completed.
# BODY[HEADER.FIELDS]
-C: f1 FETCH 1 (BODY[HEADER.FIELDS (From To)])
+C: f4 FETCH 1 (BODY[HEADER.FIELDS (From To)])
S: \* 1 FETCH \(BODY\[HEADER\.FIELDS \(From To\)\] \{74\}
S: From: Fred Foobar <foobar@Blurdybloop\.COM>
S: To: mooch@owatagu\.siam\.edu
S:
S: \)
-S: f1 OK FETCH completed
+S: f4 OK FETCH completed.
# BODY[HEADER.FIELDS.NOT]
-C: f1 FETCH 1 (BODY[HEADER.FIELDS.NOT (From To)])
+C: f5 FETCH 1 (BODY[HEADER.FIELDS.NOT (From To)])
S: \* 1 FETCH \(BODY\[HEADER\.FIELDS\.NOT \(From To\)\] \{173\}
S: Date: Mon, 7 Feb 1994 21:52:25 -0800 \(PST\)
S: Subject: Test 01
@@ -72,44 +70,44 @@
S: Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
S:
S: \)
-S: f1 OK FETCH completed
+S: f5 OK FETCH completed.
# BODY[MIME]
# NOT implemented
# BODY[TEXT]
-C: f1 FETCH 1 (BODY[TEXT])
-S: \* 1 FETCH \(BODY\[TEXT\] \{10\}
+C: f6 FETCH 1 (BODY[TEXT])
+S: \* 1 FETCH \(BODY\[TEXT\] \{9\}
S: Test 01
S: \)
-S: f1 OK FETCH completed
+S: f6 OK FETCH completed.
# todo - multipart messages.
# todo - partial fetch BODY[]<0.100>
-# BODYSTRUCTURE - TODO should be returning extension data - language, md5 etc.
-C: f1 FETCH 1 (BODYSTRUCTURE)
-S: \* 1 FETCH \(BODYSTRUCTURE \(\"TEXT\" \"PLAIN\" \(\"CHARSET\" \"US-ASCII\"\) NIL NIL \"7BIT\" 9 -1\)\)
-S: f1 OK FETCH completed
+# BODYSTRUCTURE
+C: f7 FETCH 1 (BODYSTRUCTURE)
+S: \* 1 FETCH \(BODYSTRUCTURE \(\"TEXT\" \"PLAIN\" \(\"charset\" \"us-ascii\"\) NIL NIL \"7BIT\" 9 1 NIL NIL NIL NIL\)\)
+S: f7 OK FETCH completed.
-# ENVELOPE - TODO need to study the rfc and write more tests: this format could be wrong.
-C: f1 FETCH 1 (ENVELOPE)
+# ENVELOPE
+C: f8 FETCH 1 (ENVELOPE)
S: \* 1 FETCH \(ENVELOPE \(\".*\" \"Test 01\" \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop\.COM\"\)\) \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop\.COM\"\)\) \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop\.COM\"\)\) \(\(NIL NIL \"mooch\" \"owatagu\.siam\.edu\"\)\) NIL NIL NIL \"<B27397-0100000@Blurdybloop\.COM>\"\)\)
-S: f1 OK FETCH completed
+S: f8 OK FETCH completed.
# FLAGS
-C: f1 FETCH 1 (FLAGS)
-S: \* 1 FETCH \(FLAGS \(\\Seen\)\)
-S: f1 OK FETCH completed
+C: f9 FETCH 1 (FLAGS)
+S: \* 1 FETCH \(FLAGS \(\\Recent \\Seen\)\)
+S: f9 OK FETCH completed.
# INTERNALDATE
-C: f1 FETCH 1 (INTERNALDATE)
+C: f10 FETCH 1 (INTERNALDATE)
S: \* 1 FETCH \(INTERNALDATE \".*\"\)
-S: f1 OK FETCH completed
+S: f10 OK FETCH completed.
# RFC822 ( === BODY[])
-C: f1 FETCH 1 (RFC822)
-S: \* 1 FETCH \(RFC822 \{255\}
+C: f11 FETCH 1 (RFC822)
+S: \* 1 FETCH \(RFC822 \{254\}
S: Date: Mon, 7 Feb 1994 21:52:25 -0800 \(PST\)
S: From: Fred Foobar <foobar@Blurdybloop\.COM>
S: Subject: Test 01
@@ -120,10 +118,10 @@
S:
S: Test 01
S: \)
-S: f1 OK FETCH completed
+S: f11 OK FETCH completed.
# RFC822.HEADER ( === BODY.PEEK[HEADER])
-C: f1 FETCH 1 (RFC822.HEADER)
+C: f12 FETCH 1 (RFC822.HEADER)
S: \* 1 FETCH \(RFC822\.HEADER \{245\}
S: Date: Mon, 7 Feb 1994 21:52:25 -0800 \(PST\)
S: From: Fred Foobar <foobar@Blurdybloop\.COM>
@@ -134,38 +132,38 @@
S: Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
S:
S: \)
-S: f1 OK FETCH completed
+S: f12 OK FETCH completed.
# RFC822.SIZE
-C: f1 FETCH 1 (RFC822.SIZE)
-S: \* 1 FETCH \(RFC822\.SIZE 9\)
-S: f1 OK FETCH completed
+C: f13 FETCH 1 (RFC822.SIZE)
+S: \* 1 FETCH \(RFC822\.SIZE 254\)
+S: f13 OK FETCH completed.
# RFC822.TEXT ( === BODY[TEXT])
-C: f1 FETCH 1 (RFC822.TEXT)
-S: \* 1 FETCH \(RFC822\.TEXT \{10\}
+C: f14 FETCH 1 (RFC822.TEXT)
+S: \* 1 FETCH \(RFC822\.TEXT \{9\}
S: Test 01
S: \)
-S: f1 OK FETCH completed
+S: f14 OK FETCH completed.
# UID
-C: f1 FETCH 1 (UID)
+C: f15 FETCH 1 (UID)
S: \* 1 FETCH \(UID \d+\)
-S: f1 OK FETCH completed
+S: f15 OK FETCH completed.
# Macro Commands
# ALL ( === FLAGS INTERNALDATE RFC822.SIZE ENVELOPE)
-C: f1 FETCH 1 (ALL)
-S: \* 1 FETCH \(FLAGS \(\\Seen\) INTERNALDATE \".*\" RFC822.SIZE 9 ENVELOPE \(\".*\" \"Test 01\" \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop\.COM\"\)\) \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop\.COM\"\)\) \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop\.COM\"\)\) \(\(NIL NIL \"mooch\" \"owatagu\.siam\.edu\"\)\) NIL NIL NIL \"<B27397-0100000@Blurdybloop\.COM>\"\)\)
-S: f1 OK FETCH completed
+C: f16 FETCH 1 (ALL)
+S: \* 1 FETCH \(FLAGS \(\\Recent \\Seen\) INTERNALDATE \".*\" RFC822.SIZE 254 ENVELOPE \(\".*\" \"Test 01\" \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop\.COM\"\)\) \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop\.COM\"\)\) \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop\.COM\"\)\) \(\(NIL NIL \"mooch\" \"owatagu\.siam\.edu\"\)\) NIL NIL NIL \"<B27397-0100000@Blurdybloop\.COM>\"\)\)
+S: f16 OK FETCH completed.
# FULL ( === FLAGS INTERNALDATE RFC822.SIZE ENVELOPE BODY )
-C: f1 FETCH 1 (FULL)
-S: \* 1 FETCH \(FLAGS \(\\Seen\) INTERNALDATE \".*\" RFC822\.SIZE 9 ENVELOPE \(\".*\" \"Test 01\" \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop\.COM\"\)\) \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop\.COM\"\)\) \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop\.COM\"\)\) \(\(NIL NIL \"mooch\" \"owatagu\.siam\.edu\"\)\) NIL NIL NIL \"<B27397-0100000@Blurdybloop\.COM>\"\) BODY \(\"TEXT\" \"PLAIN\" \(\"CHARSET\" \"US-ASCII\"\) NIL NIL \"7BIT\" 9 -1\)\)
-S: f1 OK FETCH completed
+C: f17 FETCH 1 (FULL)
+S: \* 1 FETCH \(FLAGS \(\\Recent \\Seen\) INTERNALDATE \".*\" RFC822\.SIZE 254 ENVELOPE \(\".*\" \"Test 01\" \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop\.COM\"\)\) \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop\.COM\"\)\) \(\(\"Fred Foobar\" NIL \"foobar\" \"Blurdybloop\.COM\"\)\) \(\(NIL NIL \"mooch\" \"owatagu\.siam\.edu\"\)\) NIL NIL NIL \"<B27397-0100000@Blurdybloop\.COM>\"\) BODY \(\"TEXT\" \"PLAIN\" \(\"charset\" \"us-ascii\"\) NIL NIL \"7BIT\" 9 1\)\)
+S: f17 OK FETCH completed.
# FAST ( === FLAGS INTERNALDATE RFC822.SIZE )
-C: f1 FETCH 1 (FAST)
-S: \* 1 FETCH \(FLAGS \(\\Seen\) INTERNALDATE \".*\" RFC822.SIZE 9\)
-S: f1 OK FETCH completed
+C: f18 FETCH 1 (FAST)
+S: \* 1 FETCH \(FLAGS \(\\Recent \\Seen\) INTERNALDATE \".*\" RFC822.SIZE 254\)
+S: f18 OK FETCH completed.
Modified: james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/Uid.test
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/Uid.test?rev=682045&r1=682044&r2=682045&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/Uid.test (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/Uid.test Sat Aug 2 13:43:20 2008
@@ -18,10 +18,11 @@
################################################################
#Delete the first message, so that UIDs don't match MSNs
C: a STORE 1 +FLAGS (\Deleted)
-S: \* 1 FETCH \(FLAGS \(\\Deleted\)\)
+S: \* 1 FETCH \(FLAGS \(\\Deleted \\Recent\)\)
S: a OK STORE completed.
C: a EXPUNGE
S: \* 1 EXPUNGE
+S: \* 3 RECENT
S: a OK EXPUNGE completed.
#Regular fetch
@@ -38,29 +39,32 @@
S: a OK FETCH completed.
#UID store
-C: a UID STORE 2:3 +FLAGS (\Deleted)
-S: \* 1 FETCH \(FLAGS \(\\Deleted\) UID 2\)
-S: \* 2 FETCH \(FLAGS \(\\Deleted\) UID 3\)
-S: a OK STORE completed.
+C: a1 UID STORE 2:3 +FLAGS (\Deleted)
+S: \* 1 FETCH \(FLAGS \(\\Deleted \\Recent\) UID 2\)
+S: \* 2 FETCH \(FLAGS \(\\Deleted \\Recent\) UID 3\)
+S: a1 OK STORE completed.
# Regular fetch
-C: a FETCH 1:100 (FLAGS UID)
-S: \* 1 FETCH \(FLAGS \(\\Deleted\) UID 2\)
-S: \* 2 FETCH \(FLAGS \(\\Deleted\) UID 3\)
-S: \* 3 FETCH \(FLAGS \(\) UID 4\)
-S: a OK FETCH completed.
+C: a2 FETCH 1:100 (FLAGS UID)
+S: \* 1 FETCH \(FLAGS \(\\Deleted \\Recent\) UID 2\)
+S: \* 2 FETCH \(FLAGS \(\\Deleted \\Recent\) UID 3\)
+S: \* 3 FETCH \(FLAGS \(\\Recent\) UID 4\)
+S: a2 OK FETCH completed.
# CREATE and do a UID COPY
-C: a CREATE copied
-S: a OK CREATE completed.
+C: a3 CREATE copied
+S: a3 OK CREATE completed.
-C: a UID COPY 2 copied
-S: a OK COPY completed.
+C: a4 UID COPY 2 copied
+S: a4 OK COPY completed.
C: a STATUS copied (MESSAGES)
-S: \* STATUS copied \(MESSAGES 1\)
+S: \* STATUS "copied" \(MESSAGES 1\)
S: a OK STATUS completed.
+C: A003 STORE 1:4 +FLAGS.SILENT (\FLAGGED)
+S: A003 OK STORE completed.
+
# Do a UID SEARCH
C: a UID SEARCH FLAGGED
S: \* SEARCH 2 3 4
Modified: james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imap/message/request/imap4rev1/StoreRequest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imap/message/request/imap4rev1/StoreRequest.java?rev=682045&r1=682044&r2=682045&view=diff
==============================================================================
--- james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imap/message/request/imap4rev1/StoreRequest.java (original)
+++ james/server/trunk/imap-codec-library/src/main/java/org/apache/james/imap/message/request/imap4rev1/StoreRequest.java Sat Aug 2 13:43:20 2008
@@ -96,4 +96,41 @@
public final boolean isUseUids() {
return useUids;
}
+
+ public String toString() {
+ final StringBuffer buffer = new StringBuffer(100);
+ buffer.append("STORE ");
+ if (isUseUids()) {
+ buffer.append("UID ");
+ }
+ if (isSilent()) {
+ buffer.append("SILENT ");
+
+ }
+ if (isSignedPlus()) {
+ buffer.append("+ ");
+ }
+ if (isSignedMinus()) {
+ buffer.append("- ");
+ }
+ if (flags.contains(Flags.Flag.ANSWERED)) {
+ buffer.append(" ANSWERED");
+ }
+ if (flags.contains(Flags.Flag.DELETED)) {
+ buffer.append(" DELETED");
+ }
+ if (flags.contains(Flags.Flag.FLAGGED)) {
+ buffer.append(" FLAGGED");
+ }
+ if (flags.contains(Flags.Flag.DRAFT)) {
+ buffer.append(" DRAFT");
+ }
+ if (flags.contains(Flags.Flag.SEEN)) {
+ buffer.append(" SEEN");
+ }
+ if (flags.contains(Flags.Flag.RECENT)) {
+ buffer.append(" RECEN");
+ }
+ return buffer.toString();
+ }
}
Added: james/server/trunk/phoenix-deployment/src/test/org/apache/james/experimental/imapserver/ExperimentalConcurrentSessionsTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/test/org/apache/james/experimental/imapserver/ExperimentalConcurrentSessionsTest.java?rev=682045&view=auto
==============================================================================
--- james/server/trunk/phoenix-deployment/src/test/org/apache/james/experimental/imapserver/ExperimentalConcurrentSessionsTest.java (added)
+++ james/server/trunk/phoenix-deployment/src/test/org/apache/james/experimental/imapserver/ExperimentalConcurrentSessionsTest.java Sat Aug 2 13:43:20 2008
@@ -0,0 +1,30 @@
+/****************************************************************
+ * 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.experimental.imapserver;
+
+import org.apache.james.test.functional.imap.AbstractTestConcurrentSessions;
+
+public class ExperimentalConcurrentSessionsTest extends AbstractTestConcurrentSessions {
+
+ public ExperimentalConcurrentSessionsTest() throws Exception {
+ super(HostSystemFactory.createStandardImap());
+ }
+
+}
Modified: james/server/trunk/phoenix-deployment/src/test/org/apache/james/experimental/imapserver/ExperimentalSelectedStateTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/test/org/apache/james/experimental/imapserver/ExperimentalSelectedStateTest.java?rev=682045&r1=682044&r2=682045&view=diff
==============================================================================
--- james/server/trunk/phoenix-deployment/src/test/org/apache/james/experimental/imapserver/ExperimentalSelectedStateTest.java (original)
+++ james/server/trunk/phoenix-deployment/src/test/org/apache/james/experimental/imapserver/ExperimentalSelectedStateTest.java Sat Aug 2 13:43:20 2008
@@ -26,52 +26,4 @@
public ExperimentalSelectedStateTest() throws Exception {
super(HostSystemFactory.createStandardImap());
}
-
- public void testFetchMultipleMessagesUS() throws Exception {
- // TODO Auto-generated method stub
- //super.testFetchMultipleMessages();
- }
-
- public void testFetchSingleMessageUS() throws Exception {
- // BODY octet count is buggy.
- // The total size of the message is used rather than the size of the part
- //super.testFetchSingleMessageUS();
- }
-
- public void testUidUS() throws Exception {
- // UID fetch not working very well
- // super.testUid();
- }
-
- public void testFetchMultipleMessagesKOREA() throws Exception {
- // TODO Auto-generated method stub
- //super.testFetchMultipleMessages();
- }
-
- public void testFetchSingleMessageKOREA() throws Exception {
- // BODY octet count is buggy.
- // The total size of the message is KOREAed rather than the size of the part
- //super.testFetchSingleMessage();
- }
-
- public void testUidKOREA() throws Exception {
- // UID fetch not working very well
- // super.testUid();
- }
-
- public void testFetchMultipleMessagesITALY() throws Exception {
- // TODO Auto-generated method stub
- //super.testFetchMultipleMessages();
- }
-
- public void testFetchSingleMessageITALY() throws Exception {
- // BODY octet count is buggy.
- // The total size of the message is ITALYed rather than the size of the part
- //super.testFetchSingleMessage();
- }
-
- public void testUidITALY() throws Exception {
- // UID fetch not working very well
- // super.testUid();
- }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org