You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2011/08/21 16:29:44 UTC

svn commit: r1159987 - in /chemistry/opencmis/trunk: chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/ chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tc...

Author: fmui
Date: Sun Aug 21 14:29:43 2011
New Revision: 1159987

URL: http://svn.apache.org/viewvc?rev=1159987&view=rev
Log:
TCK and Workbench Improvements

Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/CmisTest.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/CmisTestGroup.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractCmisTest.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractCmisTestGroup.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/report/CoreHtmlReport.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/report/TextReport.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/report/XmlReport.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/BasicsTestGroup.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RepositoryInfoTest.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RootFolderTest.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/SecurityTest.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/TypesTest.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CRUDTestGroup.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CreateAndDeleteDocumentTest.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CreateAndDeleteFolderTest.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/query/QuerySmokeTest.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/query/QueryTestGroup.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/CheckedOutTest.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/VersioningTestGroup.java
    chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientHelper.java
    chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TckDialog.java
    chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/Workbench.java
    chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/checks/SwingReport.java
    chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/AbstractDetailsTable.java

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/CmisTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/CmisTest.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/CmisTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/CmisTest.java Sun Aug 21 14:29:43 2011
@@ -37,6 +37,11 @@ public interface CmisTest {
     String getName();
 
     /**
+     * Returns the description of the test group.
+     */
+    String getDescription();
+    
+    /**
      * Runs the test.
      */
     void run() throws Exception;

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/CmisTestGroup.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/CmisTestGroup.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/CmisTestGroup.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/CmisTestGroup.java Sun Aug 21 14:29:43 2011
@@ -40,6 +40,11 @@ public interface CmisTestGroup {
      * Returns the name of the test group.
      */
     String getName();
+    
+    /**
+     * Returns the description of the test group.
+     */
+    String getDescription();
 
     /**
      * Returns the all tests in this group.

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractCmisTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractCmisTest.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractCmisTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractCmisTest.java Sun Aug 21 14:29:43 2011
@@ -39,6 +39,7 @@ public abstract class AbstractCmisTest i
     private Map<String, String> parameters;
     private AbstractCmisTestGroup group;
     private String name;
+    private String description;
     private boolean isEnabled = true;
     private List<CmisTestResult> results;
     private long time;
@@ -60,6 +61,14 @@ public abstract class AbstractCmisTest i
         this.name = name;
     }
 
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
     public void setGroup(AbstractCmisTestGroup group) {
         this.group = group;
     }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractCmisTestGroup.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractCmisTestGroup.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractCmisTestGroup.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractCmisTestGroup.java Sun Aug 21 14:29:43 2011
@@ -34,6 +34,7 @@ public abstract class AbstractCmisTestGr
 
     private Map<String, String> parameters;
     private String name;
+    private String description;
     private final List<CmisTest> tests = new ArrayList<CmisTest>();
     private boolean isEnabled = true;
     private CmisTestProgressMonitor progressMonitor;
@@ -54,6 +55,14 @@ public abstract class AbstractCmisTestGr
         this.name = name;
     }
 
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+    
     public List<CmisTest> getTests() {
         return tests;
     }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java Sun Aug 21 14:29:43 2011
@@ -559,6 +559,7 @@ public abstract class AbstractSessionTes
                     }
 
                     Document doc = (Document) object;
+                    DocumentTypeDefinition docType = (DocumentTypeDefinition) doc.getType();
                     if (doc.isVersionSeriesCheckedOut() != null) {
                         if (doc.isVersionSeriesCheckedOut()) {
                             f = createResult(WARNING, "Document is checked out and has CAN_CHECK_OUT allowable action!");
@@ -596,11 +597,25 @@ public abstract class AbstractSessionTes
                             f = createResult(FAILURE,
                                     "Document is not checked out and has CAN_CANCEL_CHECK_OUT allowable action!");
                             addResult(results, assertNotAllowableAction(object, Action.CAN_CANCEL_CHECK_OUT, null, f));
+
+                            // versionable check
+                            if (docType.isVersionable()) {
+                                if (Boolean.TRUE.equals(doc.isLatestVersion())) {
+                                    f = createResult(WARNING,
+                                            "Document is versionable and not checked but has no CAN_CHECK_OUT allowable action!");
+                                    addResult(results, assertAllowableAction(object, Action.CAN_CHECK_OUT, null, f));
+                                }
+                            } else {
+                                f = createResult(FAILURE,
+                                        "Document is not versionable but has CAN_CHECK_OUT allowable action!");
+                                addResult(results, assertNotAllowableAction(object, Action.CAN_CHECK_OUT, null, f));
+                            }
                         }
                     } else {
                         addResult(results, createResult(WARNING, "Property cmis:isVersionSeriesCheckedOut is not set!"));
                     }
 
+                    // immutable check
                     if (Boolean.TRUE.equals(doc.isImmutable())) {
                         f = createResult(FAILURE,
                                 "Document is immutable and has CAN_UPDATE_PROPERTIES allowable action!");

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/report/CoreHtmlReport.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/report/CoreHtmlReport.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/report/CoreHtmlReport.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/report/CoreHtmlReport.java Sun Aug 21 14:29:43 2011
@@ -85,18 +85,34 @@ public class CoreHtmlReport extends Abst
     }
 
     private void printGroupResults(CmisTestGroup group, Writer writer) throws IOException {
-        writer.write("\n<h3>" + escape(group.getName()) + "</h3>\n");
+        if (!group.isEnabled()) {
+            return;
+        }
+
+        writer.write("\n<hr>\n<h3>" + escape(group.getName()) + "</h3>\n");
+
+        if (group.getDescription() != null) {
+            writer.write("\n<p><i>" + escape(group.getDescription()) + "</i></p>\n");
+        }
 
         if (group.getTests() != null) {
             for (CmisTest test : group.getTests()) {
                 printTestResults(test, writer);
             }
-        }
+        }        
     }
 
     private void printTestResults(CmisTest test, Writer writer) throws IOException {
+        if (!test.isEnabled()) {
+            return;
+        }
+
         writer.write("\n<h4>" + escape(test.getName()) + " (" + test.getTime() + " ms)</h4>\n");
 
+        if (test.getDescription() != null) {
+            writer.write("\n<p><i>" + escape(test.getDescription()) + "</i></p>\n");
+        }
+
         if (test.getResults() != null) {
             for (CmisTestResult result : test.getResults()) {
                 writer.write("<div style=\"padding: 5px;\">\n");

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/report/TextReport.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/report/TextReport.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/report/TextReport.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/report/TextReport.java Sun Aug 21 14:29:43 2011
@@ -66,6 +66,10 @@ public class TextReport extends Abstract
     }
 
     private void printGroupResults(CmisTestGroup group, Writer writer) throws IOException {
+        if (!group.isEnabled()) {
+            return;
+        }
+
         writer.write("===============================================================" + NL);
         writer.write(group.getName() + NL);
         writer.write("===============================================================" + NL);
@@ -78,6 +82,10 @@ public class TextReport extends Abstract
     }
 
     private void printTestResults(CmisTest test, Writer writer) throws IOException {
+        if (!test.isEnabled()) {
+            return;
+        }
+
         writer.write("---------------------------------------------------------------" + NL);
         writer.write(test.getName() + " (" + test.getTime() + " ms)" + NL);
         writer.write("---------------------------------------------------------------" + NL + NL);

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/report/XmlReport.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/report/XmlReport.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/report/XmlReport.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/report/XmlReport.java Sun Aug 21 14:29:43 2011
@@ -91,6 +91,10 @@ public class XmlReport extends AbstractC
     }
 
     private void printGroupResults(CmisTestGroup group, XMLStreamWriter xml) throws Exception {
+        if (!group.isEnabled()) {
+            return;
+        }
+
         xml.writeStartElement(TAG_GROUP);
         xml.writeAttribute(ATTR_NAME, group.getName());
 
@@ -104,6 +108,10 @@ public class XmlReport extends AbstractC
     }
 
     private void printTestResults(CmisTest test, XMLStreamWriter xml) throws Exception {
+        if (!test.isEnabled()) {
+            return;
+        }
+
         xml.writeStartElement(TAG_TEST);
         xml.writeAttribute(ATTR_NAME, test.getName());
         xml.writeAttribute(ATTR_TIME, "" + test.getTime());

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/BasicsTestGroup.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/BasicsTestGroup.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/BasicsTestGroup.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/BasicsTestGroup.java Sun Aug 21 14:29:43 2011
@@ -32,6 +32,7 @@ public class BasicsTestGroup extends Abs
         super.init(parameters);
 
         setName("Basics Test Group");
+        setDescription("Basic tests.");
 
         addTest(new SecurityTest());
         addTest(new RepositoryInfoTest());

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RepositoryInfoTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RepositoryInfoTest.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RepositoryInfoTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RepositoryInfoTest.java Sun Aug 21 14:29:43 2011
@@ -41,6 +41,7 @@ public class RepositoryInfoTest extends 
     public void init(Map<String, String> parameters) {
         super.init(parameters);
         setName("Repository Info Test");
+        setDescription("Gets and checks the repository info.");
     }
 
     @Override

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RootFolderTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RootFolderTest.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RootFolderTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RootFolderTest.java Sun Aug 21 14:29:43 2011
@@ -41,6 +41,7 @@ public class RootFolderTest extends Abst
     public void init(Map<String, String> parameters) {
         super.init(parameters);
         setName("Root Folder Test");
+        setDescription("Checks the root folder and its children for specification compliance.");
     }
 
     @Override

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/SecurityTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/SecurityTest.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/SecurityTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/SecurityTest.java Sun Aug 21 14:29:43 2011
@@ -34,6 +34,7 @@ public class SecurityTest extends Abstra
     public void init(Map<String, String> parameters) {
         super.init(parameters);
         setName("Security Test");
+        setDescription("Checks if HTTPS is used.");
     }
 
     @Override

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/TypesTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/TypesTest.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/TypesTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/TypesTest.java Sun Aug 21 14:29:43 2011
@@ -43,6 +43,7 @@ public class TypesTest extends AbstractS
     public void init(Map<String, String> parameters) {
         super.init(parameters);
         setName("Types Test");
+        setDescription("Checks all types exposed by the repository for specification compliance.");
     }
 
     @Override

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CRUDTestGroup.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CRUDTestGroup.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CRUDTestGroup.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CRUDTestGroup.java Sun Aug 21 14:29:43 2011
@@ -31,6 +31,7 @@ public class CRUDTestGroup extends Abstr
         super.init(parameters);
 
         setName("CRUD Test Group");
+        setDescription("Create, Read, Update, and Delete tests.");
 
         addTest(new CreateAndDeleteFolderTest());
         addTest(new CreateAndDeleteDocumentTest());

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CreateAndDeleteDocumentTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CreateAndDeleteDocumentTest.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CreateAndDeleteDocumentTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CreateAndDeleteDocumentTest.java Sun Aug 21 14:29:43 2011
@@ -46,6 +46,7 @@ public class CreateAndDeleteDocumentTest
     public void init(Map<String, String> parameters) {
         super.init(parameters);
         setName("Create and Delete Document Test");
+        setDescription("Creates a few documents, checks the newly created documents and their parent and finally deletes the created documents.");
     }
 
     @Override

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CreateAndDeleteFolderTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CreateAndDeleteFolderTest.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CreateAndDeleteFolderTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CreateAndDeleteFolderTest.java Sun Aug 21 14:29:43 2011
@@ -42,6 +42,7 @@ public class CreateAndDeleteFolderTest e
     public void init(Map<String, String> parameters) {
         super.init(parameters);
         setName("Create and Delete Folder Test");
+        setDescription("Creates a few folders, checks the newly created folders and their parent and finally deletes the created folders.");
     }
 
     @Override

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/query/QuerySmokeTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/query/QuerySmokeTest.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/query/QuerySmokeTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/query/QuerySmokeTest.java Sun Aug 21 14:29:43 2011
@@ -47,21 +47,26 @@ public class QuerySmokeTest extends Abst
     public void init(Map<String, String> parameters) {
         super.init(parameters);
         setName("Query Smoke Test");
+        setDescription("Performs a simple query and checks if the format of the results is correct. It does not check if the result are complete!");
     }
 
     @Override
     public void run(Session session) {
+        CmisTestResult f;
+
         String testType = "cmis:document";
+        String statement = "SELECT * FROM " + testType;
+        int pageSize = 100;
 
         if (supportsQuery(session)) {
-            ItemIterable<QueryResult> resultSet = session.query("SELECT * FROM " + testType, false);
+            ItemIterable<QueryResult> resultSet = session.query(statement, false);
 
             if (resultSet == null) {
                 addResult(createResult(FAILURE, "Query result set is null! (OpenCMIS issue???)"));
             } else {
                 int i = 0;
                 // testing 100 results should be sufficient for this test
-                for (QueryResult qr : resultSet.getPage(100)) {
+                for (QueryResult qr : resultSet.getPage(pageSize)) {
                     if (qr == null) {
                         addResult(createResult(FAILURE, "Query result is null! (OpenCMIS issue???)"));
                     } else {
@@ -71,6 +76,13 @@ public class QuerySmokeTest extends Abst
                     }
                     i++;
                 }
+
+                f = createResult(FAILURE, "More query results (" + i + ") than expected (page size = " + pageSize
+                        + ")!");
+                addResult(assertIsFalse((i > pageSize), null, f));
+
+                addResult(createInfoResult(i + " query results for \"" + statement + "\" (page size = " + pageSize
+                        + ")"));
             }
         } else {
             addResult(createInfoResult("Query not supported!"));

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/query/QueryTestGroup.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/query/QueryTestGroup.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/query/QueryTestGroup.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/query/QueryTestGroup.java Sun Aug 21 14:29:43 2011
@@ -31,6 +31,7 @@ public class QueryTestGroup extends Abst
         super.init(parameters);
 
         setName("Query Test Group");
+        setDescription("Query tests.");
 
         addTest(new QuerySmokeTest());
     }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/CheckedOutTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/CheckedOutTest.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/CheckedOutTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/CheckedOutTest.java Sun Aug 21 14:29:43 2011
@@ -36,12 +36,15 @@ public class CheckedOutTest extends Abst
     public void init(Map<String, String> parameters) {
         super.init(parameters);
         setName("Checked out Test");
+        setDescription("Calls getCheckedOutDocs() and checks the returned objects.");
     }
 
     @Override
     public void run(Session session) {
         ItemIterable<Document> pwcs = session.getCheckedOutDocs(SELECT_ALL_NO_CACHE_OC);
         if (pwcs != null) {
+
+            int i = 0;
             for (Document pwc : pwcs) {
                 String[] propertiesToCheck = getAllProperties(pwc);
                 addResult(checkObject(session, pwc, propertiesToCheck, "PWC check: " + pwc.getId()));
@@ -51,7 +54,11 @@ public class CheckedOutTest extends Abst
                         addResult(createResult(FAILURE, "PWC is not latest version! Id: " + pwc.getId()));
                     }
                 }
+
+                i++;
             }
+
+            addResult(createInfoResult(i + " checked out documents."));
         }
     }
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/VersioningTestGroup.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/VersioningTestGroup.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/VersioningTestGroup.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/VersioningTestGroup.java Sun Aug 21 14:29:43 2011
@@ -31,6 +31,7 @@ public class VersioningTestGroup extends
         super.init(parameters);
 
         setName("Versioning Test Group");
+        setDescription("Versioning tests.");
 
         addTest(new CheckedOutTest());
     }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientHelper.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientHelper.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientHelper.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientHelper.java Sun Aug 21 14:29:43 2011
@@ -277,8 +277,9 @@ public class ClientHelper {
             filename = "content";
         }
 
-        if (filename.indexOf('.') == -1) {
-            filename = filename + MimeTypes.getExtension(content.getMimeType());
+        String ext = MimeTypes.getExtension(content.getMimeType());
+        if (ext.length() > 0 && !filename.endsWith(ext)) {
+            filename = filename + ext;
         }
 
         File tempFile = ClientHelper.createTempFile(filename);

Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TckDialog.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TckDialog.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TckDialog.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TckDialog.java Sun Aug 21 14:29:43 2011
@@ -19,43 +19,71 @@
 package org.apache.chemistry.opencmis.workbench;
 
 import java.awt.BorderLayout;
+import java.awt.Color;
 import java.awt.Component;
 import java.awt.Dimension;
 import java.awt.Frame;
+import java.awt.Insets;
+import java.awt.Rectangle;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
 import java.io.Writer;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
+import javax.swing.AbstractCellEditor;
 import javax.swing.BorderFactory;
 import javax.swing.Box;
 import javax.swing.BoxLayout;
 import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
 import javax.swing.JDialog;
 import javax.swing.JFrame;
 import javax.swing.JLabel;
+import javax.swing.JMenuItem;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
+import javax.swing.JPopupMenu;
 import javax.swing.JProgressBar;
+import javax.swing.JScrollPane;
+import javax.swing.JSplitPane;
+import javax.swing.JTextField;
 import javax.swing.JTree;
 import javax.swing.SwingWorker;
+import javax.swing.ToolTipManager;
+import javax.swing.border.EmptyBorder;
 import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.TreeCellEditor;
+import javax.swing.tree.TreeCellRenderer;
+import javax.swing.tree.TreeNode;
 
+import org.apache.chemistry.opencmis.client.api.ObjectType;
 import org.apache.chemistry.opencmis.commons.SessionParameter;
+import org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
 import org.apache.chemistry.opencmis.tck.CmisTest;
 import org.apache.chemistry.opencmis.tck.CmisTestGroup;
 import org.apache.chemistry.opencmis.tck.CmisTestProgressMonitor;
+import org.apache.chemistry.opencmis.tck.impl.TestParameters;
 import org.apache.chemistry.opencmis.tck.runner.AbstractRunner;
 import org.apache.chemistry.opencmis.workbench.checks.SwingReport;
 import org.apache.chemistry.opencmis.workbench.model.ClientModel;
 
+import sun.swing.DefaultLookup;
+
 /**
  * TCK dialog and runner.
  */
 public class TckDialog {
 
     private final Frame owner;
+    private final ClientModel model;
     private final TckDialogRunner runner;
 
     private JProgressBar groupsProgressBar;
@@ -63,7 +91,8 @@ public class TckDialog {
 
     public TckDialog(Frame owner, ClientModel model) {
         this.owner = owner;
-        this.runner = new TckDialogRunner(model);
+        this.model = model;
+        this.runner = new TckDialogRunner(model, this);
 
         try {
             runner.loadDefaultTckGroups();
@@ -72,15 +101,10 @@ public class TckDialog {
             return;
         }
 
-        // JOptionPane.showMessageDialog(owner,
-        // "The TCK is brand new and incomplete. Don't trust the results, yet!",
-        // "TCK Warning", JOptionPane.WARNING_MESSAGE);
-
         new TckSelectDialog();
     }
 
     private class TckSelectDialog extends JDialog {
-
         private static final long serialVersionUID = 1L;
 
         public TckSelectDialog() {
@@ -90,32 +114,100 @@ public class TckDialog {
         }
 
         private void createGUI() {
-            setPreferredSize(new Dimension(300, 500));
-            setMinimumSize(new Dimension(300, 500));
+            setPreferredSize(new Dimension(600, 500));
+            setMinimumSize(new Dimension(600, 500));
 
             setLayout(new BorderLayout());
 
-            DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("Groups");
+            // tree
+            final DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("Groups");
+            final JTree groupTree = new JTree(rootNode);
 
             for (CmisTestGroup group : runner.getGroups()) {
-                DefaultMutableTreeNode groupNode = new DefaultMutableTreeNode(group.getName());
+                final TestTreeNode groupNode = new TestTreeNode(groupTree, group);
                 rootNode.add(groupNode);
                 for (CmisTest test : group.getTests()) {
-                    DefaultMutableTreeNode testNode = new DefaultMutableTreeNode(test.getName());
+                    final TestTreeNode testNode = new TestTreeNode(groupTree, test);
                     groupNode.add(testNode);
                 }
             }
 
-            JTree groupTree = new JTree(rootNode);
+            ((DefaultTreeModel) groupTree.getModel()).reload();
+
             groupTree.setRootVisible(false);
+            groupTree.setPreferredSize(new Dimension(300, 200));
+            groupTree.setCellRenderer(new TestTreeNodeRender());
+            groupTree.setCellEditor(new TestTreeNodeEditor());
+            groupTree.setEditable(true);
+            ToolTipManager.sharedInstance().registerComponent(groupTree);
 
             for (int i = 0; i < groupTree.getRowCount(); i++) {
                 groupTree.expandRow(i);
             }
 
-            add(groupTree, BorderLayout.CENTER);
+            final JPopupMenu treePopup = new JPopupMenu();
+
+            final JMenuItem selectItem = new JMenuItem("Select all");
+            selectItem.addActionListener(new ActionListener() {
+                public void actionPerformed(ActionEvent e) {
+                    selectAll(groupTree, true);
+                }
+            });
+            treePopup.add(selectItem);
+
+            final JMenuItem deselectItem = new JMenuItem("Deselect all");
+            deselectItem.addActionListener(new ActionListener() {
+                public void actionPerformed(ActionEvent e) {
+                    selectAll(groupTree, false);
+                }
+            });
+            treePopup.add(deselectItem);
+
+            groupTree.addMouseListener(new MouseAdapter() {
+                public void mousePressed(MouseEvent e) {
+                    maybeShowPopup(e);
+                }
+
+                public void mouseReleased(MouseEvent e) {
+                    maybeShowPopup(e);
+                }
 
-            JButton runButton = new JButton("Run TCK");
+                private void maybeShowPopup(MouseEvent e) {
+                    if (e.isPopupTrigger()) {
+                        treePopup.show(e.getComponent(), e.getX(), e.getY());
+                    }
+                }
+            });
+
+            // config panel
+            final JPanel configPanel = new JPanel();
+            configPanel.setLayout(new BoxLayout(configPanel, BoxLayout.PAGE_AXIS));
+            configPanel.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));
+
+            final JComboBox folderComboBox = addComboBox(configPanel, "Test folder type:",
+                    BaseTypeId.CMIS_FOLDER.value(), TestParameters.DEFAULT_FOLDER_TYPE_VALUE);
+            configPanel.add(Box.createRigidArea(new Dimension(1, 10)));
+
+            final JComboBox documentComboBox = addComboBox(configPanel, "Test document type:",
+                    BaseTypeId.CMIS_DOCUMENT.value(), TestParameters.DEFAULT_DOCUMENT_TYPE_VALUE);
+            configPanel.add(Box.createRigidArea(new Dimension(1, 10)));
+
+            configPanel.add(new JLabel("Test folder path:"));
+            final JTextField testParentFolderField = new JTextField(TestParameters.DEFAULT_TEST_FOLDER_PARENT_VALUE);
+            testParentFolderField.setMaximumSize(new Dimension(Short.MAX_VALUE, 10));
+            testParentFolderField.setAlignmentX(Component.LEFT_ALIGNMENT);
+            configPanel.add(testParentFolderField);
+
+            configPanel.add(Box.createVerticalGlue());
+
+            add(configPanel);
+
+            final JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, new JScrollPane(groupTree),
+                    configPanel);
+            splitPane.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
+            add(splitPane, BorderLayout.CENTER);
+
+            final JButton runButton = new JButton("Run TCK");
             runButton.setDefaultCapable(true);
             runButton.addActionListener(new ActionListener() {
                 public void actionPerformed(ActionEvent event) {
@@ -128,23 +220,232 @@ public class TckDialog {
                                     JOptionPane.WARNING_MESSAGE);
 
                     if (answer == JOptionPane.YES_OPTION) {
+                        Map<String, String> parameters = runner.getParameters();
+                        parameters.put(TestParameters.DEFAULT_FOLDER_TYPE, (String) folderComboBox.getSelectedItem());
+                        parameters.put(TestParameters.DEFAULT_DOCUMENT_TYPE,
+                                (String) documentComboBox.getSelectedItem());
+                        parameters.put(TestParameters.DEFAULT_TEST_FOLDER_PARENT, testParentFolderField.getText());
+
+                        runner.setParameters(parameters);
+
                         dispose();
                         new TckRunDialog();
                     }
                 }
             });
 
-            add(runButton, BorderLayout.PAGE_END);
+            final JPanel runbuttonPanel = new JPanel();
+            runbuttonPanel.setLayout(new BoxLayout(runbuttonPanel, BoxLayout.PAGE_AXIS));
+            runbuttonPanel.setBorder(BorderFactory.createEmptyBorder(0, 3, 3, 3));
+            runButton.setMaximumSize(new Dimension(Short.MAX_VALUE, 30));
+            runbuttonPanel.add(runButton);
+
+            add(runbuttonPanel, BorderLayout.PAGE_END);
 
             setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
             pack();
             setLocationRelativeTo(null);
             setVisible(true);
         }
+
+        private void selectAll(final JTree tree, boolean select) {
+            for (CmisTestGroup group : runner.getGroups()) {
+                group.setEnabled(select);
+                for (CmisTest test : group.getTests()) {
+                    test.setEnabled(select);
+                }
+            }
+
+            DefaultTreeModel model = ((DefaultTreeModel) tree.getModel());
+            model.nodeChanged((TreeNode) model.getRoot());
+        }
+
+        private JComboBox addComboBox(JPanel panel, String title, String rootTypeId, String defaultTypeId) {
+            final JLabel label = new JLabel(title);
+            label.setAlignmentX(Component.LEFT_ALIGNMENT);
+            panel.add(label);
+
+            List<ObjectType> types = model.getCreateableTypes(rootTypeId);
+            String[] typeIds = new String[types.size()];
+
+            int i = 0;
+            for (ObjectType type : types) {
+                typeIds[i++] = type.getId();
+            }
+
+            final JComboBox comboBox = new JComboBox(typeIds);
+            comboBox.setSelectedItem(defaultTypeId);
+            comboBox.setAlignmentX(Component.LEFT_ALIGNMENT);
+            comboBox.setMaximumSize(new Dimension(Short.MAX_VALUE, 10));
+            panel.add(comboBox);
+
+            return comboBox;
+        }
     }
 
-    private class TckRunDialog extends JDialog {
+    private class TestTreeNode extends DefaultMutableTreeNode {
+        private static final long serialVersionUID = 1L;
+
+        private final JTree tree;
+        private final CmisTestGroup group;
+        private final CmisTest test;
+
+        public TestTreeNode(JTree tree, CmisTestGroup group) {
+            this.tree = tree;
+            this.group = group;
+            this.test = null;
+        }
+
+        public TestTreeNode(JTree tree, CmisTest test) {
+            this.tree = tree;
+            this.test = test;
+            this.group = null;
+        }
+
+        public CmisTestGroup getGroup() {
+            return group;
+        }
+
+        public String getName() {
+            if (group != null) {
+                return group.getName();
+            }
+
+            return test.getName();
+        }
+
+        public String getDescription() {
+            if (group != null) {
+                return group.getDescription();
+            }
+
+            return test.getDescription();
+        }
+
+        public boolean isEnabled() {
+            if (group != null) {
+                return group.isEnabled();
+            }
+
+            return test.isEnabled();
+        }
+
+        public void setEnabled(boolean enabled) {
+            DefaultTreeModel model = ((DefaultTreeModel) tree.getModel());
+
+            if (group != null) {
+                group.setEnabled(enabled);
+
+                for (int i = 0; i < getChildCount(); i++) {
+                    TestTreeNode node = (TestTreeNode) getChildAt(i);
+                    node.setEnabled(enabled);
+                    model.nodeChanged(node);
+                }
+
+                return;
+            }
+
+            test.setEnabled(enabled);
+
+            if (enabled) {
+                TestTreeNode node = (TestTreeNode) getParent();
+                node.getGroup().setEnabled(true);
+                model.nodeChanged(node);
+            }
+        }
+    }
+
+    private class TestTreeNodeRender extends JCheckBox implements TreeCellRenderer {
+        private static final long serialVersionUID = 1L;
+
+        private final Color textSelectionColor;
+        private final Color textNonSelectionColor;
+        private final Color backgroundSelectionColor;
+        private final Color backgroundNonSelectionColor;
+
+        public TestTreeNodeRender() {
+            textSelectionColor = DefaultLookup.getColor(this, ui, "Tree.selectionForeground");
+            textNonSelectionColor = DefaultLookup.getColor(this, ui, "Tree.textForeground");
+            backgroundSelectionColor = DefaultLookup.getColor(this, ui, "Tree.selectionBackground");
+            backgroundNonSelectionColor = DefaultLookup.getColor(this, ui, "Tree.textBackground");
+
+            Insets margins = DefaultLookup.getInsets(this, ui, "Tree.rendererMargins");
+            if (margins != null) {
+                setBorder(new EmptyBorder(margins.top, margins.left, margins.bottom, margins.right));
+            }
+        }
+
+        public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded,
+                boolean leaf, int row, boolean hasFocus) {
+
+            if (sel) {
+                setForeground(textSelectionColor);
+                setBackground(backgroundSelectionColor);
+            } else {
+                setForeground(textNonSelectionColor);
+                setBackground(backgroundNonSelectionColor);
+            }
+
+            if (value instanceof TestTreeNode) {
+                TestTreeNode node = (TestTreeNode) value;
+                setText(node.getName());
+                setSelected(node.isEnabled());
+                setToolTipText(node.getDescription());
+            } else {
+                setText(value == null ? "" : value.toString());
+                setToolTipText(null);
+            }
+
+            return this;
+        }
+
+        public void validate() {
+        }
+
+        public void invalidate() {
+        }
+
+        public void revalidate() {
+        }
+
+        public void repaint(long tm, int x, int y, int width, int height) {
+        }
+
+        public void repaint(Rectangle r) {
+        }
+
+        public void repaint() {
+        }
+    }
+
+    private class TestTreeNodeEditor extends AbstractCellEditor implements TreeCellEditor {
+        private static final long serialVersionUID = 1L;
 
+        private TestTreeNodeRender lastObject;
+
+        @Override
+        public Object getCellEditorValue() {
+            return lastObject;
+        }
+
+        @Override
+        public Component getTreeCellEditorComponent(JTree tree, final Object value, boolean isSelected,
+                boolean expanded, boolean leaf, int row) {
+
+            lastObject = new TestTreeNodeRender();
+            lastObject.getTreeCellRendererComponent(tree, value, true, expanded, leaf, row, false);
+            lastObject.addItemListener(new ItemListener() {
+                public void itemStateChanged(ItemEvent itemEvent) {
+                    ((TestTreeNode) value).setEnabled(((JCheckBox) itemEvent.getItem()).isSelected());
+                    fireEditingStopped();
+                }
+            });
+
+            return lastObject;
+        }
+    }
+
+    private class TckRunDialog extends JDialog {
         private static final long serialVersionUID = 1L;
 
         private final TckTask task;
@@ -218,7 +519,7 @@ public class TckDialog {
     }
 
     private static class TckDialogRunner extends AbstractRunner {
-        public TckDialogRunner(ClientModel model) {
+        public TckDialogRunner(ClientModel model, TckDialog tckDialog) {
             Map<String, String> parameters = new HashMap<String, String>(model.getClientSession()
                     .getSessionParameters());
             parameters.put(SessionParameter.REPOSITORY_ID, model.getClientSession().getSession().getRepositoryInfo()

Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/Workbench.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/Workbench.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/Workbench.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/Workbench.java Sun Aug 21 14:29:43 2011
@@ -19,6 +19,7 @@
 package org.apache.chemistry.opencmis.workbench;
 
 import java.lang.reflect.InvocationTargetException;
+import java.net.Authenticator;
 
 import javax.swing.JDialog;
 import javax.swing.JFrame;
@@ -28,6 +29,8 @@ import javax.swing.UIManager.LookAndFeel
 public class Workbench {
 
     public Workbench() throws InterruptedException, InvocationTargetException {
+        // turn off existing Authenticators (-> Web Start)
+        Authenticator.setDefault(null);
 
         // set up Swing
         try {

Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/checks/SwingReport.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/checks/SwingReport.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/checks/SwingReport.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/checks/SwingReport.java Sun Aug 21 14:29:43 2011
@@ -108,9 +108,17 @@ public class SwingReport extends Abstrac
             DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("Groups");
 
             for (CmisTestGroup group : groups) {
+                if (!group.isEnabled()) {
+                    continue;
+                }
+
                 DefaultMutableTreeNode groupNode = new DefaultMutableTreeNode(group);
                 rootNode.add(groupNode);
                 for (CmisTest test : group.getTests()) {
+                    if (!test.isEnabled()) {
+                        continue;
+                    }
+
                     DefaultMutableTreeNode testNode = new DefaultMutableTreeNode(test);
                     groupNode.add(testNode);
                     populateResultBranch(testNode, test.getResults());

Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/AbstractDetailsTable.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/AbstractDetailsTable.java?rev=1159987&r1=1159986&r2=1159987&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/AbstractDetailsTable.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/AbstractDetailsTable.java Sun Aug 21 14:29:43 2011
@@ -74,7 +74,7 @@ public abstract class AbstractDetailsTab
         setFillsViewportHeight(true);
 
         final JPopupMenu popup = new JPopupMenu();
-        JMenuItem menuItem = new JMenuItem("Copy to clipboard");
+        final JMenuItem menuItem = new JMenuItem("Copy to clipboard");
         popup.add(menuItem);
 
         menuItem.addActionListener(new ActionListener() {