Author: ssmiweve
Date: 2008-11-20 19:47:04 +0100 (Thu, 20 Nov 2008)
New Revision: 6965
Modified:
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/OverturePPCSearchCommandTest.java
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PicSearchCommandTest.java
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PlatefoodPPCSearchCommandTest.java
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PropertiesSearchCommandTest.java
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/SolrSearchCommandTest.java
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooIdpSearchCommandTest.java
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooMediaSearchCommandTest.java
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooWebSearchCommandTest.java
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YoutubeSearchCommandTest.java
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/command/querybuilder/BaseFilterBuilder.java
Log:
PicSearchCommand site filter from query was not working.
All non-fast commands now have appropriate tests.
Modified:
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/OverturePPCSearchCommandTest.java
===================================================================
---
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/OverturePPCSearchCommandTest.java
2008-11-20 14:47:09 UTC (rev 6964)
+++
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/OverturePPCSearchCommandTest.java
2008-11-20 18:47:04 UTC (rev 6965)
@@ -86,8 +86,17 @@
@Test
public void testSiteRestriction() throws Exception{
- executeTestOfQuery("site:aftonbladet.se banan", "banan",
"+site:aftonbladet.se");
- executeTestOfQuery("banan site:aftonbladet.se", "banan",
"+site:aftonbladet.se");
+ assertEquals(
+ "Site filter not found",
+ "aftonbladet.se",
+ executeTestOfQuery("site:aftonbladet.se banan", "banan",
"+site:aftonbladet.se")
+ .getFilterBuilder().getFilter("site"));
+
+ assertEquals(
+ "Site filter not found",
+ "aftonbladet.se",
+ executeTestOfQuery("banan site:aftonbladet.se", "banan",
"+site:aftonbladet.se")
+ .getFilterBuilder().getFilter("site"));
}
/**
@@ -98,7 +107,7 @@
* @param wantedQuery The expected query.
* @param wantedFilter The expected filter.
*/
- private void executeTestOfQuery(
+ private AbstractYahooSearchCommand executeTestOfQuery(
final String query,
final String wantedQuery,
final String wantedFilter) throws
SiteKeyedFactoryInstantiationException{
@@ -113,5 +122,6 @@
final String generatedQuery = cmd.getQueryRepresentation();
assertEquals("Generated query does not match wanted query",
wantedQuery, generatedQuery.trim());
assertEquals("Generated filter does not match wanter filter",
wantedFilter, cmd.getFilter());
+ return cmd;
}
}
Modified:
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PicSearchCommandTest.java
===================================================================
---
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PicSearchCommandTest.java
2008-11-20 14:47:09 UTC (rev 6964)
+++
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PicSearchCommandTest.java
2008-11-20 18:47:04 UTC (rev 6965)
@@ -86,8 +86,18 @@
@Test
public void testSiteRestriction() throws Exception{
- executeTestOfQuery("site:aftonbladet.se banan", "banan",
"+site:aftonbladet.se");
- executeTestOfQuery("banan site:aftonbladet.se", "banan",
"+site:aftonbladet.se");
+ assertEquals(
+ "Site filter not found",
+ "aftonbladet.se",
+ executeTestOfQuery("site:aftonbladet.se banan", "banan",
"+site:aftonbladet.se")
+ .getFilterBuilder().getFilter("site"));
+
+ assertEquals(
+ "Site filter not found",
+ "aftonbladet.se",
+ executeTestOfQuery("banan site:aftonbladet.se", "banan",
"+site:aftonbladet.se")
+ .getFilterBuilder().getFilter("site"));
+
}
/**
@@ -98,7 +108,7 @@
* @param wantedQuery The expected query.
* @param wantedFilter The expected filter.
*/
- private void executeTestOfQuery(
+ private PicSearchCommand executeTestOfQuery(
final String query,
final String wantedQuery,
final String wantedFilter) throws
SiteKeyedFactoryInstantiationException{
@@ -113,5 +123,6 @@
final String generatedQuery = cmd.getQueryRepresentation();
assertEquals("Generated query does not match wanted query",
wantedQuery, generatedQuery.trim());
assertEquals("Generated filter does not match wanter filter",
wantedFilter, cmd.getFilter());
+ return cmd;
}
}
Modified:
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PlatefoodPPCSearchCommandTest.java
===================================================================
---
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PlatefoodPPCSearchCommandTest.java
2008-11-20 14:47:09 UTC (rev 6964)
+++
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PlatefoodPPCSearchCommandTest.java
2008-11-20 18:47:04 UTC (rev 6965)
@@ -86,8 +86,15 @@
@Test
public void testSiteRestriction() throws Exception{
- executeTestOfQuery("site:aftonbladet.se banan", "banan",
"+site:aftonbladet.se");
- executeTestOfQuery("banan site:aftonbladet.se", "banan",
"+site:aftonbladet.se");
+ assertEquals(
+ "Site filter not found",
+ "aftonbladet.se",executeTestOfQuery("site:aftonbladet.se
banan", "banan", "+site:aftonbladet.se")
+ .getFilterBuilder().getFilter("site"));
+
+ assertEquals(
+ "Site filter not found",
+ "aftonbladet.se",executeTestOfQuery("banan
site:aftonbladet.se", "banan", "+site:aftonbladet.se")
+ .getFilterBuilder().getFilter("site"));
}
/**
@@ -98,7 +105,7 @@
* @param wantedQuery The expected query.
* @param wantedFilter The expected filter.
*/
- private void executeTestOfQuery(
+ private AbstractYahooSearchCommand executeTestOfQuery(
final String query,
final String wantedQuery,
final String wantedFilter) throws
SiteKeyedFactoryInstantiationException{
@@ -113,5 +120,6 @@
final String generatedQuery = cmd.getQueryRepresentation();
assertEquals("Generated query does not match wanted query",
wantedQuery, generatedQuery.trim());
assertEquals("Generated filter does not match wanter filter",
wantedFilter, cmd.getFilter());
+ return cmd;
}
}
Modified:
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PropertiesSearchCommandTest.java
===================================================================
---
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PropertiesSearchCommandTest.java
2008-11-20 14:47:09 UTC (rev 6964)
+++
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PropertiesSearchCommandTest.java
2008-11-20 18:47:04 UTC (rev 6965)
@@ -86,8 +86,17 @@
@Test
public void testSiteRestriction() throws Exception{
- executeTestOfQuery("site:aftonbladet.se banan");
- executeTestOfQuery("banan site:aftonbladet.se");
+ assertEquals(
+ "Site filter not found",
+ "aftonbladet.se",
+ executeTestOfQuery("site:aftonbladet.se banan")
+ .getFilterBuilder().getFilter("site"));
+
+ assertEquals(
+ "Site filter not found",
+ "aftonbladet.se",
+ executeTestOfQuery("banan site:aftonbladet.se")
+ .getFilterBuilder().getFilter("site"));
}
/**
@@ -98,7 +107,7 @@
* @param wantedQuery The expected query.
* @param wantedFilter The expected filter.
*/
- private void executeTestOfQuery(
+ private PropertiesCommand executeTestOfQuery(
final String query) throws SiteKeyedFactoryInstantiationException{
final SearchTab fakeTab = new SearchTab(null, "fake-view",
"default-mode", "test", null, null, true,
@@ -110,5 +119,6 @@
final PropertiesCommand cmd = new PropertiesCommand(cxt);
final String generatedQuery = cmd.getQueryRepresentation();
assertEquals("Generated query does not match wanted query",
query.toLowerCase(), generatedQuery.trim());
+ return cmd;
}
}
Modified:
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/SolrSearchCommandTest.java
===================================================================
---
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/SolrSearchCommandTest.java
2008-11-20 14:47:09 UTC (rev 6964)
+++
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/SolrSearchCommandTest.java
2008-11-20 18:47:04 UTC (rev 6965)
@@ -86,8 +86,17 @@
@Test
public void testSiteRestriction() throws Exception{
- executeTestOfQuery("site:aftonbladet.se banan", "site\\:aftonbladet.se
banan", "");
- executeTestOfQuery("banan site:aftonbladet.se", "banan
site\\:aftonbladet.se", "");
+ assertEquals(
+ "Site filter not found",
+ "",
+ executeTestOfQuery("site:aftonbladet.se banan",
"site\\:aftonbladet.se banan", "")
+ .getFilterBuilder().getFilter("site"));
+
+ assertEquals(
+ "Site filter not found",
+ "",
+ executeTestOfQuery("banan site:aftonbladet.se", "banan
site\\:aftonbladet.se", "")
+ .getFilterBuilder().getFilter("site"));
}
/**
@@ -98,7 +107,7 @@
* @param wantedQuery The expected query.
* @param wantedFilter The expected filter.
*/
- private void executeTestOfQuery(
+ private SolrSearchCommand executeTestOfQuery(
final String query,
final String wantedQuery,
final String wantedFilter) throws
SiteKeyedFactoryInstantiationException{
@@ -113,5 +122,6 @@
final String generatedQuery = cmd.getQueryRepresentation();
assertEquals("Generated query does not match wanted query",
wantedQuery, generatedQuery.trim());
assertEquals("Generated filter does not match wanter filter",
wantedFilter, cmd.getFilter());
+ return cmd;
}
}
Modified:
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooIdpSearchCommandTest.java
===================================================================
---
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooIdpSearchCommandTest.java
2008-11-20 14:47:09 UTC (rev 6964)
+++
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooIdpSearchCommandTest.java
2008-11-20 18:47:04 UTC (rev 6965)
@@ -86,8 +86,17 @@
@Test
public void testSiteRestriction() throws Exception{
- executeTestOfQuery("site:aftonbladet.se banan", "+banan",
"+site:aftonbladet.se");
- executeTestOfQuery("banan site:aftonbladet.se", "+banan",
"+site:aftonbladet.se");
+ assertEquals(
+ "Site filter not found",
+ "aftonbladet.se",
+ executeTestOfQuery("site:aftonbladet.se banan", "+banan",
"+site:aftonbladet.se")
+ .getFilterBuilder().getFilter("site"));
+
+ assertEquals(
+ "Site filter not found",
+ "aftonbladet.se",
+ executeTestOfQuery("banan site:aftonbladet.se", "+banan",
"+site:aftonbladet.se")
+ .getFilterBuilder().getFilter("site"));
}
/**
@@ -98,7 +107,7 @@
* @param wantedQuery The expected query.
* @param wantedFilter The expected filter.
*/
- private void executeTestOfQuery(
+ private AbstractYahooSearchCommand executeTestOfQuery(
final String query,
final String wantedQuery,
final String wantedFilter) throws
SiteKeyedFactoryInstantiationException{
@@ -113,5 +122,6 @@
final String generatedQuery = cmd.getQueryRepresentation();
assertEquals("Generated query does not match wanted query",
wantedQuery, generatedQuery.trim());
assertEquals("Generated filter does not match wanter filter",
wantedFilter, cmd.getFilter());
+ return cmd;
}
}
Modified:
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooMediaSearchCommandTest.java
===================================================================
---
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooMediaSearchCommandTest.java
2008-11-20 14:47:09 UTC (rev 6964)
+++
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooMediaSearchCommandTest.java
2008-11-20 18:47:04 UTC (rev 6965)
@@ -90,8 +90,17 @@
@Test
public void testSiteRestriction() throws Exception{
- executeTestOfQuery("site:aftonbladet.se banan", "+banan",
"+site:aftonbladet.se");
- executeTestOfQuery("banan site:aftonbladet.se", "+banan",
"+site:aftonbladet.se");
+ assertEquals(
+ "Site filter not found",
+ "aftonbladet.se",
+ executeTestOfQuery("site:aftonbladet.se banan", "+banan",
"+site:aftonbladet.se")
+ .getFilterBuilder().getFilter("site"));
+
+ assertEquals(
+ "Site filter not found",
+ "aftonbladet.se",
+ executeTestOfQuery("banan site:aftonbladet.se", "+banan",
"+site:aftonbladet.se")
+ .getFilterBuilder().getFilter("site"));
}
/**
@@ -102,7 +111,7 @@
* @param wantedQuery The expected query.
* @param wantedFilter The expected filter.
*/
- private void executeTestOfQuery(
+ private AbstractYahooSearchCommand executeTestOfQuery(
final String query,
final String wantedQuery,
final String wantedFilter) throws
SiteKeyedFactoryInstantiationException{
@@ -117,5 +126,6 @@
final String generatedQuery = cmd.getQueryRepresentation();
assertEquals("Generated query does not match wanted query",
wantedQuery, generatedQuery.trim());
assertEquals("Generated filter does not match wanter filter",
wantedFilter, cmd.getFilter());
+ return cmd;
}
}
Modified:
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooWebSearchCommandTest.java
===================================================================
---
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooWebSearchCommandTest.java
2008-11-20 14:47:09 UTC (rev 6964)
+++
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooWebSearchCommandTest.java
2008-11-20 18:47:04 UTC (rev 6965)
@@ -86,8 +86,17 @@
@Test
public void testSiteRestriction() throws Exception{
- executeTestOfQuery("site:aftonbladet.se banan", "banan",
"+site:aftonbladet.se");
- executeTestOfQuery("banan site:aftonbladet.se", "banan",
"+site:aftonbladet.se");
+ assertEquals(
+ "Site filter not found",
+ "aftonbladet.se",
+ executeTestOfQuery("site:aftonbladet.se banan", "banan",
"+site:aftonbladet.se")
+ .getFilterBuilder().getFilter("site"));
+
+ assertEquals(
+ "Site filter not found",
+ "aftonbladet.se",
+ executeTestOfQuery("banan site:aftonbladet.se", "banan",
"+site:aftonbladet.se")
+ .getFilterBuilder().getFilter("site"));
}
/**
@@ -98,7 +107,7 @@
* @param wantedQuery The expected query.
* @param wantedFilter The expected filter.
*/
- private void executeTestOfQuery(
+ private YahooWebSearchCommand executeTestOfQuery(
final String query,
final String wantedQuery,
final String wantedFilter) throws
SiteKeyedFactoryInstantiationException{
@@ -113,5 +122,6 @@
final String generatedQuery = cmd.getQueryRepresentation();
assertEquals("Generated query does not match wanted query",
wantedQuery, generatedQuery.trim());
assertEquals("Generated filter does not match wanter filter",
wantedFilter, cmd.getFilter());
+ return cmd;
}
}
Modified:
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YoutubeSearchCommandTest.java
===================================================================
---
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YoutubeSearchCommandTest.java
2008-11-20 14:47:09 UTC (rev 6964)
+++
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YoutubeSearchCommandTest.java
2008-11-20 18:47:04 UTC (rev 6965)
@@ -86,8 +86,17 @@
@Test
public void testSiteRestriction() throws Exception{
- executeTestOfQuery("site:aftonbladet.se banan", "banan",
"+site:aftonbladet.se");
- executeTestOfQuery("banan site:aftonbladet.se", "banan",
"+site:aftonbladet.se");
+ assertEquals(
+ "Site filter not found",
+ "aftonbladet.se",
+ executeTestOfQuery("site:aftonbladet.se banan", "banan",
"+site:aftonbladet.se")
+ .getFilterBuilder().getFilter("site"));
+
+ assertEquals(
+ "Site filter not found",
+ "aftonbladet.se",
+ executeTestOfQuery("banan site:aftonbladet.se", "banan",
"+site:aftonbladet.se")
+ .getFilterBuilder().getFilter("site"));
}
/**
@@ -98,7 +107,7 @@
* @param wantedQuery The expected query.
* @param wantedFilter The expected filter.
*/
- private void executeTestOfQuery(
+ private YoutubeSearchCommand executeTestOfQuery(
final String query,
final String wantedQuery,
final String wantedFilter) throws
SiteKeyedFactoryInstantiationException{
@@ -113,5 +122,6 @@
final String generatedQuery = cmd.getQueryRepresentation();
assertEquals("Generated query does not match wanted query",
wantedQuery, generatedQuery.trim());
assertEquals("Generated filter does not match wanter filter",
wantedFilter, cmd.getFilter());
+ return cmd;
}
}
Modified:
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/command/querybuilder/BaseFilterBuilder.java
===================================================================
---
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/command/querybuilder/BaseFilterBuilder.java
2008-11-20 14:47:09 UTC (rev 6964)
+++
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/command/querybuilder/BaseFilterBuilder.java
2008-11-20 18:47:04 UTC (rev 6965)
@@ -38,6 +38,11 @@
*
* For example handles the site: syntax.
*
+ * The default output uses a colon : to join field to the term, and prefixes
the pair with the plus sign +
+ * For example: +site:vg.no
+ *
+ * The " +" is defined as the deliminator, and is provided by getDelim() if a
subclass wishes to alter just this.
+ *
* @todo add correct handling of NotClause and AndNotClause.
* This also needs to be added to the query builder visitor above.
*
@@ -51,6 +56,8 @@
private static final Logger LOG =
Logger.getLogger(BaseFilterBuilder.class);
+ private static final String DELIM = " +";
+
// Attributes ----------------------------------------------------
private final StringBuilder additionalFilters = new StringBuilder();
@@ -89,17 +96,26 @@
+ additionalFilters.toString();
}
+ /** [EMAIL PROTECTED]
+ *
+ * When looking for a matching filter any leading QueryParser.OPERATORS
+ * to field names in the filter string are ignored.
+ *
+ * @param string [EMAIL PROTECTED]
+ * @return [EMAIL PROTECTED]
+ */
public String getFilter(final String string) {
final StringBuilder sb = new StringBuilder();
- final StringTokenizer tokeniser = new
StringTokenizer(getFilterString());
+ final StringTokenizer tokeniser = new
StringTokenizer(getFilterString(), getDelim());
if(tokeniser.hasMoreTokens()){
- for(String[] pair = tokeniser.nextToken().split(":");
- tokeniser.hasMoreTokens();
- pair = tokeniser.nextToken().split(":")){
+ while(tokeniser.hasMoreTokens()){
+
+ final String[] pair = tokeniser.nextToken().split(":");
+
if(pair[0].equals(string)){
if(sb.length() > 0){ sb.append(' '); }
@@ -152,7 +168,7 @@
final String fieldAs = getContext().getFieldFilter(clause);
final String term = clause.getTerm();
- appendToQueryRepresentation(" +" + (fieldAs.length() > 0 ? fieldAs +
':' + term : term));
+ appendToQueryRepresentation(getDelim() + (fieldAs.length() > 0 ?
fieldAs + ':' + term : term));
}
/** Override logic. Almost an inversion since the QueryBuilder hides
fielded filters
@@ -171,6 +187,10 @@
}
+ protected String getDelim(){
+ return DELIM;
+ }
+
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits