*/
@Test
public void testCopyPasteSearchBetweenConnections() throws Exception
{
BrowserConnectionManager browserConnectionManager = BrowserCorePlugin.getDefault().getConnectionManager();
IBrowserConnection browserConnection1 = browserConnectionManager.getBrowserConnectionByName( "SearchTest1" );
IBrowserConnection browserConnection2 = browserConnectionManager.getBrowserConnectionByName( "SearchTest2" );
assertEquals( 0, browserConnection1.getSearchManager().getSearches().size() );
assertEquals( 0, browserConnection2.getSearchManager().getSearches().size() );
SWTBotTree connectionsTree = SWTBotUtils.getConnectionsTree( bot );
SWTBotTree browserTree = SWTBotUtils.getLdapBrowserTree( bot );
// create a search for in connection 1
connectionsTree.select( "SearchTest1" );
SWTBotUtils.selectEntry( bot, browserTree, false, "DIT", "Root DSE", "ou=system" );
ContextMenuHelper.clickContextMenu( browserTree, "New", "New Search..." );
bot.shell( "Search" );
//SWTBotAssert.assertEnabled( bot.textWithLabel( "Connection:" ) );
//SWTBotAssert.assertText( "SearchTest1", bot.textWithLabel( "Connection:" ) );
bot.textWithLabel( "Search Name:" ).setText( "Search all persons" );
bot.comboBoxWithLabel( "Filter:" ).setText( "(objectClass=person)" );
//bot.radioWithLabelInGroup( "Subtree", "Scope" ).click();
bot.button( "Search" ).click();
SWTBotUtils.selectEntry( bot, browserTree, false, "Searches", "Search all persons" );
// assert browser connection in searches
assertEquals( 1, browserConnection1.getSearchManager().getSearches().size() );
assertEquals( browserConnection1, browserConnection1.getSearchManager().getSearches().get( 0 )
.getBrowserConnection() );
assertEquals( 0, browserConnection2.getSearchManager().getSearches().size() );
// copy/paste the created search from connection 1 to connection 2
ContextMenuHelper.clickContextMenu( browserTree, "Copy Search" );
connectionsTree.select( "SearchTest2" );
SWTBotUtils.selectEntry( bot, browserTree, false, "Searches" );
ContextMenuHelper.clickContextMenu( browserTree, "Paste Search" );
bot.shell( "Properties for Search all persons" );
//SWTBotAssert.assertNotEnabled( bot.textWithLabel( "Connection:" ) );
//SWTBotAssert.assertText( "SearchTest2", bot.textWithLabel( "Connection:" ) );
bot.button( "Cancel" ).click();
// assert browser connection in searches
assertEquals( 1, browserConnection1.getSearchManager().getSearches().size() );
assertEquals( browserConnection1, browserConnection1.getSearchManager().getSearches().get( 0 )
.getBrowserConnection() );
assertEquals( 1, browserConnection2.getSearchManager().getSearches().size() );
assertEquals( browserConnection2, browserConnection2.getSearchManager().getSearches().get( 0 )
.getBrowserConnection() );
}