RM-6311 added API test to check that rm search results are ordered by security marks

This commit is contained in:
cagache
2018-05-11 16:54:54 +03:00
parent 7b15eb6963
commit d0c4593a50
2 changed files with 26 additions and 17 deletions

View File

@@ -91,6 +91,7 @@ public class SearchAPI extends BaseAPI
* @param site * @param site
* @param query * @param query
* @param filters * @param filters
* @param sortby
* @return search results (see API reference for more details), null for any errors * @return search results (see API reference for more details), null for any errors
*/ */
public JSONObject rmSearch( public JSONObject rmSearch(
@@ -98,11 +99,16 @@ public class SearchAPI extends BaseAPI
String password, String password,
String site, String site,
String query, String query,
String filters) String filters,
String sortby)
{ {
List<BasicNameValuePair> searchParameters = new ArrayList<BasicNameValuePair>(); List<BasicNameValuePair> searchParameters = new ArrayList<BasicNameValuePair>();
searchParameters.add(new BasicNameValuePair("query", query)); searchParameters.add(new BasicNameValuePair("query", query));
searchParameters.add(new BasicNameValuePair("filters", filters)); searchParameters.add(new BasicNameValuePair("filters", filters));
if (sortby != null)
{
searchParameters.add(new BasicNameValuePair("sortby", sortby));
}
String requestURL = MessageFormat.format( String requestURL = MessageFormat.format(
RM_SEARCH_ENDPOINT, RM_SEARCH_ENDPOINT,
@@ -114,20 +120,23 @@ public class SearchAPI extends BaseAPI
} }
/** /**
* Search as a user for records on site "rm" matching query, using SearchAPI.RM_DEFAULT_RECORD_FILTERS * Search as a user for records on site "rm" matching query, using SearchAPI.RM_DEFAULT_RECORD_FILTERS and sorted
* by sortby
* <br> * <br>
* If more fine-grained control of search parameters is required, use rmSearch() directly. * If more fine-grained control of search parameters is required, use rmSearch() directly.
* @param username * @param username
* @param password * @param password
* @param query * @param query
* @param sortby
* @return list of record names * @return list of record names
*/ */
public List<String> searchForRecordsAsUser( public List<String> searchForRecordsAsUser(
String username, String username,
String password, String password,
String query) String query,
String sortby)
{ {
return getItemNames(rmSearch(username, password, "rm", query, RM_DEFAULT_RECORD_FILTERS)); return getItemNames(rmSearch(username, password, "rm", query, RM_DEFAULT_RECORD_FILTERS, sortby));
} }
/** /**

View File

@@ -673,10 +673,10 @@ public class BaseRMRestTest extends RestTest
* *
* @param user * @param user
* @param term * @param term
* @param sortby
* @return * @return
* @throws Exception
*/ */
public List<String> searchForRMContentAsUser(UserModel user, String term, String expectedResult) throws Exception public List<String> searchForRMContentAsUser(UserModel user, String term, String sortby)
{ {
List<String> results = new ArrayList<>(); List<String> results = new ArrayList<>();
// wait for solr indexing // wait for solr indexing
@@ -684,16 +684,6 @@ public class BaseRMRestTest extends RestTest
int waitInMilliSeconds = 6000; int waitInMilliSeconds = 6000;
while (counter < 3) while (counter < 3)
{ {
results = searchApi.searchForRecordsAsUser(user.getUsername(), user.getPassword(), term);
if ((results != null && !results.isEmpty() && results.contains(expectedResult)))
{
break;
} else
{
counter++;
}
// double wait time to not overdo solr search
waitInMilliSeconds = (waitInMilliSeconds * 2);
synchronized (this) synchronized (this)
{ {
try try
@@ -704,6 +694,16 @@ public class BaseRMRestTest extends RestTest
} }
} }
results = searchApi.searchForRecordsAsUser(user.getUsername(), user.getPassword(), term, sortby);
if ((results != null && !results.isEmpty()))
{
break;
} else
{
counter++;
}
// double wait time to not overdo solr search
waitInMilliSeconds = (waitInMilliSeconds * 2);
} }
return results; return results;
} }