You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2011/02/23 15:17:59 UTC

svn commit: r1073752 - in /sling/trunk/testing: ./ junit/remote/src/main/java/org/apache/sling/junit/remote/testrunner/ samples/failing-tests/ samples/failing-tests/src/ samples/failing-tests/src/main/ samples/failing-tests/src/main/java/ samples/faili...

Author: bdelacretaz
Date: Wed Feb 23 14:17:58 2011
New Revision: 1073752

URL: http://svn.apache.org/viewvc?rev=1073752&view=rev
Log:
SLING-1963 - use failingtests bundle to verify that server-side test failures are correctly reported

Added:
    sling/trunk/testing/samples/failing-tests/   (with props)
    sling/trunk/testing/samples/failing-tests/pom.xml   (with props)
    sling/trunk/testing/samples/failing-tests/src/
    sling/trunk/testing/samples/failing-tests/src/main/
    sling/trunk/testing/samples/failing-tests/src/main/java/
    sling/trunk/testing/samples/failing-tests/src/main/java/org/
    sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/
    sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/
    sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/junit/
    sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/junit/samples/
    sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/junit/samples/failingtests/
    sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/
    sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/
    sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/
    sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/EmptyTest.java   (with props)
    sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/JUnit3FailingTest.java   (with props)
    sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/JUnit4FailingTest.java   (with props)
    sling/trunk/testing/samples/sample-tests/
      - copied from r1073087, sling/trunk/testing/samples/testbundle/
    sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/junit/sampletests/
      - copied from r1073087, sling/trunk/testing/samples/testbundle/src/main/java/org/apache/sling/junit/testbundle/
    sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/
    sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/
    sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/
      - copied from r1073087, sling/trunk/testing/samples/testbundle/src/main/java/org/apache/sling/junit/testbundle/tests/
    sling/trunk/testing/samples/test-tools/src/test/java/org/apache/sling/testing/samples/testtools/serverside/FailingTestsTest.java   (with props)
Removed:
    sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/junit/sampletests/tests/
    sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/junit/testbundle/
    sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/MissingTest.java
    sling/trunk/testing/samples/testbundle/
Modified:
    sling/trunk/testing/junit/remote/src/main/java/org/apache/sling/junit/remote/testrunner/SlingRemoteTestRunner.java
    sling/trunk/testing/pom.xml
    sling/trunk/testing/samples/sample-tests/pom.xml
    sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/JUnit3Test.java
    sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/JUnit4Test.java
    sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/OsgiAwareTest.java
    sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/SomeOtherClass.java
    sling/trunk/testing/samples/test-tools/pom.xml
    sling/trunk/testing/samples/test-tools/src/test/java/org/apache/sling/testing/samples/testtools/serverside/JSONResponseTest.java
    sling/trunk/testing/samples/test-tools/src/test/java/org/apache/sling/testing/samples/testtools/serverside/ServerSideTest.java

Modified: sling/trunk/testing/junit/remote/src/main/java/org/apache/sling/junit/remote/testrunner/SlingRemoteTestRunner.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/junit/remote/src/main/java/org/apache/sling/junit/remote/testrunner/SlingRemoteTestRunner.java?rev=1073752&r1=1073751&r2=1073752&view=diff
==============================================================================
--- sling/trunk/testing/junit/remote/src/main/java/org/apache/sling/junit/remote/testrunner/SlingRemoteTestRunner.java (original)
+++ sling/trunk/testing/junit/remote/src/main/java/org/apache/sling/junit/remote/testrunner/SlingRemoteTestRunner.java Wed Feb 23 14:17:58 2011
@@ -84,7 +84,7 @@ public class SlingRemoteTestRunner exten
         builder = new RequestBuilder(testParameters.getServerBaseUrl());
         
         // POST request executes the tests
-        final Request r = builder.buildPostRequest(testParameters.getJunitServletPath() + "/.json");
+        final Request r = builder.buildPostRequest(testParameters.getJunitServletPath() + ".json");
         executor.execute(r)
         .assertStatus(200)
         .assertContentType("application/json");

Modified: sling/trunk/testing/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/testing/pom.xml?rev=1073752&r1=1073751&r2=1073752&view=diff
==============================================================================
--- sling/trunk/testing/pom.xml (original)
+++ sling/trunk/testing/pom.xml Wed Feb 23 14:17:58 2011
@@ -43,10 +43,8 @@
         <module>junit/core</module>
         <module>junit/scriptable</module>
         <module>junit/remote</module>
-        <module>samples/testbundle</module>
-
-        <!-- TODO cannot enable yet, uses unreleased Stanbol snapshots
         <module>samples/test-tools</module>
-        -->
+        <module>samples/sample-tests</module>
+        <module>samples/failing-tests</module>
     </modules>
 </project>

Propchange: sling/trunk/testing/samples/failing-tests/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Feb 23 14:17:58 2011
@@ -0,0 +1,14 @@
+target
+bin
+*.iml
+*.ipr
+*.iws
+.settings
+.project
+.classpath
+.externalToolBuilders
+maven-eclipse.xml
+
+
+
+

Added: sling/trunk/testing/samples/failing-tests/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/testing/samples/failing-tests/pom.xml?rev=1073752&view=auto
==============================================================================
--- sling/trunk/testing/samples/failing-tests/pom.xml (added)
+++ sling/trunk/testing/samples/failing-tests/pom.xml Wed Feb 23 14:17:58 2011
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>sling</artifactId>
+        <version>10</version>
+    </parent>
+
+    <artifactId>org.apache.sling.testing.samples.failingtests</artifactId>
+    <version>0.1.1-SNAPSHOT</version>
+    <packaging>bundle</packaging>
+
+    <name>Apache Sling Failing Server-Side Tests</name>
+    <description>Bundle that supplies server-side tests that fail, to test the Sling JUnit extensions</description>
+    
+    <properties>
+        <junit.version>4.8.2</junit.version>
+    </properties>
+
+    <scm>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/testing/samples/failing-tests</connection>
+        <developerConnection> scm:svn:https://svn.apache.org/repos/asf/sling/trunk/testing/samples/failing-tests</developerConnection>
+        <url>http://svn.apache.org/viewvc/sling/trunk/testing/samples/failing-tests</url>
+    </scm>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-scr-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Export-Package>org.apache.sling.extensions.junit.failingtests.*</Export-Package>
+                        <Sling-Test-Regexp>.*Test</Sling-Test-Regexp>
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.compendium</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.scr.annotations</artifactId>
+            <version>1.4.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <version>1.5.11</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.8.2</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <!-- TODO create separate API package, this is just to get the special Sling test runner -->
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.junit.core</artifactId>
+            <version>0.1.1-SNAPSHOT</version>
+            <scope>provided</scope>
+        </dependency>
+        
+    </dependencies>
+</project>

Propchange: sling/trunk/testing/samples/failing-tests/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/EmptyTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/EmptyTest.java?rev=1073752&view=auto
==============================================================================
--- sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/EmptyTest.java (added)
+++ sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/EmptyTest.java Wed Feb 23 14:17:58 2011
@@ -0,0 +1,23 @@
+/*
+ * 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.sling.testing.samples.failingtests;
+
+/** JUnit should complain that this class doesn't contain
+ *  any tests.
+ */
+public class EmptyTest {
+}

Propchange: sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/EmptyTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/EmptyTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision Rev URL

Added: sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/JUnit3FailingTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/JUnit3FailingTest.java?rev=1073752&view=auto
==============================================================================
--- sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/JUnit3FailingTest.java (added)
+++ sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/JUnit3FailingTest.java Wed Feb 23 14:17:58 2011
@@ -0,0 +1,30 @@
+/*
+ * 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.sling.testing.samples.failingtests;
+
+import junit.framework.TestCase;
+
+/** Example failing tests using the JUnit3 APIs */
+public class JUnit3FailingTest extends TestCase {
+    public void testFailsEveryTime() {
+        fail("This JUnit3 test fails every time");
+    }
+
+    public void testAssertsEveryTime() {
+        assertTrue("This JUnit3 test asserts every time", false);
+    }
+}

Propchange: sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/JUnit3FailingTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/JUnit3FailingTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision Rev URL

Added: sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/JUnit4FailingTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/JUnit4FailingTest.java?rev=1073752&view=auto
==============================================================================
--- sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/JUnit4FailingTest.java (added)
+++ sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/JUnit4FailingTest.java Wed Feb 23 14:17:58 2011
@@ -0,0 +1,36 @@
+/*
+ * 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.sling.testing.samples.failingtests;
+
+import static junit.framework.Assert.assertTrue;
+import static junit.framework.Assert.fail;
+
+import org.junit.Test;
+
+/** Example failing tests using the JUnit3 APIs */
+public class JUnit4FailingTest {
+    
+    @Test
+    public void testFailsEveryTime() {
+        fail("This JUnit4 test fails every time");
+    }
+
+    @Test
+    public void testAssertsEveryTime() {
+        assertTrue("This JUnit4 test asserts every time", false);
+    }
+}

Propchange: sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/JUnit4FailingTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sling/trunk/testing/samples/failing-tests/src/main/java/org/apache/sling/testing/samples/failingtests/JUnit4FailingTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision Rev URL

Modified: sling/trunk/testing/samples/sample-tests/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/testing/samples/sample-tests/pom.xml?rev=1073752&r1=1073087&r2=1073752&view=diff
==============================================================================
--- sling/trunk/testing/samples/sample-tests/pom.xml (original)
+++ sling/trunk/testing/samples/sample-tests/pom.xml Wed Feb 23 14:17:58 2011
@@ -26,21 +26,21 @@
         <version>10</version>
     </parent>
 
-    <artifactId>org.apache.sling.testing.samples.testbundle</artifactId>
+    <artifactId>org.apache.sling.testing.samples.sampletests</artifactId>
     <version>0.1.1-SNAPSHOT</version>
     <packaging>bundle</packaging>
 
-    <name>Apache Sling Tests Sample Bundle</name>
-    <description>Provides test classes to test the Sling JUnit extensions</description>
+    <name>Apache Sling Sample Server-Side Tests</name>
+    <description>Bundle that supplies sample server-side test classes for the Sling JUnit extensions</description>
     
     <properties>
         <junit.version>4.8.2</junit.version>
     </properties>
 
     <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/testing/samples/testbundle</connection>
-        <developerConnection> scm:svn:https://svn.apache.org/repos/asf/sling/trunk/testing/samples/testbundle</developerConnection>
-        <url>http://svn.apache.org/viewvc/sling/trunk/testing/samples/testbundle</url>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/testing/samples/sample-tests</connection>
+        <developerConnection> scm:svn:https://svn.apache.org/repos/asf/sling/trunk/testing/samples/sample-tests</developerConnection>
+        <url>http://svn.apache.org/viewvc/sling/trunk/testing/samples/sample-tests</url>
     </scm>
 
     <build>
@@ -55,7 +55,7 @@
                 <extensions>true</extensions>
                 <configuration>
                     <instructions>
-                        <Export-Package>org.apache.sling.extensions.junit.testbundle.*</Export-Package>
+                        <Export-Package>org.apache.sling.extensions.junit.sampletests.*</Export-Package>
                         <Sling-Test-Regexp>.*Test</Sling-Test-Regexp>
                     </instructions>
                 </configuration>

Modified: sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/JUnit3Test.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/JUnit3Test.java?rev=1073752&r1=1073087&r2=1073752&view=diff
==============================================================================
--- sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/JUnit3Test.java (original)
+++ sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/JUnit3Test.java Wed Feb 23 14:17:58 2011
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.junit.testbundle.tests;
+package org.apache.sling.testing.samples.sampletests;
 
 import junit.framework.TestCase;
 
@@ -22,14 +22,4 @@ import junit.framework.TestCase;
 public class JUnit3Test extends TestCase {
     public void testPasses() {
     }
-    
-    public void testFailsEveryTime() {
-        fail("This JUnit3 test fails every time");
-    }
-    
-    public void testFailsSometimes() {
-        if(Math.random() > 0.5) {
-            fail("This JUnit3 test fails 50% of the time");
-        }
-    }
 }

Modified: sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/JUnit4Test.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/JUnit4Test.java?rev=1073752&r1=1073087&r2=1073752&view=diff
==============================================================================
--- sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/JUnit4Test.java (original)
+++ sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/JUnit4Test.java Wed Feb 23 14:17:58 2011
@@ -14,10 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.junit.testbundle.tests;
+package org.apache.sling.testing.samples.sampletests;
 
 import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
 
 import org.junit.After;
 import org.junit.Before;
@@ -45,16 +44,4 @@ public class JUnit4Test {
     public void testRequiresBefore() {
         assertNotNull(title);
     }
-    
-    @Test
-    public void testFailsEveryTime() {
-        fail("This JUnit4 test fails every time");
-    }
-    
-    @Test
-    public void testFailsSometimes() {
-        if(Math.random() > 0.5) {
-            fail("This JUnit4 test fails 50% of the time");
-        }
-    }
 }
\ No newline at end of file

Modified: sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/OsgiAwareTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/OsgiAwareTest.java?rev=1073752&r1=1073087&r2=1073752&view=diff
==============================================================================
--- sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/OsgiAwareTest.java (original)
+++ sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/OsgiAwareTest.java Wed Feb 23 14:17:58 2011
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.junit.testbundle.tests;
+package org.apache.sling.testing.samples.sampletests;
 
 import static org.junit.Assert.assertNotNull;
 
@@ -22,6 +22,7 @@ import org.apache.sling.junit.annotation
 import org.apache.sling.junit.annotations.TestReference;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.service.cm.ConfigurationAdmin;
 
@@ -36,10 +37,14 @@ public class OsgiAwareTest {
     private BundleContext bundleContext;
     
     @Test
-    public void testConfigAdmin() {
+    public void testConfigAdmin() throws Exception {
         assertNotNull(
                 "Expecting ConfigurationAdmin to be injected by Sling test runner", 
                 configAdmin);
+        
+        final String name = "TEST_" + getClass().getName() + System.currentTimeMillis();
+        assertNotNull("Expecting config " + name + " to be created",
+                configAdmin.getConfiguration(name));
     }
     
     @Test
@@ -47,5 +52,16 @@ public class OsgiAwareTest {
         assertNotNull(
                 "Expecting BundleContext to be injected by Sling test runner", 
                 bundleContext);
+        
+        final String mySymbolicName = "org.apache.sling.testing.samples.sampletests";
+        Bundle thisBundle = null;
+        for(Bundle b : bundleContext.getBundles()) {
+            if(mySymbolicName.equals(b.getSymbolicName())) {
+                thisBundle = b;
+                break;
+            }
+        }
+        
+        assertNotNull("Expecting to find Bundle " + mySymbolicName, thisBundle);
     }
 }

Modified: sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/SomeOtherClass.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/SomeOtherClass.java?rev=1073752&r1=1073087&r2=1073752&view=diff
==============================================================================
--- sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/SomeOtherClass.java (original)
+++ sling/trunk/testing/samples/sample-tests/src/main/java/org/apache/sling/testing/samples/sampletests/SomeOtherClass.java Wed Feb 23 14:17:58 2011
@@ -14,10 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.junit.testbundle.tests;
+package org.apache.sling.testing.samples.sampletests;
 
-/** Verify that this class is not included in the list
- *  of tests (due to the Sling-Test-Regexp bundle header.
+/** This class should not be included in the list
+ *  of tests, due to our Sling-Test-Regexp bundle header.
  */
 public class SomeOtherClass {
 

Modified: sling/trunk/testing/samples/test-tools/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/testing/samples/test-tools/pom.xml?rev=1073752&r1=1073751&r2=1073752&view=diff
==============================================================================
--- sling/trunk/testing/samples/test-tools/pom.xml (original)
+++ sling/trunk/testing/samples/test-tools/pom.xml Wed Feb 23 14:17:58 2011
@@ -106,7 +106,7 @@
                         <configuration>
                             <outputDirectory>${project.build.directory}/sling/additional-bundles</outputDirectory>
                             <includeArtifactIds>
-                                org.apache.sling.junit.core,org.apache.sling.testing.samples.testbundle,org.apache.sling.junit.scriptable
+                                org.apache.sling.junit.core,org.apache.sling.testing.samples.sampletests,org.apache.sling.junit.core,org.apache.sling.testing.samples.failingtests,org.apache.sling.junit.scriptable
                             </includeArtifactIds>
                             <excludeTransitive>true</excludeTransitive>
                             <overWriteReleases>false</overWriteReleases>
@@ -173,7 +173,13 @@
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.testing.samples.testbundle</artifactId>
+            <artifactId>org.apache.sling.testing.samples.sampletests</artifactId>
+            <version>0.1.1-SNAPSHOT</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.testing.samples.failingtests</artifactId>
             <version>0.1.1-SNAPSHOT</version>
             <scope>provided</scope>
         </dependency>

Added: sling/trunk/testing/samples/test-tools/src/test/java/org/apache/sling/testing/samples/testtools/serverside/FailingTestsTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/samples/test-tools/src/test/java/org/apache/sling/testing/samples/testtools/serverside/FailingTestsTest.java?rev=1073752&view=auto
==============================================================================
--- sling/trunk/testing/samples/test-tools/src/test/java/org/apache/sling/testing/samples/testtools/serverside/FailingTestsTest.java (added)
+++ sling/trunk/testing/samples/test-tools/src/test/java/org/apache/sling/testing/samples/testtools/serverside/FailingTestsTest.java Wed Feb 23 14:17:58 2011
@@ -0,0 +1,92 @@
+/*
+ * 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.sling.testing.samples.testtools.serverside;
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.sling.commons.json.JSONArray;
+import org.apache.sling.commons.json.JSONException;
+import org.apache.sling.commons.json.JSONObject;
+import org.apache.sling.commons.json.JSONTokener;
+import org.apache.stanbol.commons.testing.http.Request;
+import org.junit.Test;
+
+/** Verify that failures are correctly reported, using
+ *  tests from the failingtests bundle.
+ */
+public class FailingTestsTest extends ServerSideTestsBase {
+    
+    public static final String FAILURE_FIELD = "failure";
+    public static final String DESCRIPTION_FIELD = "description";
+    
+    /** Extract the "failure" field of given test in JSON
+     *  response data. 
+     */
+    private String getFailure(JSONArray json, String testName) throws JSONException {
+        String result = null;
+        
+        for(int i = 0 ; i < json.length(); i++) {
+            final JSONObject obj = json.getJSONObject(i);
+            if("test".equals(obj.getString("INFO_TYPE"))) {
+                if(obj.getString(DESCRIPTION_FIELD).contains(testName)) {
+                    if(obj.has(FAILURE_FIELD)) {
+                        result = obj.getString(FAILURE_FIELD);
+                        break;
+                    }
+                }
+            }
+        }
+        
+        return result;
+    }
+    
+    @Test
+    public void testFailures() throws Exception{
+        
+        // Execute tests from the failingtests bundle and verify response
+        final Request r = builder.buildPostRequest(JUNIT_SERVLET_PATH 
+                + "/org.apache.sling.testing.samples.failingtests.json");
+        executor.execute(r).assertStatus(200);
+        
+        final JSONArray json = new JSONArray(new JSONTokener((executor.getContent())));
+        
+        assertEquals(
+                "initializationError(org.apache.sling.testing.samples.failingtests.EmptyTest): No runnable methods",
+                getFailure(json, "org.apache.sling.testing.samples.failingtests.EmptyTest")
+        );
+        
+        assertEquals(
+                "testFailsEveryTime(org.apache.sling.testing.samples.failingtests.JUnit3FailingTest): This JUnit3 test fails every time",
+                getFailure(json, "testFailsEveryTime(org.apache.sling.testing.samples.failingtests.JUnit3FailingTest")
+        );
+        
+        assertEquals(
+                "testAssertsEveryTime(org.apache.sling.testing.samples.failingtests.JUnit3FailingTest): This JUnit3 test asserts every time",
+                getFailure(json, "testAssertsEveryTime(org.apache.sling.testing.samples.failingtests.JUnit3FailingTest")
+        );
+        
+        assertEquals(
+                "testFailsEveryTime(org.apache.sling.testing.samples.failingtests.JUnit4FailingTest): This JUnit4 test fails every time",
+                getFailure(json, "org.apache.sling.testing.samples.failingtests.JUnit4FailingTest")
+        );
+        
+        assertEquals(
+                "testAssertsEveryTime(org.apache.sling.testing.samples.failingtests.JUnit4FailingTest): This JUnit4 test asserts every time",
+                getFailure(json, "testAssertsEveryTime(org.apache.sling.testing.samples.failingtests.JUnit4FailingTest")
+        );
+    }
+}
\ No newline at end of file

Propchange: sling/trunk/testing/samples/test-tools/src/test/java/org/apache/sling/testing/samples/testtools/serverside/FailingTestsTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sling/trunk/testing/samples/test-tools/src/test/java/org/apache/sling/testing/samples/testtools/serverside/FailingTestsTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision Rev URL

Modified: sling/trunk/testing/samples/test-tools/src/test/java/org/apache/sling/testing/samples/testtools/serverside/JSONResponseTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/samples/test-tools/src/test/java/org/apache/sling/testing/samples/testtools/serverside/JSONResponseTest.java?rev=1073752&r1=1073751&r2=1073752&view=diff
==============================================================================
--- sling/trunk/testing/samples/test-tools/src/test/java/org/apache/sling/testing/samples/testtools/serverside/JSONResponseTest.java (original)
+++ sling/trunk/testing/samples/test-tools/src/test/java/org/apache/sling/testing/samples/testtools/serverside/JSONResponseTest.java Wed Feb 23 14:17:58 2011
@@ -16,13 +16,13 @@
  */
 package org.apache.sling.testing.samples.testtools.serverside;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
+import static org.junit.Assert.assertTrue;
 
 import java.util.Arrays;
 import java.util.List;
 
 import org.apache.sling.commons.json.JSONArray;
+import org.apache.sling.commons.json.JSONException;
 import org.apache.sling.commons.json.JSONObject;
 import org.apache.sling.commons.json.JSONTokener;
 import org.apache.stanbol.commons.testing.http.Request;
@@ -63,6 +63,22 @@ public class JSONResponseTest extends Se
         log.info("{} (timeout={} seconds)", c.getDescription(), TEST_LIST_TIMEOUT_SECONDS);
         new RetryLoop(c, TEST_LIST_TIMEOUT_SECONDS, 500);
     }
+    
+    private boolean findTestName(JSONArray json, String name) throws JSONException {
+        for(int i = 0 ; i < json.length(); i++) {
+            final JSONObject obj = json.getJSONObject(i);
+            if("list".equals(obj.getString("INFO_TYPE")) && "testNames".equals(obj.getString("INFO_SUBTYPE"))) {
+                final JSONArray data = obj.getJSONArray("data");
+                for(int j=0; j < data.length(); j++) {
+                    if(name.equals(data.getString(j))) {
+                        return true;
+                    }
+                }
+            }
+        }
+        log.info("Test name not found in JSON response: {}", name);
+        return false;
+    }
 
     private void testJsonListOfTests() throws Exception {
         Request r = builder.buildGetRequest(JUNIT_SERVLET_PATH + "/.json");
@@ -75,38 +91,21 @@ public class JSONResponseTest extends Se
         // Parse JSON response for more precise testing
         final JSONArray json = new JSONArray(new JSONTokener((executor.getContent())));
         
-        // Verify that all our test names are in the response
+        // Verify that some test names are present in the response
         final List<String> expectedTestNames = Arrays.asList(new String []{
-                "org.apache.sling.junit.scriptable.ScriptableTestsProvider",
-                "org.apache.sling.junit.testbundle.tests.JUnit3Test",
-                "org.apache.sling.junit.testbundle.tests.JUnit4Test",
-                "org.apache.sling.junit.testbundle.tests.MissingTest",
-                "org.apache.sling.junit.testbundle.tests.OsgiAwareTest"
+                "org.apache.sling.testing.samples.failingtests.EmptyTest",
+                "org.apache.sling.testing.samples.failingtests.JUnit3FailingTest",
+                "org.apache.sling.testing.samples.failingtests.JUnit4FailingTest",
+                "org.apache.sling.testing.samples.sampletests.JUnit3Test",
+                "org.apache.sling.testing.samples.sampletests.JUnit4Test",
+                "org.apache.sling.testing.samples.sampletests.OsgiAwareTest",
+                "org.apache.sling.junit.scriptable.ScriptableTestsProvider"
         });
-
-        // Response contains an array of objects identified by 
-        // their INFO_TYPE and INFO_SUBTYPE: check the one
-        // that has type=list and subtype=testNames
-        boolean dataFound = false;
-        for(int i = 0 ; i < json.length(); i++) {
-            final JSONObject obj = json.getJSONObject(i);
-            if("list".equals(obj.getString("INFO_TYPE")) && "testNames".equals(obj.getString("INFO_SUBTYPE"))) {
-                dataFound = true;
-                final JSONArray data = obj.getJSONArray("data");
-                assertEquals("Expecting correct number of tests", expectedTestNames.size(), data.length());
-                
-                int matched = 0;
-                for(int j=0; j < data.length(); j++) {
-                    if(expectedTestNames.contains(data.getString(j))) {
-                        matched++;
-                    }
-                }
-                assertEquals("Expecting to find all test names in data array", expectedTestNames.size(), matched);
-            }
-        }
         
-        if(!dataFound) {
-            fail("Test names object not found in response");
+        for(String name : expectedTestNames) {
+            assertTrue(
+                    "Expecting test name " + name + " in json response", 
+                    findTestName(json, name));
         }
     }
 }
\ No newline at end of file

Modified: sling/trunk/testing/samples/test-tools/src/test/java/org/apache/sling/testing/samples/testtools/serverside/ServerSideTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/samples/test-tools/src/test/java/org/apache/sling/testing/samples/testtools/serverside/ServerSideTest.java?rev=1073752&r1=1073751&r2=1073752&view=diff
==============================================================================
--- sling/trunk/testing/samples/test-tools/src/test/java/org/apache/sling/testing/samples/testtools/serverside/ServerSideTest.java (original)
+++ sling/trunk/testing/samples/test-tools/src/test/java/org/apache/sling/testing/samples/testtools/serverside/ServerSideTest.java Wed Feb 23 14:17:58 2011
@@ -25,12 +25,15 @@ import org.junit.runner.RunWith;
 @RunWith(SlingRemoteTestRunner.class)
 public class ServerSideTest extends ServerSideTestsBase implements SlingRemoteTestParameters {
     
+    public static final String TEST_SELECTOR = "org.apache.sling.testing.samples.sampletests";
+    public static final int TESTS_AT_THIS_PATH = 5;
+    
     public int getExpectedNumberOfTests() {
-        return 11;
+        return TESTS_AT_THIS_PATH;
     }
 
     public String getJunitServletPath() {
-        return JUNIT_SERVLET_PATH;
+        return JUNIT_SERVLET_PATH + "/" + TEST_SELECTOR;
     }
 
     public String getServerBaseUrl() {