diff --git a/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/scenarios/PolyStringTests.java b/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/scenarios/PolyStringTests.java
index 7cec4a14ba5..c5a10098e5f 100644
--- a/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/scenarios/PolyStringTests.java
+++ b/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/scenarios/PolyStringTests.java
@@ -6,6 +6,7 @@
import org.testng.Assert;
import org.testng.annotations.Test;
import com.evolveum.midpoint.testing.schrodinger.TestBase;
+import java.io.File;
/**
* Created by matus on 5/21/2018.
@@ -19,8 +20,18 @@ public class PolyStringTests extends TestBase {
private static final String TEST_USER_JOZKO_FULL_NAME = "Jožko Jörg Nguyễn Trißtan Guðmund Mrkvička";
private static final String TEST_USER_JOZKO_ADDITIONAL_NAME = "Jörg Nguyễn Trißtan Guðmund ";
+ private static final String INIT_BASIC_CONFIG_DEPENDENCY = "turnOnFullTextSearch";
private static final String CREATE_USER_WITH_DIACRITIC_DEPENDENCY = "createUserWithDiacritic";
+ private static final String SEARCH_USER_WITH_DIACRITIC_DEPENDENCY = "searchForUserWithDiacritic";
+
+ private static final File SYSTEM_CONFIGURATION_FULLTEXT_FILE = new File("./src/test/resources/configuration/objects/systemconfig/system-configuration-fulltext.xml");
+
@Test
+ public void turnOnFullTextSearch(){
+ importObject(SYSTEM_CONFIGURATION_FULLTEXT_FILE,true);
+ }
+
+ @Test (dependsOnMethods = INIT_BASIC_CONFIG_DEPENDENCY)
public void createUserWithDiacritic(){
UserPage user = basicPage.newUser();
@@ -66,6 +77,36 @@ public void searchForUserWithDiacritic(){
.and()
.currentTableContains(TEST_USER_JOZKO_NAME)
);
+
+ }
+
+ @Test (dependsOnMethods = {SEARCH_USER_WITH_DIACRITIC_DEPENDENCY})
+ public void fullTextSearchForUserWithDiacritic(){
+
+ ListUsersPage usersPage = basicPage.listUsers();
+
+ Assert.assertTrue(
+ usersPage
+ .table()
+ .search()
+ .byFullText()
+ .inputValue(TEST_USER_JOZKO_NAME)
+ .pressEnter()
+ .and()
+ .currentTableContains(TEST_USER_JOZKO_NAME)
+ );
+
+ Assert.assertTrue(
+ usersPage
+ .table()
+ .search()
+ .byFullText()
+ .inputValue(TEST_USER_JOZKO_NAME_NO_DIAC)
+ .pressEnter()
+ .and()
+ .currentTableContains(TEST_USER_JOZKO_NAME)
+ );
+
}
}
diff --git a/testing/schrodingertest/src/test/resources/configuration/objects/systemconfig/system-configuration-fulltext.xml b/testing/schrodingertest/src/test/resources/configuration/objects/systemconfig/system-configuration-fulltext.xml
new file mode 100644
index 00000000000..f82c69ed477
--- /dev/null
+++ b/testing/schrodingertest/src/test/resources/configuration/objects/systemconfig/system-configuration-fulltext.xml
@@ -0,0 +1,211 @@
+
+
+
+ SystemConfiguration
+
+
+
+
+
+
+ ERROR
+ ro.isdc.wro.extensions.processor.css.Less4jProcessor
+
+
+
+ OFF
+ org.hibernate.engine.jdbc.spi.SqlExceptionHelper
+
+
+
+ OFF
+ org.hibernate.engine.jdbc.batch.internal.BatchingBatch
+
+
+
+ WARN
+ org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl
+
+
+
+ OFF
+ org.hibernate.internal.ExceptionMapperStandardImpl
+
+
+
+ OFF
+ net.sf.jasperreports.engine.fill.JRFillDataset
+
+
+
+ WARN
+ org.apache.wicket.resource.PropertiesFactory
+
+
+
+ ERROR
+ org.springframework.context.support.ResourceBundleMessageSource
+
+
+
+ INFO
+ com.evolveum.midpoint.model.impl.lens.projector.Projector
+
+
+
+ INFO
+ com.evolveum.midpoint.model.impl.lens.Clockwork
+
+
+
+ %date [%X{subsystem}] [%thread] %level \(%logger\): %msg%n
+ ${midpoint.home}/log/midpoint.log
+ ${midpoint.home}/log/midpoint-%d{yyyy-MM-dd}.%i.log
+ 10
+ 100MB
+ true
+
+
+
+ %date %level: %msg%n
+ ${midpoint.home}/log/midpoint-profile.log
+ ${midpoint.home}/log/midpoint-profile-%d{yyyy-MM-dd}.%i.log
+ 10
+ 100MB
+ true
+
+ MIDPOINT_LOG
+ INFO
+
+ false
+ false
+
+
+
+
+ P3M
+
+
+ P1M
+
+
+
+
+ /self/profile
+
+ View/edit your profile
+
+ fa fa-user
+
+ green
+ http://midpoint.evolveum.com/xml/ns/public/security/authorization-ui-3#selfProfile
+ http://midpoint.evolveum.com/xml/ns/public/security/authorization-ui-3#selfAll
+
+
+ /self/credentials
+
+ View/edit your credentials
+
+ fa fa-shield
+
+ blue
+ http://midpoint.evolveum.com/xml/ns/public/security/authorization-ui-3#selfCredentials
+ http://midpoint.evolveum.com/xml/ns/public/security/authorization-ui-3#selfAll
+
+
+ /admin/users
+
+
+ fa fa-users
+
+ red
+ http://midpoint.evolveum.com/xml/ns/public/security/authorization-ui-3#users
+
+
+ /admin/resources
+
+
+ fa fa-database
+
+ purple
+ http://midpoint.evolveum.com/xml/ns/public/security/authorization-ui-3#resources
+
+ true
+
+
+ true
+
+
+
+ - name
+ - description
+
+
+ UserType
+ - fullName
+ - givenName
+ - familyName
+ - additionalName
+ - nickName
+ - emailAddress
+ - telephoneNumber
+ - honorificPrefix
+ - honorificSuffix
+ - title
+ - employeeNumber
+ - employeeType
+ - costCenter
+ - organization
+ - organizationalUnit
+ - locality
+
+
+ AbstractRoleType
+ - displayName
+ - identifier
+
+
+ RoleType
+ - roleType
+
+
+ OrgType
+ - orgType
+ - costCenter
+ - locality
+ - mailDomain
+
+
+ ServiceType
+ - serviceType
+ - locality
+
+
+
\ No newline at end of file
diff --git a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/component/common/InputBox.java b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/component/common/InputBox.java
new file mode 100644
index 00000000000..f548bd4196b
--- /dev/null
+++ b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/component/common/InputBox.java
@@ -0,0 +1,25 @@
+package com.evolveum.midpoint.schrodinger.component.common;
+
+import com.codeborne.selenide.SelenideElement;
+import com.evolveum.midpoint.schrodinger.component.Component;
+
+/**
+ * Created by martin.lizner on 12/08/2018.
+ */
+public class InputBox extends Component {
+ public InputBox(T parent, SelenideElement parentElement) {
+ super(parent, parentElement);
+ }
+
+ public InputBox inputValue(String input) {
+ getParentElement().setValue(input);
+
+ return this;
+ }
+
+ public T pressEnter() {
+ getParentElement().pressEnter();
+
+ return this.getParent();
+ }
+}