You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/10/02 20:46:19 UTC

svn commit: r1810598 - in /sling/trunk/samples/mail-archive/server/src: main/java/org/apache/sling/mailarchiveserver/impl/SearchQueryParserImpl.java test/java/org/apache/sling/mailarchiveserver/impl/SearchServiceTest.java

Author: rombert
Date: Mon Oct  2 20:46:19 2017
New Revision: 1810598

URL: http://svn.apache.org/viewvc?rev=1810598&view=rev
Log:
samples/mail-archive - fix tests

Ensure a consistent order of the fields in the query

Modified:
    sling/trunk/samples/mail-archive/server/src/main/java/org/apache/sling/mailarchiveserver/impl/SearchQueryParserImpl.java
    sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/SearchServiceTest.java

Modified: sling/trunk/samples/mail-archive/server/src/main/java/org/apache/sling/mailarchiveserver/impl/SearchQueryParserImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/samples/mail-archive/server/src/main/java/org/apache/sling/mailarchiveserver/impl/SearchQueryParserImpl.java?rev=1810598&r1=1810597&r2=1810598&view=diff
==============================================================================
--- sling/trunk/samples/mail-archive/server/src/main/java/org/apache/sling/mailarchiveserver/impl/SearchQueryParserImpl.java (original)
+++ sling/trunk/samples/mail-archive/server/src/main/java/org/apache/sling/mailarchiveserver/impl/SearchQueryParserImpl.java Mon Oct  2 20:46:19 2017
@@ -21,6 +21,8 @@ package org.apache.sling.mailarchiveserv
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -96,7 +98,7 @@ public class SearchQueryParserImpl imple
 	}
 
 	public static final Set<String> SEARCH_PARAMETERES = new HashSet<String>();
-	public static final Set<String> MESSAGE_FIELDS = new HashSet<String>();
+	public static final Set<String> MESSAGE_FIELDS = new LinkedHashSet<String>();
 	public static final Map<String, String> SEARCH_PARAMETER_TO_MESSAGE_FIELD_MAP = new HashMap<String, String>();
 
 	static {

Modified: sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/SearchServiceTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/SearchServiceTest.java?rev=1810598&r1=1810597&r2=1810598&view=diff
==============================================================================
--- sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/SearchServiceTest.java (original)
+++ sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/SearchServiceTest.java Mon Oct  2 20:46:19 2017
@@ -44,74 +44,73 @@ public class SearchServiceTest {
 		params.add(new Object[] {"blank search field", "", QueryBuilderImpl.BASE } );
 
 		params.add(new Object[] {"one word", "word", QueryBuilderImpl.BASE + " AND "
-				+ "(LOWER(Body) LIKE '%word%' "
+				+ "(LOWER(From) LIKE '%word%' "
 				+ "OR LOWER(Subject) LIKE '%word%' "
 				+ "OR LOWER('List-Id') LIKE '%word%' "
-				+ "OR LOWER(From) LIKE '%word%')" 
+				+ "OR LOWER(Body) LIKE '%word%')" 
 		} );	
 		
 		// TODO logically this is true, practically order by score because
 		params.add(new Object[] {"two words", "hello word", QueryBuilderImpl.BASE + " AND " 
-				+ "(LOWER(Body) LIKE '%hello%' "
-				+ "OR LOWER(Body) LIKE '%word%' "
+				+ "(LOWER(From) LIKE '%hello%' "
+				+ "OR LOWER(From) LIKE '%word%' "
 				+ "OR LOWER(Subject) LIKE '%hello%' "
 				+ "OR LOWER(Subject) LIKE '%word%' "
 				+ "OR LOWER('List-Id') LIKE '%hello%' "
 				+ "OR LOWER('List-Id') LIKE '%word%' "
-				+ "OR LOWER(From) LIKE '%hello%' " 
-				+ "OR LOWER(From) LIKE '%word%')" 
+				+ "OR LOWER(Body) LIKE '%hello%' " 
+				+ "OR LOWER(Body) LIKE '%word%')" 
 		} );	
 
 		params.add(new Object[] {"field search", "hello from:world", QueryBuilderImpl.BASE + " AND "
 				+ "(LOWER(From) LIKE '%world%') "
-				+ "AND (LOWER(Body) LIKE '%hello%' "
+				+ "AND (LOWER(From) LIKE '%hello%' "
 				+ "OR LOWER(Subject) LIKE '%hello%' "
 				+ "OR LOWER('List-Id') LIKE '%hello%' "
-				+ "OR LOWER(From) LIKE '%hello%')" 
+				+ "OR LOWER(Body) LIKE '%hello%')" 
 		} );
 
 		params.add(new Object[] {"caps", "SuBjecT:HeRE THeRe", QueryBuilderImpl.BASE + " AND "
 				+ "(LOWER(Subject) LIKE '%here%') " 
-				+ "AND (LOWER(Body) LIKE '%there%' "
+				+ "AND (LOWER(From) LIKE '%there%' "
 				+ "OR LOWER(Subject) LIKE '%there%' "
 				+ "OR LOWER('List-Id') LIKE '%there%' "
-				+ "OR LOWER(From) LIKE '%there%')" 
+				+ "OR LOWER(Body) LIKE '%there%')" 
 		} );
 
 		params.add(new Object[] {"non-existent field", "FROM:me list:public about:stuff", QueryBuilderImpl.BASE + " AND " 
-				+ "(LOWER('List-Id') LIKE '%public%') "
-				+ "AND (LOWER(From) LIKE '%me%')" 
+				+ "(LOWER(From) LIKE '%me%') "
+				+ "AND (LOWER('List-Id') LIKE '%public%')" 
 		} );
 
 		params.add(new Object[] {"just non-existent field", "frome:e", QueryBuilderImpl.DUMMY } );
 
 		params.add(new Object[] {"two spaces (parsing)", "a  b", QueryBuilderImpl.BASE + " AND "
-				+ "(LOWER(Body) LIKE '%a%' "
-				+ "OR LOWER(Body) LIKE '%b%' "
+				+ "(LOWER(From) LIKE '%a%' "
+				+ "OR LOWER(From) LIKE '%b%' "
 				+ "OR LOWER(Subject) LIKE '%a%' "
 				+ "OR LOWER(Subject) LIKE '%b%' "
 				+ "OR LOWER('List-Id') LIKE '%a%' "
 				+ "OR LOWER('List-Id') LIKE '%b%' "
-				+ "OR LOWER(From) LIKE '%a%' " 
-				+ "OR LOWER(From) LIKE '%b%')" 
+				+ "OR LOWER(Body) LIKE '%a%' " 
+				+ "OR LOWER(Body) LIKE '%b%')" 
 		} );	
 
 		params.add(new Object[] {"quoted text", "\"hel  wrd\"", QueryBuilderImpl.BASE + " AND "
-				+ "(LOWER(Body) LIKE '%hel  wrd%' "
+				+ "(LOWER(From) LIKE '%hel  wrd%' "
 				+ "OR LOWER(Subject) LIKE '%hel  wrd%' "
 				+ "OR LOWER('List-Id') LIKE '%hel  wrd%' "
-				+ "OR LOWER(From) LIKE '%hel  wrd%')" 
+				+ "OR LOWER(Body) LIKE '%hel  wrd%')" 
 		} );	
 		
 		params.add(new Object[] {"quoted field", "from:\"w r d\" hello ", QueryBuilderImpl.BASE + " AND "
 				+ "(LOWER(From) LIKE '%w r d%') "
-				+ "AND (LOWER(Body) LIKE '%hello%' "
+				+ "AND (LOWER(From) LIKE '%hello%' "
 				+ "OR LOWER(Subject) LIKE '%hello%' "
 				+ "OR LOWER('List-Id') LIKE '%hello%' "
-				+ "OR LOWER(From) LIKE '%hello%')" 
+				+ "OR LOWER(Body) LIKE '%hello%')" 
 		} );
 
-		//        params.add(new Object[] {"name", "", QueryBuilderImpl.BASE} );
 		return params;
 	}