You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2008/06/14 17:18:11 UTC

svn commit: r667813 - in /directory/studio/trunk/test-integration-ui: ./ resources/test-plugins/ src/main/java/org/apache/directory/studio/test/integration/ui/ src/main/resources/ src/main/resources/org/ src/main/resources/org/apache/ src/main/resource...

Author: seelmann
Date: Sat Jun 14 08:18:10 2008
New Revision: 667813

URL: http://svn.apache.org/viewvc?rev=667813&view=rev
Log:
o Updated to SWTBot 1.2.0-dev
o Fixed UI integration tests, we need the full org.eclipse.ui.ide plugin including the Resource perspective
o Reorganized tests
o Added RenameEntryDialog test for DIRSTUDIO-318


Added:
    directory/studio/trunk/test-integration-ui/resources/test-plugins/net.sf.swtbot.eclipse.finder_1.2.0.721-dev.jar   (with props)
    directory/studio/trunk/test-integration-ui/resources/test-plugins/net.sf.swtbot.finder_1.2.0.721-dev.jar   (with props)
    directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/RenameEntryDialogTest.java
    directory/studio/trunk/test-integration-ui/src/main/resources/
    directory/studio/trunk/test-integration-ui/src/main/resources/org/
    directory/studio/trunk/test-integration-ui/src/main/resources/org/apache/
    directory/studio/trunk/test-integration-ui/src/main/resources/org/apache/directory/
    directory/studio/trunk/test-integration-ui/src/main/resources/org/apache/directory/studio/
    directory/studio/trunk/test-integration-ui/src/main/resources/org/apache/directory/studio/test/
    directory/studio/trunk/test-integration-ui/src/main/resources/org/apache/directory/studio/test/integration/
    directory/studio/trunk/test-integration-ui/src/main/resources/org/apache/directory/studio/test/integration/ui/
    directory/studio/trunk/test-integration-ui/src/main/resources/org/apache/directory/studio/test/integration/ui/RenameEntryDialogTest.ldif
Removed:
    directory/studio/trunk/test-integration-ui/resources/test-plugins/net.sf.swtbot.eclipse.finder_1.0.0.574.jar
    directory/studio/trunk/test-integration-ui/resources/test-plugins/net.sf.swtbot.finder_1.0.0.574.jar
Modified:
    directory/studio/trunk/test-integration-ui/pom.xml
    directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/AutomatedSuite.java
    directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/NewConnectionWizardTest.java
    directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/NewEntryWizardTest.java
    directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/SWTBotUtils.java

Modified: directory/studio/trunk/test-integration-ui/pom.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/test-integration-ui/pom.xml?rev=667813&r1=667812&r2=667813&view=diff
==============================================================================
--- directory/studio/trunk/test-integration-ui/pom.xml (original)
+++ directory/studio/trunk/test-integration-ui/pom.xml Sat Jun 14 08:18:10 2008
@@ -144,6 +144,12 @@
                     <copy todir="target/test-sandbox">
                       <fileset dir="../target/distributions">
                         <include name="ApacheDirectoryStudio-*/**" />
+                        <!-- 
+                          To run the tests we need the full org.eclipse.ui.ide plugins 
+                          including the Resouce perspective, so we can't use the 
+                          adapted studio plugin.
+                        -->
+                        <exclude name="**/*org.eclipse.ui.ide*"/>
                       </fileset>
                       <regexpmapper from="${integration-regexp}" to="\2"/>
                     </copy>
@@ -179,6 +185,8 @@
                         <include name="org.eclipse.ui.cheatsheets_*.jar" />
                         <include name="org.eclipse.ui.console_*.jar" />
                         <include name="org.eclipse.ui.externaltools_*.jar" />
+                        <include name="org.eclipse.ui.ide_*.jar" />
+                        <include name="org.eclipse.ui.ide.application_*.jar" />
                         <include name="org.eclipse.ui.navigator_*.jar" />
                         <include name="org.eclipse.ui.navigator.resources_*.jar" />
                         <include name="org.eclipse.ui.net_*.jar" />

Added: directory/studio/trunk/test-integration-ui/resources/test-plugins/net.sf.swtbot.eclipse.finder_1.2.0.721-dev.jar
URL: http://svn.apache.org/viewvc/directory/studio/trunk/test-integration-ui/resources/test-plugins/net.sf.swtbot.eclipse.finder_1.2.0.721-dev.jar?rev=667813&view=auto
==============================================================================
Binary file - no diff available.

Propchange: directory/studio/trunk/test-integration-ui/resources/test-plugins/net.sf.swtbot.eclipse.finder_1.2.0.721-dev.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/studio/trunk/test-integration-ui/resources/test-plugins/net.sf.swtbot.finder_1.2.0.721-dev.jar
URL: http://svn.apache.org/viewvc/directory/studio/trunk/test-integration-ui/resources/test-plugins/net.sf.swtbot.finder_1.2.0.721-dev.jar?rev=667813&view=auto
==============================================================================
Binary file - no diff available.

Propchange: directory/studio/trunk/test-integration-ui/resources/test-plugins/net.sf.swtbot.finder_1.2.0.721-dev.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/AutomatedSuite.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/AutomatedSuite.java?rev=667813&r1=667812&r2=667813&view=diff
==============================================================================
--- directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/AutomatedSuite.java (original)
+++ directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/AutomatedSuite.java Sat Jun 14 08:18:10 2008
@@ -44,6 +44,7 @@
     {
         addTest( new TestSuite( NewConnectionWizardTest.class ) );
         addTest( new TestSuite( NewEntryWizardTest.class ) );
+        addTest( new TestSuite( RenameEntryDialogTest.class ) );
     }
 
 }
\ No newline at end of file

Modified: directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/NewConnectionWizardTest.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/NewConnectionWizardTest.java?rev=667813&r1=667812&r2=667813&view=diff
==============================================================================
--- directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/NewConnectionWizardTest.java (original)
+++ directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/NewConnectionWizardTest.java Sat Jun 14 08:18:10 2008
@@ -56,14 +56,8 @@
 
     protected void tearDown() throws Exception
     {
+        SWTBotUtils.deleteTestConnections();
         bot = null;
-        
-        // clear all created connections
-        ConnectionManager connectionManager = ConnectionCorePlugin.getDefault().getConnectionManager();
-        for( Connection connection : connectionManager.getConnections() )
-        {
-            connectionManager.removeConnection( connection );
-        }
         super.tearDown();
     }
 

Modified: directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/NewEntryWizardTest.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/NewEntryWizardTest.java?rev=667813&r1=667812&r2=667813&view=diff
==============================================================================
--- directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/NewEntryWizardTest.java (original)
+++ directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/NewEntryWizardTest.java Sat Jun 14 08:18:10 2008
@@ -29,14 +29,6 @@
 import net.sf.swtbot.widgets.SWTBotTree;
 
 import org.apache.directory.server.unit.AbstractServerTest;
-import org.apache.directory.studio.connection.core.Connection;
-import org.apache.directory.studio.connection.core.ConnectionCorePlugin;
-import org.apache.directory.studio.connection.core.ConnectionFolder;
-import org.apache.directory.studio.connection.core.ConnectionFolderManager;
-import org.apache.directory.studio.connection.core.ConnectionManager;
-import org.apache.directory.studio.connection.core.ConnectionParameter;
-import org.apache.directory.studio.connection.core.ConnectionParameter.AuthenticationMethod;
-import org.apache.directory.studio.connection.core.ConnectionParameter.EncryptionMethod;
 
 
 /**
@@ -55,14 +47,14 @@
         super.setUp();
         bot = new SWTEclipseBot();
         SWTBotUtils.openLdapPerspective( bot );
-        createConnection();
+        SWTBotUtils.createTestConnection( bot, "NewEntryWizardTest", ldapServer.getIpPort() );
     }
 
 
     protected void tearDown() throws Exception
     {
+        SWTBotUtils.deleteTestConnections();
         bot = null;
-        deleteConnection();
         super.tearDown();
     }
 
@@ -75,7 +67,7 @@
     public void testCreateOrganizationEntry() throws Exception
     {
         final SWTBotTree browserTree = SWTBotUtils.getLdapBrowserTree( bot );
-        SWTBotUtils.selectNode( browserTree, "DIT", "Root DSE", "ou=system" );
+        SWTBotUtils.selectNode( bot, browserTree, "DIT", "Root DSE", "ou=system" );
 
         // open "New Entry" wizard
         SWTBotMenu contextMenu = browserTree.contextMenu( "New Entry..." );
@@ -140,7 +132,7 @@
     public void testCreatePersonEntry() throws Exception
     {
         final SWTBotTree browserTree = SWTBotUtils.getLdapBrowserTree( bot );
-        SWTBotUtils.selectNode( browserTree, "DIT", "Root DSE", "ou=system" );
+        SWTBotUtils.selectNode( bot, browserTree, "DIT", "Root DSE", "ou=system" );
 
         // open "New Entry" wizard
         SWTBotMenu contextMenu = browserTree.contextMenu( "New Entry..." );
@@ -181,7 +173,8 @@
         SWTBotTree tree = bot.tree( 0 );
         tree.select( "sn" );
         bot.text( "" ).setText( "test" );
-
+        tree.select( "cn" );
+        
         // TODO: with SWTBot 1.2 we could use the tree.click() method! 
         // workaround to apply the new value 
         bot.button( "< Back" ).click();
@@ -237,7 +230,7 @@
 
     private void createEntry( final SWTBotTree browserTree, final String name ) throws Exception
     {
-        SWTBotUtils.selectNode( browserTree, "DIT", "Root DSE", "ou=system" );
+        SWTBotUtils.selectNode( bot, browserTree, "DIT", "Root DSE", "ou=system" );
 
         SWTBotMenu contextMenu = browserTree.contextMenu( "New Entry..." );
         contextMenu.click();
@@ -287,50 +280,4 @@
         } );
     }
 
-
-    /**
-     * Creates the test connection.
-     * 
-     * @throws Exception the exception
-     */
-    private void createConnection() throws Exception
-    {
-        SWTBotTree connectionsTree = SWTBotUtils.getConnectionsTree( bot );
-
-        ConnectionManager connectionManager = ConnectionCorePlugin.getDefault().getConnectionManager();
-        ConnectionParameter connectionParameter = new ConnectionParameter();
-        connectionParameter.setName( "NewEntryWizardTest" );
-        connectionParameter.setHost( "localhost" );
-        connectionParameter.setPort( ldapServer.getIpPort() );
-        connectionParameter.setEncryptionMethod( EncryptionMethod.NONE );
-        connectionParameter.setAuthMethod( AuthenticationMethod.SIMPLE );
-        connectionParameter.setBindPrincipal( "uid=admin,ou=system" );
-        connectionParameter.setBindPassword( "secret" );
-        Connection connection = new Connection( connectionParameter );
-        connectionManager.addConnection( connection );
-
-        ConnectionFolderManager connectionFolderManager = ConnectionCorePlugin.getDefault()
-            .getConnectionFolderManager();
-        ConnectionFolder rootConnectionFolder = connectionFolderManager.getRootConnectionFolder();
-        rootConnectionFolder.addConnectionId( connection.getId() );
-        //new OpenConnectionsJob( connection ).execute();
-
-        connectionsTree.select( "NewEntryWizardTest" );
-
-        Thread.sleep( 1000 );
-    }
-
-
-    /**
-     * Deletes the test connection.
-     */
-    private void deleteConnection()
-    {
-        ConnectionManager connectionManager = ConnectionCorePlugin.getDefault().getConnectionManager();
-        for ( Connection connection : connectionManager.getConnections() )
-        {
-            connectionManager.removeConnection( connection );
-        }
-    }
-
 }

Added: directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/RenameEntryDialogTest.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/RenameEntryDialogTest.java?rev=667813&view=auto
==============================================================================
--- directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/RenameEntryDialogTest.java (added)
+++ directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/RenameEntryDialogTest.java Sat Jun 14 08:18:10 2008
@@ -0,0 +1,85 @@
+/*
+ *  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 net.sf.swtbot.eclipse.finder.SWTEclipseBot;
+import net.sf.swtbot.widgets.SWTBotMenu;
+import net.sf.swtbot.widgets.SWTBotTree;
+
+import org.apache.directory.server.unit.AbstractServerTest;
+
+
+/**
+ * Tests the rename entry dialog.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class RenameEntryDialogTest extends AbstractServerTest
+{
+    private SWTEclipseBot bot;
+
+
+    protected void setUp() throws Exception
+    {
+        super.setUp();
+        super.loadTestLdif( true );
+        bot = new SWTEclipseBot();
+        SWTBotUtils.openLdapPerspective( bot );
+        SWTBotUtils.createTestConnection( bot, "RenameEntryDialogTest", ldapServer.getIpPort() );
+    }
+
+
+    protected void tearDown() throws Exception
+    {
+        SWTBotUtils.deleteTestConnections();
+        bot = null;
+        super.tearDown();
+    }
+
+
+    /**
+     * Test for DIRSTUDIO-318.
+     * 
+     * Renames a multi-valued RDN by changing both RDN attributes.
+     * 
+     * @throws Exception the exception
+     */
+    public void testRenameMultiValuedRdn() throws Exception
+    {
+        final SWTBotTree browserTree = SWTBotUtils.getLdapBrowserTree( bot );
+
+        SWTBotUtils.selectNode( bot, browserTree, "DIT", "Root DSE", "ou=system", "ou=users",
+            "cn=Barbara Jensen+uid=bjensen" );
+
+        SWTBotMenu contextMenu = browserTree.contextMenu( "Rename Entry..." );
+        contextMenu.click();
+
+        bot.text( "Barbara Jensen" ).setText( "Babs Jensen" );
+        bot.text( "bjensen" ).setText( "babsjens" );
+        bot.button( "OK" ).click();
+
+        SWTBotUtils.selectNode( bot, browserTree, "DIT", "Root DSE", "ou=system", "ou=users",
+            "cn=Babs Jensen+uid=babsjens" );
+    }
+
+}

Modified: directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/SWTBotUtils.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/SWTBotUtils.java?rev=667813&r1=667812&r2=667813&view=diff
==============================================================================
--- directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/SWTBotUtils.java (original)
+++ directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/SWTBotUtils.java Sat Jun 14 08:18:10 2008
@@ -27,11 +27,22 @@
 
 import net.sf.swtbot.eclipse.finder.SWTEclipseBot;
 import net.sf.swtbot.eclipse.finder.widgets.SWTBotView;
+import net.sf.swtbot.wait.DefaultCondition;
+import net.sf.swtbot.widgets.SWTBotButton;
 import net.sf.swtbot.widgets.SWTBotMenu;
 import net.sf.swtbot.widgets.SWTBotTable;
 import net.sf.swtbot.widgets.SWTBotTree;
 import net.sf.swtbot.widgets.SWTBotTreeItem;
 
+import org.apache.directory.studio.connection.core.Connection;
+import org.apache.directory.studio.connection.core.ConnectionCorePlugin;
+import org.apache.directory.studio.connection.core.ConnectionFolder;
+import org.apache.directory.studio.connection.core.ConnectionFolderManager;
+import org.apache.directory.studio.connection.core.ConnectionManager;
+import org.apache.directory.studio.connection.core.ConnectionParameter;
+import org.apache.directory.studio.connection.core.ConnectionParameter.AuthenticationMethod;
+import org.apache.directory.studio.connection.core.ConnectionParameter.EncryptionMethod;
+
 
 /**
  * Helpers for using SWTBot.
@@ -62,6 +73,56 @@
         // select "LDAP" perspective
         SWTBotTable table = bot.table();
         table.select( "LDAP" );
+
+        // press "OK"
+        SWTBotButton okButton = bot.button( "OK" );
+        okButton.click();
+    }
+
+
+    /**
+     * Creates the test connection.
+     * 
+     * @throws Exception the exception
+     */
+    public static void createTestConnection( SWTEclipseBot bot, String name, int port ) throws Exception
+    {
+        SWTBotTree connectionsTree = getConnectionsTree( bot );
+
+        ConnectionManager connectionManager = ConnectionCorePlugin.getDefault().getConnectionManager();
+        ConnectionParameter connectionParameter = new ConnectionParameter();
+        connectionParameter.setName( name );
+        connectionParameter.setHost( "localhost" );
+        connectionParameter.setPort( port );
+        connectionParameter.setEncryptionMethod( EncryptionMethod.NONE );
+        connectionParameter.setAuthMethod( AuthenticationMethod.SIMPLE );
+        connectionParameter.setBindPrincipal( "uid=admin,ou=system" );
+        connectionParameter.setBindPassword( "secret" );
+        Connection connection = new Connection( connectionParameter );
+        connectionManager.addConnection( connection );
+
+        ConnectionFolderManager connectionFolderManager = ConnectionCorePlugin.getDefault()
+            .getConnectionFolderManager();
+        ConnectionFolder rootConnectionFolder = connectionFolderManager.getRootConnectionFolder();
+        rootConnectionFolder.addConnectionId( connection.getId() );
+
+        connectionsTree.select( name );
+        //new OpenConnectionsJob( connection ).execute();
+
+        Thread.sleep( 1000 );
+    }
+
+
+    /**
+     * Deletes the test connection.
+     */
+    public static void deleteTestConnections()
+    {
+        ConnectionManager connectionManager = ConnectionCorePlugin.getDefault().getConnectionManager();
+        for ( Connection connection : connectionManager.getConnections() )
+        {
+            connectionManager.removeConnection( connection );
+        }
     }
 
 
@@ -83,7 +144,8 @@
     }
 
 
-    public static SWTBotTreeItem selectNode( SWTBotTree browserTree, String... path ) throws Exception
+    public static SWTBotTreeItem selectNode( SWTEclipseBot bot, SWTBotTree browserTree, String... path )
+        throws Exception
     {
         List<String> pathList = new ArrayList<String>( Arrays.asList( path ) );
         String currentPath = pathList.remove( 0 );
@@ -94,7 +156,7 @@
 
         if ( !pathList.isEmpty() )
         {
-            return selectNode( child, pathList );
+            return selectNode( bot, child, pathList );
         }
         else
         {
@@ -103,25 +165,43 @@
     }
 
 
-    public static SWTBotTreeItem selectNode( SWTBotTreeItem item, List<String> pathList ) throws Exception
+    public static SWTBotTreeItem selectNode( SWTEclipseBot bot, final SWTBotTreeItem item, List<String> pathList )
+        throws Exception
     {
-        String currentPath = pathList.remove( 0 );
+        final String[] currentPath = new String[]
+            { pathList.remove( 0 ) };
 
-        List<String> nodes = item.getNodes();
-        for ( String node : nodes )
+        // wait till node becomes visible
+        bot.waitUntil( new DefaultCondition()
         {
-            if ( node.toUpperCase().startsWith( currentPath.toUpperCase() ) )
+            public boolean test() throws Exception
             {
-                currentPath = node;
+                List<String> nodes = item.getNodes();
+                for ( String node : nodes )
+                {
+                    if ( node.toUpperCase().startsWith( currentPath[0].toUpperCase() ) )
+                    {
+                        currentPath[0] = node;
+                        return true;
+                    }
+                }
+                return false;
             }
-        }
-        SWTBotTreeItem child = item.expandNode( currentPath );
+
+
+            public String getFailureMessage()
+            {
+                return "Could not find widget";
+            }
+        } );
+
+        SWTBotTreeItem child = item.expandNode( currentPath[0] );
         child.select();
         child.expand();
 
         if ( !pathList.isEmpty() )
         {
-            return selectNode( child, pathList );
+            return selectNode( bot, child, pathList );
         }
         else
         {

Added: directory/studio/trunk/test-integration-ui/src/main/resources/org/apache/directory/studio/test/integration/ui/RenameEntryDialogTest.ldif
URL: http://svn.apache.org/viewvc/directory/studio/trunk/test-integration-ui/src/main/resources/org/apache/directory/studio/test/integration/ui/RenameEntryDialogTest.ldif?rev=667813&view=auto
==============================================================================
--- directory/studio/trunk/test-integration-ui/src/main/resources/org/apache/directory/studio/test/integration/ui/RenameEntryDialogTest.ldif (added)
+++ directory/studio/trunk/test-integration-ui/src/main/resources/org/apache/directory/studio/test/integration/ui/RenameEntryDialogTest.ldif Sat Jun 14 08:18:10 2008
@@ -0,0 +1,10 @@
+dn: cn=Barbara Jensen+uid=bjensen,ou=users,ou=system
+objectClass: inetOrgPerson
+objectClass: organizationalPerson
+objectClass: person
+objectClass: top
+cn: Barbara Jensen
+sn: Jensen
+givenName: Barbara
+uid: bjensen
+