package com.constellio.app.ui; import static java.util.Arrays.asList; import org.joda.time.Duration; import org.junit.Before; import org.junit.Test; import com.constellio.app.modules.es.connectors.smb.testutils.LDAPTokenTestConfig; import com.constellio.app.modules.es.model.connectors.ConnectorInstance; import com.constellio.app.modules.es.services.ConnectorManager; import com.constellio.app.modules.es.services.ESSchemasRecordsServices; import com.constellio.app.modules.rm.RMTestRecords; import com.constellio.app.modules.rm.services.RMSchemasRecordsServices; import com.constellio.model.conf.ldap.config.LDAPServerConfiguration; import com.constellio.model.conf.ldap.config.LDAPUserSyncConfiguration; import com.constellio.model.entities.records.wrappers.User; import com.constellio.model.services.records.RecordServices; import com.constellio.model.services.records.RecordServicesException; import com.constellio.model.services.users.UserServices; import com.constellio.sdk.SDKPasswords; import com.constellio.sdk.tests.ConstellioTest; import com.constellio.sdk.tests.annotations.MainTest; import com.constellio.sdk.tests.annotations.MainTestDefaultStart; import com.constellio.sdk.tests.annotations.UiTest; import com.constellio.sdk.tests.selenium.adapters.constellio.ConstellioWebDriver; @UiTest @MainTest public class StartDemoConstellioWithLDAPAndSMBAcceptTest extends ConstellioTest { RecordServices recordServices; ConstellioWebDriver driver; RMTestRecords records = new RMTestRecords(zeCollection); RMSchemasRecordsServices schemas; private ESSchemasRecordsServices es; private ConnectorManager connectorManager; private ConnectorInstance<?> connectorInstance; @Before public void setUp() throws Exception { givenBackgroundThreadsEnabled(); givenTransactionLogIsEnabled(); prepareSystem(withZeCollection().withAllTestUsers() .withConstellioESModule()); inCollection(zeCollection).setCollectionTitleTo("Collection de test"); recordServices = getModelLayerFactory().newRecordServices(); // SMB es = new ESSchemasRecordsServices(zeCollection, getAppLayerFactory()); connectorManager = es.getConnectorManager(); // LDAP LDAPServerConfiguration ldapServerConfiguration = LDAPTokenTestConfig.getLDAPServerConfiguration(); LDAPUserSyncConfiguration ldapUserSyncConfiguration = LDAPTokenTestConfig.getLDAPUserSyncConfiguration(); ldapUserSyncConfiguration.setDurationBetweenExecution(new Duration(3600_000)); getModelLayerFactory().getLdapConfigurationManager() .saveLDAPConfiguration(ldapServerConfiguration, ldapUserSyncConfiguration); // UserServices userServices = getModelLayerFactory().newUserServices(); // System.out.println(userServices.getAllUserCredentials().size()); getModelLayerFactory().getLdapUserSyncManager() .synchronizeIfPossible(); // System.out.println(userServices.getAllUserCredentials().size()); UserServices userServices = getModelLayerFactory().newUserServices(); User user = userServices.getUserInCollection("admin", zeCollection); try { getModelLayerFactory().newRecordServices() .update(user.setCollectionAllAccess(true)); } catch (RecordServicesException e) { throw new RuntimeException(e); } } @Test @MainTestDefaultStart public void startOnLoginPage() throws Exception { String share = "shareBig/"; connectorInstance = connectorManager.createConnector(es.newConnectorSmbInstance() .setCode("zeConnectorCode") .setEnabled(false) .setSeeds(asList(SDKPasswords.testSmbServer() + share)) .setUsername(SDKPasswords.testSmbUsername()) .setPassword(SDKPasswords.testSmbPassword()) .setDomain(SDKPasswords.testSmbDomain()) .setTraversalCode("") .setInclusions(asList(SDKPasswords.testSmbServer() + share)) .setTitle("New Smb Connector")); driver = newWebDriver(); waitUntilICloseTheBrowsers(); } @Test @MainTestDefaultStart public void startOnLoginPageWithSeedBeingInvalidDocumentUrl() throws Exception { connectorInstance = connectorManager.createConnector(es.newConnectorSmbInstance() .setCode("zeConnectorCode") .setEnabled(false) .setSeeds(asList(SDKPasswords.testSmbServer() + "invalidShareBig/file")) .setUsername(SDKPasswords.testSmbUsername()) .setPassword(SDKPasswords.testSmbPassword()) .setDomain(SDKPasswords.testSmbDomain()) .setTraversalCode("") .setInclusions(asList(SDKPasswords.testSmbServer() + "invalidShareBig/file")) .setTitle("New Smb Connector")); driver = newWebDriver(); waitUntilICloseTheBrowsers(); } @Test @MainTestDefaultStart public void startOnLoginPageWithInvalidPassword() throws Exception { String share = "shareBig/"; connectorInstance = connectorManager.createConnector(es.newConnectorSmbInstance() .setCode("zeConnectorCode") .setEnabled(false) .setSeeds(asList(SDKPasswords.testSmbServer() + share + "3D-Modelling.pdf")) .setUsername(SDKPasswords.testSmbUsername()) .setPassword("invalidPassword") .setDomain(SDKPasswords.testSmbDomain()) .setTraversalCode("") .setInclusions(asList(SDKPasswords.testSmbServer() + share + "3D-Modelling.pdf")) .setTitle("New Smb Connector")); driver = newWebDriver(); waitUntilICloseTheBrowsers(); } @Test public void startOnLoginPageWithSeedWithSpace() throws Exception { String share = "share With Space/"; connectorInstance = connectorManager.createConnector(es.newConnectorSmbInstance() .setCode("zeConnectorCode") .setEnabled(false) .setSeeds(asList(SDKPasswords.testSmbServer() + share)) .setUsername(SDKPasswords.testSmbUsername()) .setPassword(SDKPasswords.testSmbPassword()) .setDomain(SDKPasswords.testSmbDomain()) .setTraversalCode("") .setInclusions(asList(SDKPasswords.testSmbServer() + share)) .setTitle("New Smb Connector")); driver = newWebDriver(); waitUntilICloseTheBrowsers(); } }