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 9838e7475b
commit 1b5653bb86
2 changed files with 26 additions and 17 deletions

View File

@@ -91,6 +91,7 @@ public class SearchAPI extends BaseAPI
* @param site
* @param query
* @param filters
* @param sortby
* @return search results (see API reference for more details), null for any errors
*/
public JSONObject rmSearch(
@@ -98,11 +99,16 @@ public class SearchAPI extends BaseAPI
String password,
String site,
String query,
String filters)
String filters,
String sortby)
{
List<BasicNameValuePair> searchParameters = new ArrayList<BasicNameValuePair>();
searchParameters.add(new BasicNameValuePair("query", query));
searchParameters.add(new BasicNameValuePair("filters", filters));
if (sortby != null)
{
searchParameters.add(new BasicNameValuePair("sortby", sortby));
}
String requestURL = MessageFormat.format(
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>
* If more fine-grained control of search parameters is required, use rmSearch() directly.
* @param username
* @param password
* @param query
* @param sortby
* @return list of record names
*/
public List<String> searchForRecordsAsUser(
String username,
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 term
* @param sortby
* @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<>();
// wait for solr indexing
@@ -684,16 +684,6 @@ public class BaseRMRestTest extends RestTest
int waitInMilliSeconds = 6000;
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)
{
try
@@ -703,7 +693,17 @@ 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;
}