Author: eric
Date: Thu Feb 16 15:31:02 2012
New Revision: 1245026

URL: http://svn.apache.org/viewvc?rev=1245026&view=rev
Log:
Fix to allow SearchTerms which USER flags, contributed by Oleg Zhurakousky 
(JAMES-1375)

Modified:
    
james/imap/trunk/message/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java
    
james/imap/trunk/message/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserNotTest.java

Modified: 
james/imap/trunk/message/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/message/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java?rev=1245026&r1=1245025&r2=1245026&view=diff
==============================================================================
--- 
james/imap/trunk/message/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java
 (original)
+++ 
james/imap/trunk/message/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java
 Thu Feb 16 15:31:02 2012
@@ -188,7 +188,7 @@ public abstract class ImapRequestLineRea
      * Reads an argument of type "atom" from the request.
      */
     public String atom() throws DecodingException {
-        return consumeWord(new ATOM_CHARValidator());
+        return consumeWord(new ATOM_CHARValidator(), true);
     }
 
     /**

Modified: 
james/imap/trunk/message/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserNotTest.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/message/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserNotTest.java?rev=1245026&r1=1245025&r2=1245026&view=diff
==============================================================================
--- 
james/imap/trunk/message/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserNotTest.java
 (original)
+++ 
james/imap/trunk/message/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserNotTest.java
 Thu Feb 16 15:31:02 2012
@@ -19,11 +19,10 @@
 
 package org.apache.james.imap.decode.parser;
 
-import static org.junit.Assert.assertEquals;
-
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.util.Arrays;
+import java.util.List;
 
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapMessage;
@@ -39,6 +38,8 @@ import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import static org.junit.Assert.assertEquals;
+
 @RunWith(JMock.class)
 public class SearchCommandParserNotTest {
 
@@ -114,6 +115,18 @@ public class SearchCommandParserNotTest 
         checkValid("Not NEW\r\n", key);
         checkValid("not new\r\n", key);
     }
+    
+    @Test 
+    public void testUserFlagsParsing() throws Exception { 
+        ImapRequestLineReader reader = new ImapRequestStreamLineReader( 
+                new ByteArrayInputStream("NOT (KEYWORD bar KEYWORD 
foo)".getBytes("US-ASCII")), 
+                new ByteArrayOutputStream()); 
+        SearchKey key = parser.searchKey(null, reader, null, false); 
+        List<SearchKey> keys = key.getKeys().get(0).getKeys(); 
+        assertEquals(2, keys.size()); 
+        assertEquals("bar", keys.get(0).getValue()); 
+        assertEquals("foo", keys.get(1).getValue()); 
+    } 
 
     private void checkValid(String input, final SearchKey key) throws 
Exception {
         ImapRequestLineReader reader = new ImapRequestStreamLineReader(



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to