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/03/12 20:57:27 UTC

svn commit: r636485 [1/3] - in /james/server/trunk/experimental-seda-imap-function/src/test: java/org/apache/james/test/functional/ resources/org/apache/james/test/functional/imap/scripts/

Author: rdonkin
Date: Wed Mar 12 12:57:22 2008
New Revision: 636485

URL: http://svn.apache.org/viewvc?rev=636485&view=rev
Log:
More comprehensive search test scripts.

Added:
    james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SearchAtoms.test
    james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SearchCombinations
Modified:
    james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/CreateScript.java
    james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/ScriptBuilder.java

Modified: james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/CreateScript.java
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/CreateScript.java?rev=636485&r1=636484&r2=636485&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/CreateScript.java (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/CreateScript.java Wed Mar 12 12:57:22 2008
@@ -20,24 +20,191 @@
 package org.apache.james.test.functional;
 
 public class CreateScript {
+    
+    public static final String RE = "Re:";
+    public static final String HEADER = "Delivered-To";
+    public static final String ANOTHER_HEADER = "Received";
+    public static final String COMMON_LETTER = "o";
+    public static final String COMMON_WORD = "the";
+    public static final String UNCOMMON_WORD = "thy";
+    public static final String UNCOMMON_PHRASE = "\"nothing worthy prove\"";
+    public static final String ANOTHER_NAME = "Robert";
+    public static final String NAME = "tim";
+    public static final String DOMAIN = "example.org";
+    public static final String ANOTHER_DOMAIN = "apache.org";
 
     public static final void main(String[] args) throws Exception {
         ScriptBuilder builder = ScriptBuilder.open("localhost", 143);
-        searchAtoms(builder);
+        searchCombinations(builder);
     }
     
+    public static void searchCombinations(ScriptBuilder builder) throws Exception {
+        setupSearch(builder);
+        builder.body(COMMON_LETTER).undraft().unflagged().answered().search();
+        builder.to(COMMON_LETTER).draft().flagged().answered().search();
+        builder.to(COMMON_LETTER).smaller(10000).all().draft().search();
+        builder.bcc(COMMON_LETTER).larger(1000).search();
+        builder.from(COMMON_LETTER).larger(1000).flagged().search();
+        builder.from(COMMON_LETTER).to(COMMON_LETTER).answered().flagged().all().body(COMMON_LETTER).sentbefore(2009, 1, 1).search();
+        builder.or().openParen().from(COMMON_LETTER).to(COMMON_LETTER).answered().flagged()
+            .all().body(COMMON_LETTER).sentbefore(2009, 1, 1).closeParen()
+            .openParen().header(HEADER, "\"\"").draft().closeParen().search();
+        builder.or().openParen().cc(COMMON_LETTER).text(COMMON_LETTER).unseen().larger(1000)
+            .all().body(COMMON_LETTER).senton(2008, 4, 8).closeParen()
+            .openParen().header(HEADER, "\"\"").draft().closeParen().search();
+        builder.or().openParen().cc(COMMON_LETTER).to(COMMON_LETTER).draft().unseen()
+            .all().text(COMMON_LETTER).sentsince(2000, 1, 1).closeParen()
+            .openParen().header(HEADER, "\"\"").draft().closeParen().search();
+        builder.or().openParen().or().openParen().or().openParen().not().text(COMMON_LETTER).cc(COMMON_LETTER).unseen().flagged()
+            .all().body(COMMON_LETTER).not().senton(2008, 3, 1).closeParen()
+            .openParen().header(HEADER, DOMAIN).flagged().closeParen().closeParen().
+            openParen().from(COMMON_LETTER).to(COMMON_LETTER).answered().flagged().all().body(COMMON_LETTER).sentbefore(2009, 1, 1)
+            .closeParen().closeParen().openParen().answered().flagged().draft().closeParen().all().deleted().search();
+        builder.or().openParen().or().openParen().or().openParen().from(COMMON_LETTER).to(COMMON_LETTER).answered().flagged()
+            .all().body(COMMON_LETTER).sentbefore(2009, 1, 1).closeParen()
+            .openParen().header(HEADER, "\"\"").draft().closeParen().closeParen().
+            openParen().from(COMMON_LETTER).to(COMMON_LETTER).answered().flagged().all().body(COMMON_LETTER).sentbefore(2009, 1, 1)
+            .closeParen().closeParen().openParen().answered().flagged().draft().closeParen().all().unanswered().search();
+        builder.quit();
+    }
     
     public static void searchAtoms(ScriptBuilder builder) throws Exception {
+        setupSearch(builder);
+        builder.all().search();
+        builder.answered().search();
+        builder.bcc(COMMON_LETTER).search();
+        builder.bcc(NAME).search();
+        builder.bcc(ANOTHER_NAME).search();
+        builder.bcc(DOMAIN).search();
+        builder.bcc(ANOTHER_DOMAIN).search();
+        builder.body(COMMON_LETTER).search();
+        builder.body(COMMON_WORD).search();
+        builder.body(UNCOMMON_WORD).search();
+        builder.body(UNCOMMON_PHRASE).search();
+        builder.cc(COMMON_LETTER).search();
+        builder.cc(NAME).search();
+        builder.cc(ANOTHER_NAME).search();
+        builder.cc(DOMAIN).search();
+        builder.cc(ANOTHER_DOMAIN).search();
+        builder.deleted().search();
+        builder.draft().search();
+        builder.flagged().search();
+        builder.from(COMMON_LETTER).search();
+        builder.from(NAME).search();
+        builder.from(ANOTHER_NAME).search();
+        builder.from(DOMAIN).search();
+        builder.from(ANOTHER_DOMAIN).search();
+        builder.header(HEADER, DOMAIN).search();
+        builder.header(HEADER, COMMON_LETTER).search();
+        builder.header(HEADER, ANOTHER_DOMAIN).search();
+        builder.header(HEADER, "\"\"").search();
+        builder.header(ANOTHER_HEADER, DOMAIN).search();
+        builder.header(ANOTHER_HEADER, COMMON_LETTER).search();
+        builder.header(ANOTHER_HEADER, ANOTHER_DOMAIN).search();
+        builder.header(ANOTHER_HEADER, "\"\"").search();
+        builder.larger(10).search();
+        builder.larger(100).search();
+        builder.larger(1000).search();
+        builder.larger(10000).search();
+        builder.larger(12500).search();
+        builder.larger(15000).search();
+        builder.larger(20000).search();
+        builder.NEW().search();
+        builder.not().flagged().search();
+        builder.msn(3, 5).search();
+        builder.msnAndDown(10).search();
+        builder.msnAndUp(17).search();
+        builder.old().search();
+        builder.or().answered().flagged().search();
+        builder.recent().search();
+        builder.seen().search();
+        builder.sentbefore(2007, 10, 10).search();
+        builder.sentbefore(2008, 1, 1).search();
+        builder.sentbefore(2008, 2, 1).search();
+        builder.sentbefore(2008, 2, 10).search();
+        builder.sentbefore(2008, 2, 20).search();
+        builder.sentbefore(2008, 2, 25).search();
+        builder.sentbefore(2008, 3, 1).search();
+        builder.sentbefore(2008, 3, 5).search();
+        builder.sentbefore(2008, 3, 10).search();
+        builder.sentbefore(2008, 4, 1).search();
+        builder.senton(2007, 10, 10).search();
+        builder.senton(2008, 1, 1).search();
+        builder.senton(2008, 2, 1).search();
+        builder.senton(2008, 2, 10).search();
+        builder.senton(2008, 2, 20).search();
+        builder.senton(2008, 2, 25).search();
+        builder.senton(2008, 3, 1).search();
+        builder.senton(2008, 3, 5).search();
+        builder.senton(2008, 3, 10).search();
+        builder.senton(2008, 4, 1).search();
+        builder.sentsince(2007, 10, 10).search();
+        builder.sentsince(2008, 1, 1).search();
+        builder.sentsince(2008, 2, 1).search();
+        builder.sentsince(2008, 2, 10).search();
+        builder.sentsince(2008, 2, 20).search();
+        builder.sentsince(2008, 2, 25).search();
+        builder.sentsince(2008, 3, 1).search();
+        builder.sentsince(2008, 3, 5).search();
+        builder.sentsince(2008, 3, 10).search();
+        builder.sentsince(2008, 4, 1).search();
+        builder.smaller(10).search();
+        builder.smaller(100).search();
+        builder.smaller(1000).search();
+        builder.smaller(10000).search();
+        builder.smaller(12500).search();
+        builder.smaller(15000).search();
+        builder.smaller(20000).search();
+        builder.subject(COMMON_LETTER).search();
+        builder.subject(COMMON_WORD).search();
+        builder.subject(UNCOMMON_PHRASE).search();
+        builder.subject(UNCOMMON_WORD).search();
+        builder.subject(RE).search();
+        builder.text(COMMON_LETTER).search();
+        builder.text(COMMON_WORD).search();
+        builder.text(UNCOMMON_PHRASE).search();
+        builder.text(UNCOMMON_WORD).search();
+        builder.text(RE).search();
+        builder.text(DOMAIN).search();
+        builder.text(ANOTHER_DOMAIN).search();
+        builder.text(ANOTHER_NAME).search();
+        builder.text(NAME).search();
+        builder.to(COMMON_LETTER).search();
+        builder.to(NAME).search();
+        builder.to(ANOTHER_NAME).search();
+        builder.to(DOMAIN).search();
+        builder.to(ANOTHER_DOMAIN).search();
+        builder.uid().msn(1, 4).search();
+        builder.unanswered().search();
+        builder.undeleted().search();
+        builder.undraft().search();
+        builder.unflagged().search();
+        builder.unseen().search();
+        builder.quit();
+    }
+
+    private static void setupSearch(ScriptBuilder builder) throws Exception {
         builder.login();
         builder.create();
         builder.select();
         loadLotsOfMail(builder);
-        builder.store(builder.flags().flagged().answered().range(3, 6));
-        builder.getSearch().all();
-        builder.search();
-        builder.getSearch().answered();
-        builder.search();
-        builder.quit();
+        builder.store(builder.flags().add().flagged().range(1, 9));
+        builder.store(builder.flags().add().answered().range(1, 4));
+        builder.store(builder.flags().add().answered().range(10, 14));
+        builder.store(builder.flags().add().seen().range(1, 2));
+        builder.store(builder.flags().add().seen().range(5, 7));
+        builder.store(builder.flags().add().seen().range(10, 12));
+        builder.store(builder.flags().add().seen().range(15, 17));
+        builder.store(builder.flags().add().draft().msn(1));
+        builder.store(builder.flags().add().draft().msn(3));
+        builder.store(builder.flags().add().draft().msn(5));
+        builder.store(builder.flags().add().draft().msn(7));
+        builder.store(builder.flags().add().draft().msn(9));
+        builder.store(builder.flags().add().draft().msn(11));
+        builder.store(builder.flags().add().draft().msn(13));
+        builder.store(builder.flags().add().draft().msn(15));
+        builder.store(builder.flags().add().draft().msn(17));
+        builder.store(builder.flags().add().deleted().range(1,3));
     }
 
 

Modified: james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/ScriptBuilder.java
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/ScriptBuilder.java?rev=636485&r1=636484&r2=636485&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/ScriptBuilder.java (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/java/org/apache/james/test/functional/ScriptBuilder.java Wed Mar 12 12:57:22 2008
@@ -165,6 +165,206 @@
         search = new Search();
     }
     
+    public ScriptBuilder all() {
+        search.all();
+        return this;
+    }
+    
+    public ScriptBuilder answered() {
+        search.answered();
+        return this;
+    }
+    
+    public ScriptBuilder bcc(String address) {
+        search.bcc(address);
+        return this;
+    }
+
+    public ScriptBuilder before(int year, int month, int day) {
+        search.before(year, month, day);
+        return this;
+    }
+    
+    public ScriptBuilder body(String text) {
+        search.body(text);
+        return this;
+    }    
+
+    public ScriptBuilder cc(String address) {
+        search.cc(address);
+        return this;
+    }
+
+    public ScriptBuilder deleted() {
+        search.deleted();
+        return this;
+    }
+    
+    public ScriptBuilder draft() {
+        search.draft();
+        return this;
+    }
+
+    public ScriptBuilder flagged() {
+        search.flagged();
+        return this;
+    }
+
+    public ScriptBuilder from(String address) {
+        search.from(address);
+        return this;
+    }
+
+    public ScriptBuilder header(String field, String value) {
+        search.header(field, value);
+        return this; 
+    }
+    
+    public ScriptBuilder keyword(String flag) {
+        search.keyword(flag);
+        return this;
+    }
+    
+    public ScriptBuilder larger(long size) {
+        search.larger(size);
+        return this;
+    }
+
+    public ScriptBuilder NEW() {
+        search.NEW();
+        return this;
+    }
+    
+    public ScriptBuilder not() {
+        search.not();
+        return this;
+    }
+    
+    public ScriptBuilder old() {
+        search.old();
+        return this;
+    }
+    
+    public ScriptBuilder on(int year, int month, int day) {
+        search.on(year, month, day);
+        return this;
+    }
+
+    public ScriptBuilder or() {
+        search.or();
+        return this;
+    }
+
+    public ScriptBuilder recent() {
+        search.recent();
+        return this;
+    }
+
+    public ScriptBuilder seen() {
+        search.seen();
+        return this;
+    }
+
+    public ScriptBuilder sentbefore(int year, int month, int day) {
+        search.sentbefore(year, month, day);
+        return this;
+    }
+
+    public ScriptBuilder senton(int year, int month, int day) {
+        search.senton(year, month, day);
+        return this; 
+    }
+
+    public ScriptBuilder sentsince(int year, int month, int day) {
+        search.sentsince(year, month, day);
+        return this;
+    }
+    
+    public ScriptBuilder since(int year, int month, int day) {
+        search.since(year, month, day);
+        return this; 
+    }
+    
+    public ScriptBuilder smaller(int size) {
+        search.smaller(size);
+        return this;
+    }
+
+    public ScriptBuilder subject(String address) {
+        search.subject(address);
+        return this;
+    }
+    
+    public ScriptBuilder text(String text) {
+        search.text(text);
+        return this;
+    }
+    
+    public ScriptBuilder to(String address) {
+        search.to(address);
+        return this;
+    }
+    
+    public ScriptBuilder uid() {
+        search.uid();
+        return this;
+    }
+
+    public ScriptBuilder unanswered() {
+        search.unanswered();
+        return this;
+    }
+    
+    public ScriptBuilder undeleted() {
+        search.undeleted();
+        return this;
+    }
+
+    public ScriptBuilder undraft() {
+        search.undraft();
+        return this;
+    }
+    
+    public ScriptBuilder unflagged() {
+        search.unflagged();
+        return this;
+    }
+
+    public ScriptBuilder unkeyword(String flag) {
+        search.unkeyword(flag);
+        return this;
+    }
+    
+    public ScriptBuilder unseen() {
+        search.unseen();
+        return this;
+    }
+    
+    public ScriptBuilder openParen() {
+        search.openParen();
+        return this;
+    }
+    
+    public ScriptBuilder closeParen() {
+        search.closeParen();
+        return this;
+    }
+    
+    public ScriptBuilder msn(int low, int high) {
+        search.msn(low, high);
+        return this;
+    }
+    
+    public ScriptBuilder msnAndUp(int limit) {
+        search.msnAndUp(limit);
+        return this;
+    }
+    
+    public ScriptBuilder msnAndDown(int limit) {
+        search.msnAndDown(limit);
+        return this;
+    }
+    
     public Flags flags() {
         return new Flags();
     }
@@ -322,6 +522,10 @@
         
         public Flags seen() {
             return append("\\SEEN");
+        }
+        
+        public Flags draft() {
+            return append("\\DRAFT");
         }
         
         public String command() {



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