blob: de48835ccd251e3ed17a1c5b32229172fbd08f12 [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.studio.ldapbrowser.core.BrowserCoreMessages;
import org.apache.directory.studio.test.integration.ui.utils.ContextMenuHelper;
import org.apache.directory.studio.test.integration.ui.utils.JobWatcher;
import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
public class BrowserViewBot
{
private SWTWorkbenchBot bot;
private BrowserWidgetBot browserBot;
public BrowserViewBot()
{
bot = new SWTWorkbenchBot();
SWTBotView view = bot.viewByTitle( "LDAP Browser" );
view.show();
browserBot = new BrowserWidgetBot( view.bot() );
}
public String getSelectedEntry()
{
return browserBot.getSelectedEntry();
}
public boolean existsEntry( String... path )
{
return browserBot.existsEntry( path );
}
public void selectEntry( String... path )
{
boolean wait = !path[path.length - 1].startsWith( "Quick Search" )
&& !path[path.length - 1].equals( "No Results" )
&& !"Searches".equals( path[0] );
browserBot.selectEntry( wait, path );
}
public void selectChildrenOfEntry( String[] children, String... path )
{
browserBot.selectChildrenOfEntry( children, path );
}
public ReferralDialogBot selectEntryExpectingReferralDialog( String... path )
{
return browserBot.selectEntryExpectingReferralDialog( path );
}
public void expandEntry( String... path )
{
browserBot.expandEntry( path );
}
public void waitForEntry( String... path )
{
browserBot.waitForEntry( path );
}
public ReferralDialogBot expandEntryExpectingReferralDialog( String... path )
{
return browserBot.expandEntryExpectingReferralDialog( path );
}
public NewEntryWizardBot openNewEntryWizard()
{
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "New", "New Entry..." );
return new NewEntryWizardBot();
}
public SearchDialogBot openSearchDialog()
{
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "New", "New Search..." );
return new SearchDialogBot();
}
public RenameEntryDialogBot openRenameDialog()
{
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "Rename Entry..." );
return new RenameEntryDialogBot();
}
public MoveEntriesDialogBot openMoveEntryDialog()
{
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "Move Entry..." );
return new MoveEntriesDialogBot();
}
public DeleteDialogBot openDeleteDialog()
{
if ( browserBot.getTree().selectionCount() == 1 )
{
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "Delete Entry" );
return new DeleteDialogBot( DeleteDialogBot.DELETE_ENTRY_TITLE );
}
else
{
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "Delete Entries" );
return new DeleteDialogBot( DeleteDialogBot.DELETE_ENTRIES_TITLE );
}
}
public ExportWizardBot openExportLdifWizard()
{
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "Export", "LDIF Export..." );
return new ExportWizardBot( ExportWizardBot.EXPORT_LDIF_TITLE );
}
public ExportWizardBot openExportDsmlWizard()
{
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "Export", "DSML Export..." );
return new ExportWizardBot( ExportWizardBot.EXPORT_DSML_TITLE );
}
public ExportWizardBot openExportCsvWizard()
{
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "Export", "CSV Export..." );
return new ExportWizardBot( ExportWizardBot.EXPORT_CSV_TITLE );
}
public ImportWizardBot openImportLdifWizard()
{
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "Import", "LDIF Import..." );
return new ImportWizardBot( ImportWizardBot.IMPORT_LDIF_TITLE );
}
public ImportWizardBot openImportDsmlWizard()
{
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "Import", "DSML Import..." );
return new ImportWizardBot( ImportWizardBot.IMPORT_DSML_TITLE );
}
public void refresh()
{
JobWatcher watcher = new JobWatcher( BrowserCoreMessages.jobs__init_entries_title_subonly );
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "Reload Entry" );
watcher.waitUntilDone();
}
public void copy()
{
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "Copy" );
}
public void paste()
{
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "Paste" );
}
public void pasteEntry()
{
pasteEntries( 1 );
}
public void pasteEntries( int numEntries )
{
if ( numEntries > 1 )
{
JobWatcher watcher = new JobWatcher( BrowserCoreMessages.jobs__copy_entries_name_n );
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "Paste" );
watcher.waitUntilDone();
}
else
{
JobWatcher watcher = new JobWatcher( BrowserCoreMessages.jobs__copy_entries_name_1 );
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "Paste" );
watcher.waitUntilDone();
}
}
public SelectCopyDepthDialogBot pasteEntriesExpectingSelectCopyDepthDialog( int numEntries )
{
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "Paste" );
return new SelectCopyDepthDialogBot( numEntries );
}
public SelectCopyStrategyBot pasteEntriesExpectingSelectCopyStrategy()
{
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "Paste" );
return new SelectCopyStrategyBot();
}
public SearchPropertiesDialogBot pasteSearch()
{
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "Paste" );
return new SearchPropertiesDialogBot();
}
public PasswordModifyExtendedOperationDialogBot openPasswordModifyExtendedOperationDialog()
{
ContextMenuHelper.clickContextMenu( browserBot.getTree(), "Extended Operations", "Password Modify..." );
return new PasswordModifyExtendedOperationDialogBot();
}
public void typeQuickSearchAttributeType( String attributeType )
{
bot.comboBox( 0 ).setText( attributeType );
}
public void typeQuickSearchValue( String value )
{
bot.comboBox( 2 ).setText( value );
}
public void clickRunQuickSearchButton()
{
bot.buttonWithTooltip( "Run Quick Search" ).click();
}
public boolean isQuickSearchEnabled()
{
return bot.comboBox( 0 ).isEnabled();
}
public void waitUntilEntryIsSelected( String label )
{
browserBot.waitUntilEntryIsSelected( label );
}
}