[ACS-3973] Added PipelineSuite (and its test classes) that belonged to the master branch

This commit is contained in:
kcichonczyk
2022-11-17 16:45:38 +01:00
parent 3dbf1302f3
commit a5b86b073e
2 changed files with 309 additions and 0 deletions
@@ -0,0 +1,293 @@
package org.alfresco.test.search.functional.searchServices.search;
import org.alfresco.rest.search.FacetFieldBucket;
import org.alfresco.rest.search.RestRequestFacetFieldModel;
import org.alfresco.rest.search.RestRequestFacetFieldsModel;
import org.alfresco.rest.search.RestRequestQueryModel;
import org.alfresco.rest.search.RestResultBucketsModel;
import org.alfresco.rest.search.SearchRequest;
import org.alfresco.rest.search.SearchResponse;
import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.FileType;
import org.hamcrest.Matchers;
import org.springframework.http.HttpStatus;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
public class SearchCasesTest extends AbstractSearchServicesE2ETest
{
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
searchServicesDataPreparation();
Assert.assertTrue(waitForContentIndexing(file4.getContent(), true));
}
@Test(priority=1)
public void testSearchNameField()
{
SearchRequest searchReq = new SearchRequest();
RestRequestQueryModel queryReq = new RestRequestQueryModel();
queryReq.setQuery("cm:name:pangram");
queryReq.setUserQuery("pangram");
searchReq.setQuery(queryReq);
SearchResponse response = queryAsUser(testUser, "cm:name:pangram");
restClient.assertStatusCodeIs(HttpStatus.OK);
response.assertThat().entriesListIsNotEmpty();
}
@Test(priority=2)
public void testSearchTitleField()
{
SearchRequest searchReq = new SearchRequest();
RestRequestQueryModel queryReq = new RestRequestQueryModel();
queryReq.setQuery("cm:title:cars");
queryReq.setUserQuery("cars");
searchReq.setQuery(queryReq);
SearchResponse response2 = queryAsUser(testUser, "cm:title:cars");
restClient.assertStatusCodeIs(HttpStatus.OK);
response2.assertThat().entriesListIsNotEmpty();
}
@Test(priority=3)
public void testSearchDescriptionField()
{
SearchRequest searchReq = new SearchRequest();
RestRequestQueryModel queryReq = new RestRequestQueryModel();
queryReq.setQuery("cm:description:alfresco");
queryReq.setUserQuery("alfresco");
searchReq.setQuery(queryReq);
SearchResponse response3 = queryAsUser(testUser, "cm:description:alfresco");
restClient.assertStatusCodeIs(HttpStatus.OK);
response3.assertThat().entriesListIsNotEmpty();
}
@Test(priority=4)
public void testSearchContentField()
{
SearchRequest searchReq = new SearchRequest();
RestRequestQueryModel queryReq = new RestRequestQueryModel();
queryReq.setQuery("cm:content:unique");
queryReq.setUserQuery("unique");
searchReq.setQuery(queryReq);
SearchResponse response4 = queryAsUser(testUser, "cm:content:unique");
restClient.assertStatusCodeIs(HttpStatus.OK);
response4.assertThat().entriesListIsNotEmpty();
}
@Test(priority=5)
public void testSearchUpdateContent()
{
SearchRequest searchReq = new SearchRequest();
SearchResponse response4 = queryAsUser(testUser, "cm:content:brown");
restClient.assertStatusCodeIs(HttpStatus.OK);
response4.assertThat().entriesListIsNotEmpty();
String newContent = "The quick red fox jumps over the lazy dog";
dataContent.usingUser(adminUserModel).usingSite(testSite).usingResource(file)
.updateContent(newContent);
Assert.assertTrue(waitForContentIndexing("red", true));
SearchResponse response5 = queryAsUser(testUser, "cm:content:brown");
restClient.assertStatusCodeIs(HttpStatus.OK);
response5.assertThat().entriesListIsEmpty();
}
@Test(priority=6)
public void testSearchTextFile()
{
SearchRequest searchReq = new SearchRequest();
RestRequestQueryModel queryReq = new RestRequestQueryModel();
queryReq.setQuery("cm:name:pangram.txt");
queryReq.setUserQuery("pangram.txt");
searchReq.setQuery(queryReq);
SearchResponse response6 = queryAsUser(testUser, "cm:name:pangram.txt");
restClient.assertStatusCodeIs(HttpStatus.OK);
response6.assertThat().entriesListIsNotEmpty();
}
@Test(priority=7)
public void testSearchPDFFile()
{
SearchRequest searchReq = new SearchRequest();
RestRequestQueryModel queryReq = new RestRequestQueryModel();
queryReq.setQuery("cm:name:cars.PDF");
queryReq.setUserQuery("cars.PDF");
searchReq.setQuery(queryReq);
SearchResponse response6 = queryAsUser(testUser, "cm:name:cars.PDF");
restClient.assertStatusCodeIs(HttpStatus.OK);
response6.assertThat().entriesListIsNotEmpty();
}
@Test(priority=8)
public void testSearchDocxFile()
{
SearchRequest searchReq = new SearchRequest();
RestRequestQueryModel queryReq = new RestRequestQueryModel();
queryReq.setQuery("cm:name:alfresco.docx");
queryReq.setUserQuery("alfresco.docx");
searchReq.setQuery(queryReq);
SearchResponse response6 = queryAsUser(testUser, "cm:name:alfresco.docx");
restClient.assertStatusCodeIs(HttpStatus.OK);
response6.assertThat().entriesListIsNotEmpty();
}
@Test(priority=9)
public void testSearchODTFile()
{
SearchRequest searchReq = new SearchRequest();
RestRequestQueryModel queryReq = new RestRequestQueryModel();
queryReq.setQuery("cm:name:unique.ODT");
queryReq.setUserQuery("unique.ODT");
searchReq.setQuery(queryReq);
SearchResponse response6 = queryAsUser(testUser, "cm:name:unique.ODT");
restClient.assertStatusCodeIs(HttpStatus.OK);
response6.assertThat().entriesListIsNotEmpty();
}
/**
* {
* "query": {
* "query": "*"
* },
* "facetFields": {
* "facets": [{"field": "cm:mimetype"},{"field": "modifier"}]
* }
* }
*/
@Test(priority=10)
public void searchWithFactedFields()
{
SearchRequest query = new SearchRequest();
RestRequestQueryModel queryReq = new RestRequestQueryModel();
queryReq.setQuery("cm:content:unique");
query.setQuery(queryReq);
RestRequestFacetFieldsModel facetFields = new RestRequestFacetFieldsModel();
List<RestRequestFacetFieldModel> facets = new ArrayList<>();
facets.add(new RestRequestFacetFieldModel("cm:mimetype"));
facets.add(new RestRequestFacetFieldModel("modifier"));
facetFields.setFacets(facets);
query.setFacetFields(facetFields);
SearchResponse response = query(query);
Assert.assertNotNull(response.getContext().getFacetsFields());
Assert.assertFalse(response.getContext().getFacetsFields().isEmpty());
Assert.assertNull(response.getContext().getFacetQueries());
Assert.assertNull(response.getContext().getFacets());
RestResultBucketsModel model = response.getContext().getFacetsFields().get(0);
Assert.assertEquals(model.getLabel(), "modifier");
model.assertThat().field("label").is("modifier");
FacetFieldBucket bucket1 = model.getBuckets().get(0);
bucket1.assertThat().field("label").is(testUser.getUsername());
bucket1.assertThat().field("display").is("FN-" + testUser.getUsername() + " LN-" + testUser.getUsername());
bucket1.assertThat().field("filterQuery").is("modifier:\"" + testUser.getUsername() + "\"");
bucket1.assertThat().field("count").is(1);
}
@Test(priority=12)
public void testSearchPhraseQueries()
{
SearchRequest searchReq = new SearchRequest();
RestRequestQueryModel queryReq = new RestRequestQueryModel();
queryReq.setQuery("cm:name:alfresco");
queryReq.setUserQuery("alfresco");
searchReq.setQuery(queryReq);
SearchResponse response6 = queryAsUser(testUser, "The quick brown fox jumps over the lazy dog");
restClient.assertStatusCodeIs(HttpStatus.OK);
response6.assertThat().entriesListIsNotEmpty();
}
@Test(priority=13)
public void testSearchExactTermQueries()
{
SearchRequest searchReq = new SearchRequest();
RestRequestQueryModel queryReq = new RestRequestQueryModel();
queryReq.setQuery("cm:name:alfresco");
queryReq.setUserQuery("alfresco");
searchReq.setQuery(queryReq);
SearchResponse response6 = queryAsUser(testUser, "=alfresco");
restClient.assertStatusCodeIs(HttpStatus.OK);
response6.assertThat().entriesListIsNotEmpty();
}
@Test(priority=14)
public void testSearchConjunctionQueries()
{
SearchRequest searchReq = new SearchRequest();
RestRequestQueryModel queryReq = new RestRequestQueryModel();
queryReq.setQuery("cm:name:unique");
queryReq.setUserQuery("unique");
searchReq.setQuery(queryReq);
SearchResponse response6 = queryAsUser(testUser, "unique AND search");
restClient.assertStatusCodeIs(HttpStatus.OK);
response6.assertThat().entriesListIsNotEmpty();
}
@Test(priority=15)
public void testSearchDisjunctionQueries()
{
SearchRequest searchReq = new SearchRequest();
RestRequestQueryModel queryReq = new RestRequestQueryModel();
queryReq.setQuery("cm:name:cars");
queryReq.setUserQuery("cars");
searchReq.setQuery(queryReq);
SearchResponse response6 = queryAsUser(testUser, "file OR discovery");
restClient.assertStatusCodeIs(HttpStatus.OK);
response6.assertThat().entriesListIsNotEmpty();
}
@Test(priority=16)
public void testSearchNegationQueries()
{
SearchRequest searchReq = new SearchRequest();
RestRequestQueryModel queryReq = new RestRequestQueryModel();
queryReq.setQuery("cm:name:pangram");
queryReq.setUserQuery("pangram");
searchReq.setQuery(queryReq);
SearchResponse response6 = queryAsUser(testUser, "pangram NOT pan");
restClient.assertStatusCodeIs(HttpStatus.OK);
response6.assertThat().entriesListIsNotEmpty();
}
@Test(priority=17)
public void testSearchWildcardQueries()
{
SearchRequest searchReq = new SearchRequest();
RestRequestQueryModel queryReq = new RestRequestQueryModel();
queryReq.setQuery("cm:name:alfresco");
queryReq.setUserQuery("alfresco");
searchReq.setQuery(queryReq);
SearchResponse response6 = queryAsUser(testUser, "al?res*");
restClient.assertStatusCodeIs(HttpStatus.OK);
response6.assertThat().entriesListIsNotEmpty();
}
@Test(priority=18)
public void searchSpecialCharacters()
{
String specialCharfileName = "è¥äæ§ç§-åæ.pdf";
FileModel file = new FileModel(specialCharfileName, "è¥äæ§ç§-忬¯¸" + "è¥äæ§ç§-忬¯¸", "è¥äæ§ç§-忬¯¸", FileType.TEXT_PLAIN,
"Text file with Special Characters: " + specialCharfileName);
dataContent.usingUser(testUser).usingSite(testSite).createContent(file);
waitForIndexing(file.getName(), true);
SearchRequest searchReq = createQuery("name:'" + specialCharfileName + "'");
SearchResponse nodes = query(searchReq);
restClient.assertStatusCodeIs(HttpStatus.OK);
nodes.assertThat().entriesListIsNotEmpty();
restClient.onResponse().assertThat().body("list.entries.entry[0].name", Matchers.equalToIgnoringCase(specialCharfileName));
}
}
@@ -0,0 +1,16 @@
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="PipelineSuite" verbose="6" preserve-order="true">
<listeners>
<listener class-name="org.alfresco.utility.report.log.LogsListener"/>
<listener class-name="org.alfresco.utility.report.HtmlReportListener"/>
</listeners>
<test name="Pipeline">
<classes>
<class name="org.alfresco.test.search.functional.searchServices.search.SearchCasesTest" />
</classes>
</test>
</suite>