blob: 1591c4a644f54500100dc84fe93f81d0feeaaaae [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
package org.apache.directory.studio.test.integration.ui.bots;
import org.apache.directory.api.ldap.model.constants.SaslQoP;
import org.apache.directory.api.ldap.model.constants.SaslSecurityStrength;
import org.apache.directory.studio.ldapbrowser.core.BrowserCoreMessages;
import org.apache.directory.studio.test.integration.ui.utils.JobWatcher;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotCombo;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotText;
public class NewConnectionWizardBot extends WizardBot
{
private static final String TITLE = "New LDAP Connection";
private static final String CERTIFICATE_TRUST = "Certificate Trust";
private static final String CONNECTION_NAME = "Connection name:";
private static final String HOSTNAME = "Hostname:";
private static final String PORT = "Port:";
private static final String CHECK_AUTHENTICATION = "Check Authentication";
private static final String CHECK_NETWORK_PARAMETER = "Check Network Parameter";
private static final String VIEW_CERTIFICATE = "View Certificate...";
private static final String BASE_DN = "Base DN:";
private static final String GET_BASE_DNS_FROM_ROOT_DSE = "Get base DNs from Root DSE";
private static final String SAVE_PASSWORD = "Save password";
private static final String SASL_REALM = "SASL Realm:";
private static final String SASL_QUALITY_OF_PROTECTION = "Quality of Protection:";
private static final String SASL_PROTECTION_STRENGH = "Protection Strength:";
private static final String BIND_PASSWORD = "Bind password:";
private static final String BIND_DN_OR_USER = "Bind DN or user:";
private static final String CRAM_MD5_SASL = "CRAM-MD5 (SASL)";
private static final String DIGEST_MD5_SASL = "DIGEST-MD5 (SASL)";
private static final String GSS_API_SASL = "GSSAPI (Kerberos)";
private static final String NO_AUTHENTICATION = "No Authentication";
private static final String SIMPLE_AUTHENTICATION = "Simple Authentication";
private static final String AUTHENTICATION_METHOD = "Authentication Method";
private static final String ENCRYPTION_METHOD = "Encryption method:";
private static final String NO_ENCRYPTION = "No encryption";
private static final String START_TLS_ENCRYPTION = "Use StartTLS extension";
private static final String LDAPS_ENCRYPTION = "Use SSL encryption (ldaps://)";
private static final String USE_NATIVE_TGT = "Use native TGT";
private static final String OBTAIN_TGT_FROM_KDC = "Obtain TGT from KDC (provide username and password)";
private static final String USE_NATIVE_SYSTEM_CONFIG = "Use native system configuration";
private static final String USE_CONFIG_FILE = "Use configuration file:";
private static final String USE_MANUAL_CONFIG = "Use following configuration:";
private static final String KERBEROS_REALM = "Kerberos Realm:";
private static final String KDC_HOST = "KDC Host:";
private static final String KDC_PORT = "KDC Port:";
public NewConnectionWizardBot()
{
super( TITLE );
}
public void clickFinishButton( boolean waitTillConnectionOpened )
{
JobWatcher watcher = null;
if ( waitTillConnectionOpened )
{
watcher = new JobWatcher( BrowserCoreMessages.jobs__open_connections_name_1 );
}
super.clickFinishButton();
if ( waitTillConnectionOpened )
{
watcher.waitUntilDone();
}
}
public void typeConnectionName( String connectionName )
{
SWTBotText connText = bot.textWithLabel( CONNECTION_NAME );
connText.setText( connectionName );
}
public void typeHost( String host )
{
SWTBotCombo hostnameCombo = bot.comboBoxWithLabel( HOSTNAME );
hostnameCombo.setText( host );
}
public void typePort( int port )
{
SWTBotCombo portCombo = bot.comboBoxWithLabel( PORT );
portCombo.setText( Integer.toString( port ) );
}
public boolean isSimpleAuthenticationSelected()
{
SWTBotCombo authMethodCombo = bot.comboBoxInGroup( AUTHENTICATION_METHOD );
return SIMPLE_AUTHENTICATION.equals( authMethodCombo.selection() );
}
public void selectSimpleAuthentication()
{
SWTBotCombo authMethodCombo = bot.comboBoxInGroup( AUTHENTICATION_METHOD );
authMethodCombo.setSelection( SIMPLE_AUTHENTICATION );
}
public boolean isNoAuthenticationSelected()
{
SWTBotCombo authMethodCombo = bot.comboBoxInGroup( AUTHENTICATION_METHOD );
return NO_AUTHENTICATION.equals( authMethodCombo.selection() );
}
public void selectNoAuthentication()
{
SWTBotCombo authMethodCombo = bot.comboBoxInGroup( AUTHENTICATION_METHOD );
authMethodCombo.setSelection( NO_AUTHENTICATION );
}
public boolean isDigestMD5AuthenticationSelected()
{
SWTBotCombo authMethodCombo = bot.comboBoxInGroup( AUTHENTICATION_METHOD );
return DIGEST_MD5_SASL.equals( authMethodCombo.selection() );
}
public void selectDigestMD5Authentication()
{
SWTBotCombo authMethodCombo = bot.comboBoxInGroup( AUTHENTICATION_METHOD );
authMethodCombo.setSelection( DIGEST_MD5_SASL );
}
public boolean isCramMD5AuthenticationSelected()
{
SWTBotCombo authMethodCombo = bot.comboBoxInGroup( AUTHENTICATION_METHOD );
return CRAM_MD5_SASL.equals( authMethodCombo.selection() );
}
public void selectCramMD5Authentication()
{
SWTBotCombo authMethodCombo = bot.comboBoxInGroup( AUTHENTICATION_METHOD );
authMethodCombo.setSelection( CRAM_MD5_SASL );
}
public boolean isGssApiAuthenticationSelected()
{
SWTBotCombo authMethodCombo = bot.comboBoxInGroup( AUTHENTICATION_METHOD );
return GSS_API_SASL.equals( authMethodCombo.selection() );
}
public void selectGssApiAuthentication()
{
SWTBotCombo authMethodCombo = bot.comboBoxInGroup( AUTHENTICATION_METHOD );
authMethodCombo.setSelection( GSS_API_SASL );
}
public boolean isUserEnabled()
{
return bot.comboBoxWithLabel( BIND_DN_OR_USER ).isEnabled();
}
public void typeUser( String user )
{
SWTBotCombo dnCombo = bot.comboBoxWithLabel( BIND_DN_OR_USER );
dnCombo.setText( user );
}
public boolean isPasswordEnabled()
{
return bot.textWithLabel( BIND_PASSWORD ).isEnabled();
}
public void typePassword( String password )
{
SWTBotText passwordText = bot.textWithLabel( BIND_PASSWORD );
passwordText.setText( password );
}
public boolean isRealmEnabled()
{
return bot.comboBoxWithLabel( SASL_REALM ).isEnabled();
}
public void typeRealm( String realm )
{
SWTBotCombo combo = bot.comboBoxWithLabel( SASL_REALM );
combo.setText( realm );
}
public void selectQualityOfProtection( SaslQoP saslQoP )
{
SWTBotCombo combo = bot.comboBoxWithLabel( SASL_QUALITY_OF_PROTECTION );
switch ( saslQoP )
{
case AUTH:
combo.setSelection( 0 );
break;
case AUTH_INT:
combo.setSelection( 1 );
break;
case AUTH_CONF:
combo.setSelection( 2 );
break;
}
}
public void selectProtectionStrength( SaslSecurityStrength saslSecurityStrength )
{
SWTBotCombo combo = bot.comboBoxWithLabel( SASL_PROTECTION_STRENGH );
switch ( saslSecurityStrength )
{
case HIGH:
combo.setSelection( 0 );
break;
case MEDIUM:
combo.setSelection( 1 );
break;
case LOW:
combo.setSelection( 2 );
break;
}
}
public boolean isSavePasswordEnabled()
{
return bot.checkBox( SAVE_PASSWORD ).isEnabled();
}
public boolean isSavePasswordSelected()
{
return bot.checkBox( SAVE_PASSWORD ).isChecked();
}
public void selectSavePassword()
{
bot.checkBox( SAVE_PASSWORD ).select();
}
public void deselectSavePassword()
{
bot.checkBox( SAVE_PASSWORD ).deselect();
}
public boolean isUseNativeTgtSelected()
{
return bot.radio( USE_NATIVE_TGT ).isSelected();
}
public void selectUseNativeTgt()
{
bot.radio( USE_NATIVE_TGT ).click();
}
public boolean isObtainTgtFromKdcSelected()
{
return bot.radio( OBTAIN_TGT_FROM_KDC ).isSelected();
}
public void selectObtainTgtFromKdc()
{
bot.radio( OBTAIN_TGT_FROM_KDC ).click();
}
public boolean isUseNativeSystemConfigurationSelected()
{
return bot.radio( USE_NATIVE_SYSTEM_CONFIG ).isSelected();
}
public void selectUseNativeSystemConfiguration()
{
bot.radio( USE_NATIVE_SYSTEM_CONFIG ).click();
}
public boolean isUseConfigurationFileSelected()
{
return bot.radio( USE_CONFIG_FILE ).isSelected();
}
public void selectUseConfigurationFile()
{
bot.radio( USE_CONFIG_FILE ).click();
}
public boolean isUseManualConfigurationSelected()
{
return bot.radio( USE_MANUAL_CONFIG ).isSelected();
}
public void selectUseManualConfiguration()
{
bot.radio( USE_MANUAL_CONFIG ).click();
}
public boolean isKerberosRealmEnabled()
{
return bot.textWithLabel( KERBEROS_REALM ).isEnabled();
}
public void typeKerberosRealm( String realm )
{
bot.textWithLabel( KERBEROS_REALM ).setText( realm );
}
public boolean isKdcHostEnabled()
{
return bot.textWithLabel( KDC_HOST ).isEnabled();
}
public void typeKdcHost( String host )
{
bot.textWithLabel( KDC_HOST ).setText( host );
}
public boolean isKdcPortEnabled()
{
return bot.textWithLabel( KDC_PORT ).isEnabled();
}
public void typeKdcPort( int port )
{
bot.textWithLabel( KDC_PORT ).setText( Integer.toString( port ) );
}
public boolean isGetBaseDnsFromRootDseEnabled()
{
return bot.checkBox( GET_BASE_DNS_FROM_ROOT_DSE ).isEnabled();
}
public boolean isGetBaseDnsFromRootDseSelected()
{
return bot.checkBox( GET_BASE_DNS_FROM_ROOT_DSE ).isChecked();
}
public void selectGetBaseDnsFromRootDse()
{
bot.checkBox( GET_BASE_DNS_FROM_ROOT_DSE ).select();
}
public void deselectGetBaseDnsFromRootDse()
{
bot.checkBox( GET_BASE_DNS_FROM_ROOT_DSE ).deselect();
}
public boolean isBaseDnEnabled()
{
return bot.comboBoxWithLabel( BASE_DN ).isEnabled();
}
public void typeBaseDn( String baseDn )
{
SWTBotCombo dnCombo = bot.comboBoxWithLabel( BASE_DN );
dnCombo.setText( baseDn );
}
public boolean isViewCertificateButtonEnabled()
{
return bot.button( VIEW_CERTIFICATE ).isEnabled();
}
public CertificateViewerDialogBot clickViewCertificateButton()
{
bot.button( VIEW_CERTIFICATE ).click();
return new CertificateViewerDialogBot();
}
public boolean isCheckNetworkParameterButtonEnabled()
{
return bot.button( CHECK_NETWORK_PARAMETER ).isEnabled();
}
/**
* Clicks the "check network parameter" button.
*
* @return null if the OK dialog pops up, the error message if the error dialog pops up
*/
public CheckResponse clickCheckNetworkParameterButton()
{
activate();
return clickCheckButton( CHECK_NETWORK_PARAMETER, CHECK_NETWORK_PARAMETER );
}
/**
* Clicks the "check network parameter" button.
*/
public CertificateTrustDialogBot clickCheckNetworkParameterButtonExpectingCertificateTrustDialog()
{
bot.button( CHECK_NETWORK_PARAMETER ).click();
bot.shell( CERTIFICATE_TRUST );
return new CertificateTrustDialogBot();
}
/**
* Clicks the "check authentication" button.
*
* @return null if the OK dialog pops up, the error message if the error dialog pops up
*/
public String clickCheckAuthenticationButton()
{
CheckResponse checkResponse = clickCheckButton( CHECK_AUTHENTICATION, CHECK_AUTHENTICATION );
return checkResponse.isError() ? checkResponse.getMessage() : null;
}
/**
* Clicks the "check authentication" button.
*/
public CertificateTrustDialogBot clickCheckAuthenticationButtonExpectingCertificateTrustDialog()
{
bot.button( CHECK_AUTHENTICATION ).click();
bot.shell( CERTIFICATE_TRUST );
return new CertificateTrustDialogBot();
}
public boolean isNoEncryptionSelected()
{
SWTBotCombo encMethodCombo = bot.comboBoxWithLabel( ENCRYPTION_METHOD );
return NO_ENCRYPTION.equals( encMethodCombo.selection() );
}
public void selectNoEncryption()
{
SWTBotCombo encMethodCombo = bot.comboBoxWithLabel( ENCRYPTION_METHOD );
encMethodCombo.setSelection( NO_ENCRYPTION );
}
public boolean isStartTlsEncryptionSelected()
{
SWTBotCombo encMethodCombo = bot.comboBoxWithLabel( ENCRYPTION_METHOD );
return START_TLS_ENCRYPTION.equals( encMethodCombo.selection() );
}
public void selectStartTlsEncryption()
{
SWTBotCombo encMethodCombo = bot.comboBoxWithLabel( ENCRYPTION_METHOD );
encMethodCombo.setSelection( START_TLS_ENCRYPTION );
}
public boolean isLdapsEncryptionSelected()
{
SWTBotCombo encMethodCombo = bot.comboBoxWithLabel( ENCRYPTION_METHOD );
return LDAPS_ENCRYPTION.equals( encMethodCombo.selection() );
}
public void selectLdapsEncryption()
{
SWTBotCombo encMethodCombo = bot.comboBoxWithLabel( ENCRYPTION_METHOD );
encMethodCombo.setSelection( LDAPS_ENCRYPTION );
}
}