blob: ca7069e9bc4c8b48fc4a6cd6081046efae4e7815 [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;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
import org.apache.directory.studio.test.integration.ui.bots.ExportWizardBot;
import org.apache.directory.studio.test.integration.ui.bots.ImportWizardBot;
import org.apache.directory.studio.test.integration.ui.bots.NewWizardBot;
import org.apache.directory.studio.test.integration.ui.bots.PreferencesBot;
import org.apache.directory.studio.test.integration.ui.bots.ShowViewsBot;
import org.apache.directory.studio.test.integration.ui.bots.StudioBot;
import org.apache.directory.studio.test.integration.ui.bots.utils.Assertions;
import org.apache.directory.studio.test.integration.ui.bots.utils.FrameworkRunnerWithScreenshotCaptureListener;
import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
/**
* General tests of the Studio RCP application: layout of perspectives, visible menu items, etc.
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$, $Date$
*/
@RunWith(FrameworkRunnerWithScreenshotCaptureListener.class)
public class RcpAppTest extends AbstractLdapTestUnit
{
private SWTWorkbenchBot bot;
private StudioBot studioBot;
@Before
public void setUp() throws Exception
{
bot = new SWTWorkbenchBot();
studioBot = new StudioBot();
studioBot.resetLdapPerspective();
}
@After
public void tearDown() throws Exception
{
Assertions.genericTearDownAssertions();
}
/**
* Verify views in LDAP perspective.
*/
@Test
public void testLdapPerspectiveViews() throws Exception
{
studioBot.resetLdapPerspective();
assertNotNull( bot.viewByTitle( "LDAP Browser" ) );
assertNotNull( bot.viewByTitle( "LDAP Servers" ) );
assertNotNull( bot.viewByTitle( "Connections" ) );
assertNotNull( bot.viewByTitle( "Outline" ) );
assertNotNull( bot.viewByTitle( "Progress" ) );
assertNotNull( bot.viewByTitle( "Modification Logs" ) );
assertNotNull( bot.viewByTitle( "Search Logs" ) );
assertNotNull( bot.viewByTitle( "Error Log" ) );
}
/**
* Verify views in Schema Editor perspective.
*/
@Test
public void testSchemaEditorPerspectiveViews() throws Exception
{
studioBot.resetSchemaPerspective();
assertNotNull( bot.viewByTitle( "Schema" ) );
assertNotNull( bot.viewByTitle( "Hierarchy" ) );
assertNotNull( bot.viewByTitle( "Projects" ) );
assertNotNull( bot.viewByTitle( "Problems" ) );
assertNotNull( bot.viewByTitle( "Search" ) );
}
/**
* Verify visible items in 'Show Views' dialog.
*/
@Test
public void testVisibleItemsInOpenViewsDialog() throws Exception
{
ShowViewsBot showViews = studioBot.openShowViews();
assertTrue( showViews.existsView( "General", "Console" ) );
assertTrue( showViews.existsView( "General", "Console" ) );
assertTrue( showViews.existsView( "General", "Error Log" ) );
assertTrue( showViews.existsView( "General", "Outline" ) );
assertTrue( showViews.existsView( "General", "Progress" ) );
assertTrue( showViews.existsView( "Help", "Help" ) );
assertTrue( showViews.existsView( "LDAP Browser", "Connections" ) );
assertTrue( showViews.existsView( "LDAP Browser", "LDAP Browser" ) );
assertTrue( showViews.existsView( "LDAP Browser", "Modification Logs" ) );
assertTrue( showViews.existsView( "LDAP Browser", "Search Logs" ) );
assertTrue( showViews.existsView( "LDAP Servers", "LDAP Servers" ) );
assertTrue( showViews.existsView( "Schema Editor", "Hierarchy" ) );
assertTrue( showViews.existsView( "Schema Editor", "Problems" ) );
assertTrue( showViews.existsView( "Schema Editor", "Projects" ) );
assertTrue( showViews.existsView( "Schema Editor", "Schema" ) );
assertTrue( showViews.existsView( "Schema Editor", "Search" ) );
showViews.clickCancelButton();
}
/**
* Verify hidden items in 'Show Views' dialog. Many unwanted views are contributed
* by org.eclipse.* plugins, we configured to hide them in rcp/plugin.xml.
*/
@Test
public void testHiddenItemsInOpenViewsDialog() throws Exception
{
ShowViewsBot showViews = studioBot.openShowViews();
assertFalse( showViews.existsView( "General", "Bookmarks" ) );
assertFalse( showViews.existsView( "General", "Problems" ) );
assertFalse( showViews.existsView( "General", "Navigator" ) );
assertFalse( showViews.existsView( "General", "Project Explorer" ) );
assertFalse( showViews.existsView( "General", "Properties" ) );
showViews.clickCancelButton();
}
/**
* Verify visible items in 'New' wizard.
*/
@Test
public void testVisibleItemsInNewWizard() throws Exception
{
NewWizardBot newWizard = studioBot.openNewWizard();
assertTrue( newWizard.existsWizard( "ApacheDS", "ApacheDS 2.0 Configuration File" ) );
assertTrue( newWizard.existsWizard( "LDAP Browser", "LDAP Connection" ) );
assertTrue( newWizard.existsWizard( "LDAP Browser", "LDAP Entry" ) );
assertTrue( newWizard.existsWizard( "LDAP Browser", "LDAP Search" ) );
assertTrue( newWizard.existsWizard( "LDAP Browser", "LDAP Bookmark" ) );
assertTrue( newWizard.existsWizard( "LDAP Browser", "LDIF File" ) );
assertTrue( newWizard.existsWizard( "Schema Editor", "New Schema Project" ) );
assertTrue( newWizard.existsWizard( "Schema Editor", "New Schema" ) );
assertTrue( newWizard.existsWizard( "Schema Editor", "New Object Class" ) );
assertTrue( newWizard.existsWizard( "Schema Editor", "New Attribute Type" ) );
newWizard.clickCancelButton();
}
/**
* Verify hidden items in 'New' wizard. Many unwanted wizards are contributed
* by org.eclipse.* plugins, we configured to hide them in rcp/plugin.xml.
*/
@Test
public void testHiddenItemsInNewWizard() throws Exception
{
NewWizardBot newWizard = studioBot.openNewWizard();
assertFalse( newWizard.existsWizard( "General", "File" ) );
assertFalse( newWizard.existsWizard( "General", "Folder" ) );
assertFalse( newWizard.existsWizard( "General", "Project" ) );
newWizard.clickCancelButton();
}
/**
* Verify visible items in 'Export' wizard.
*/
@Test
public void testVisibleItemsInExportWizard() throws Exception
{
ExportWizardBot exportWizard = studioBot.openExportWizard();
assertTrue( exportWizard.existsWizard( "LDAP Browser", "LDAP to CSV" ) );
assertTrue( exportWizard.existsWizard( "LDAP Browser", "LDAP to DSML" ) );
assertTrue( exportWizard.existsWizard( "LDAP Browser", "LDAP to Excel" ) );
assertTrue( exportWizard.existsWizard( "LDAP Browser", "LDAP to LDIF" ) );
assertTrue( exportWizard.existsWizard( "LDAP Browser", "LDAP to ODF" ) );
assertTrue( exportWizard.existsWizard( "Schema Editor", "Schema Projects" ) );
assertTrue( exportWizard.existsWizard( "Schema Editor", "Schemas as OpenLDAP files" ) );
assertTrue( exportWizard.existsWizard( "Schema Editor", "Schemas as XML file(s)" ) );
assertTrue( exportWizard.existsWizard( "Schema Editor", "Schemas for ApacheDS" ) );
exportWizard.clickCancelButton();
}
/**
* Verify hidden items in 'Export' wizard. Many unwanted wizards are contributed
* by org.eclipse.* plugins, we configured to hide them in rcp/plugin.xml.
*/
@Test
public void testHiddenItemsInExportWizard() throws Exception
{
ExportWizardBot exportWizard = studioBot.openExportWizard();
assertFalse( exportWizard.existsWizard( "General", "Archive File" ) );
assertFalse( exportWizard.existsWizard( "General", "Filesystem" ) );
assertFalse( exportWizard.existsCategory( "Install" ) );
assertFalse( exportWizard.existsCategory( "Team" ) );
assertFalse( exportWizard.existsCategory( "Java" ) );
exportWizard.clickCancelButton();
}
/**
* Verify visible items in 'Import' wizard.
*/
@Test
public void testVisibleItemsInImportWizard() throws Exception
{
ImportWizardBot importWizard = studioBot.openImportWizard();
assertTrue( importWizard.existsWizard( "LDAP Browser", "DSML into LDAP" ) );
assertTrue( importWizard.existsWizard( "LDAP Browser", "LDIF into LDAP" ) );
assertTrue( importWizard.existsWizard( "Schema Editor", "Core schemas files" ) );
assertTrue( importWizard.existsWizard( "Schema Editor", "Schema Projects" ) );
assertTrue( importWizard.existsWizard( "Schema Editor", "Schemas from OpenLDAP files" ) );
assertTrue( importWizard.existsWizard( "Schema Editor", "Schemas from XML file(s)" ) );
importWizard.clickCancelButton();
}
/**
* Verify hidden items in 'Import' wizard. Many unwanted wizards are contributed
* by org.eclipse.* plugins, we configured to hide them in rcp/plugin.xml.
*/
@Test
public void testHiddenItemsInImportWizard() throws Exception
{
ImportWizardBot importWizard = studioBot.openImportWizard();
assertFalse( importWizard.existsWizard( "General", "Archive File" ) );
assertFalse( importWizard.existsWizard( "General", "Filesystem" ) );
assertFalse( importWizard.existsCategory( "Install" ) );
assertFalse( importWizard.existsCategory( "Team" ) );
assertFalse( importWizard.existsCategory( "Java" ) );
assertFalse( importWizard.existsCategory( "Maven" ) );
assertFalse( importWizard.existsCategory( "Git" ) );
assertFalse( importWizard.existsCategory( "CSV" ) );
importWizard.clickCancelButton();
}
/**
* Verify visible preference pages.
*/
@Test
public void testVisiblePreferencePages() throws Exception
{
PreferencesBot prefs = studioBot.openPreferences();
assertTrue( prefs.pageExists( "Apache Directory Studio" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "Connections" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "Connections", "Certificate Validation" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "Connections", "Passwords Keystore" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "LDAP Browser" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "LDAP Browser", "Attributes" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "LDAP Browser", "Attributes", "Binary Attributes" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "LDAP Browser", "Entry Editors" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "LDAP Browser", "Entry Editors", "Table Entry Editor" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "LDAP Browser", "Search Result Editor" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "LDAP Browser", "Text Formats" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "LDAP Browser", "Value Editors" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "LDAP Browser", "Views" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "LDAP Browser", "Views", "Browser View" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "LDAP Browser", "Views", "Modification Logs View" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "LDAP Browser", "Views", "Search Logs View" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "LDIF Editor" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "LDIF Editor", "Content Assist" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "LDIF Editor", "Syntax Coloring" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "LDIF Editor", "Templates" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "Schema Editor" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "Schema Editor", "Hierarchy View" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "Schema Editor", "Schema View" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "Schema Editor", "Search View" ) );
assertTrue( prefs.pageExists( "Apache Directory Studio", "Shutdown" ) );
assertTrue( prefs.pageExists( "General", "Appearance" ) );
assertTrue( prefs.pageExists( "General", "Appearance", "Text Editors" ) );
assertTrue( prefs.pageExists( "General", "Appearance", "Colors and Fonts" ) );
assertTrue( prefs.pageExists( "Help" ) );
assertTrue( prefs.pageExists( "Install/Update" ) );
prefs.clickCancelButton();
}
/**
* Verify hidden preference pages. Many unwanted preference pages are contributed
* by org.eclipse.* plugins, we configured to hide them in rcp/plugin.xml.
*
* Note: This test fails when running from Eclipse IDE and all workspace plugins
* are part of the target platform.
*/
@Test
public void testHiddenPreferencePages() throws Exception
{
PreferencesBot prefs = studioBot.openPreferences();
assertFalse( prefs.pageExists( "Team" ) );
assertFalse( prefs.pageExists( "Maven" ) );
assertFalse( prefs.pageExists( "Java" ) );
assertFalse( prefs.pageExists( "General", "Quick Search" ) );
assertFalse( prefs.pageExists( "General", "Network Connections" ) );
prefs.clickCancelButton();
}
}