JBoss Portal SVN: r8587 - modules/test/trunk/unit/src/main/org/jboss/test/unit/runner.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-10-10 10:07:54 -0400 (Wed, 10 Oct 2007)
New Revision: 8587
Modified:
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java
Log:
completed test case for test driver runner
Modified: modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java 2007-10-10 13:45:09 UTC (rev 8586)
+++ modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java 2007-10-10 14:07:54 UTC (rev 8587)
@@ -36,6 +36,7 @@
import org.jboss.unit.driver.TestDriver;
import org.jboss.unit.driver.DriverResponse;
import org.jboss.unit.driver.DriverCommand;
+import org.jboss.unit.driver.command.StartTestCommand;
import org.jboss.unit.driver.response.EndTestResponse;
import org.jboss.unit.driver.response.FailureResponse;
import org.jboss.unit.info.TestInfo;
@@ -53,6 +54,7 @@
import java.util.Set;
import java.util.HashSet;
+import static org.jboss.unit.util.CollectionTools.*;
import static org.jboss.unit.api.Assert.*;
import static org.jboss.unit.api.Assert.assertEquals;
@@ -79,9 +81,42 @@
testInvokeTestCaseWithParameters2();
//
- // testInvokeTestSuiteWithParameters();
+ testInvokeTestSuite();
}
+ private static void testInvokeTestSuite()
+ {
+ TestDriverImpl testDriver = new TestDriverImpl()
+ {
+ public DriverResponse invoke2(TestId id, DriverCommand command)
+ {
+ return new EndTestResponse();
+ }
+ };
+ testDriver.info.addTest(new SimpleTestCaseInfo("Foo"));
+ testDriver.info.addTest(new SimpleTestCaseInfo("Bar"));
+ TestDriverRunner runner = new TestDriverRunner(testDriver, new TestId());
+
+ //
+ EventList listener = new EventList();
+ runner.addListener(listener);
+
+ //
+ runner.run();
+
+ //
+ testDriver.assertIdList(list(new TestId("Foo"), new TestId("Bar")));
+
+ //
+ assertEquals(6, listener.events.size());
+ assertStartRunnerEvent(listener.events.get(0));
+ assertStartTestEvent(listener.events.get(1), new TestId("Foo"));
+ assertEndTestEvent(listener.events.get(2), new TestId("Foo"), new TestSuccess(0));
+ assertStartTestEvent(listener.events.get(3), new TestId("Bar"));
+ assertEndTestEvent(listener.events.get(4), new TestId("Bar"), new TestSuccess(0));
+ assertEndRunnerEvent(listener.events.get(5));
+ }
+
private static void testInvokeTestCaseWithParameters1()
{
Map<String,String[]> tmp = new HashMap<String, String[]>();
@@ -91,7 +126,7 @@
//
TestDriverImpl testDriver = new TestDriverImpl()
{
- public DriverResponse invoke(TestId id, DriverCommand command)
+ public DriverResponse invoke2(TestId id, DriverCommand command)
{
return new EndTestResponse();
}
@@ -107,6 +142,9 @@
runner.run();
//
+ testDriver.assertIdList(list(new TestId("Foo")));
+
+ //
assertEquals(4, listener.events.size());
assertStartRunnerEvent(listener.events.get(0));
assertStartTestEvent(listener.events.get(1), new TestId("Foo"));
@@ -130,7 +168,7 @@
//
TestDriverImpl testDriver = new TestDriverImpl()
{
- public DriverResponse invoke(TestId id, DriverCommand command)
+ public DriverResponse invoke2(TestId id, DriverCommand command)
{
return new EndTestResponse();
}
@@ -150,6 +188,9 @@
runner.run();
//
+ testDriver.assertIdList(list(new TestId("Foo"), new TestId("Foo")));
+
+ //
assertEquals(6, listener.events.size());
assertStartRunnerEvent(listener.events.get(0));
assertStartTestEvent(listener.events.get(1), new TestId("Foo"));
@@ -185,6 +226,9 @@
runner.run();
//
+ testDriver.assertIdList(new ArrayList<TestId>());
+
+ //
assertEquals(2, listener.events.size());
assertStartRunnerEvent(listener.events.get(0));
assertEndRunnerEvent(listener.events.get(1));
@@ -202,6 +246,9 @@
runner.run();
//
+ testDriver.assertIdList(list(new TestId("Foo")));
+
+ //
assertEquals(4, listener.events.size());
assertStartRunnerEvent(listener.events.get(0));
assertStartTestEvent(listener.events.get(1), new TestId("Foo"));
@@ -213,7 +260,7 @@
{
TestDriverImpl testDriver = new TestDriverImpl()
{
- public DriverResponse invoke(TestId id, DriverCommand command)
+ public DriverResponse invoke2(TestId id, DriverCommand command)
{
return new EndTestResponse();
}
@@ -227,6 +274,9 @@
runner.run();
//
+ testDriver.assertIdList(list(new TestId("Foo")));
+
+ //
assertEquals(4, listener.events.size());
assertStartRunnerEvent(listener.events.get(0));
assertStartTestEvent(listener.events.get(1), new TestId("Foo"));
@@ -238,7 +288,7 @@
{
TestDriverImpl testDriver = new TestDriverImpl()
{
- public DriverResponse invoke(TestId id, DriverCommand command)
+ public DriverResponse invoke2(TestId id, DriverCommand command)
{
return new FailureResponse(FailureType.ERROR);
}
@@ -252,6 +302,9 @@
runner.run();
//
+ testDriver.assertIdList(list(new TestId("Foo")));
+
+ //
assertEquals(4, listener.events.size());
assertStartRunnerEvent(listener.events.get(0));
assertStartTestEvent(listener.events.get(1), new TestId("Foo"));
@@ -263,7 +316,7 @@
{
TestDriverImpl testDriver = new TestDriverImpl()
{
- public DriverResponse invoke(TestId id, DriverCommand command)
+ public DriverResponse invoke2(TestId id, DriverCommand command)
{
throw new RuntimeException();
}
@@ -277,6 +330,9 @@
runner.run();
//
+ testDriver.assertIdList(list(new TestId("Foo")));
+
+ //
assertEquals(4, listener.events.size());
assertStartRunnerEvent(listener.events.get(0));
assertStartTestEvent(listener.events.get(1), new TestId("Foo"));
@@ -291,7 +347,7 @@
//
TestDriverImpl testDriver = new TestDriverImpl()
{
- public DriverResponse invoke(TestId id, DriverCommand command)
+ public DriverResponse invoke2(TestId id, DriverCommand command)
{
throw error;
}
@@ -312,6 +368,9 @@
}
//
+ testDriver.assertIdList(list(new TestId("Foo")));
+
+ //
assertEquals(2, listener.events.size());
assertStartRunnerEvent(listener.events.get(0));
assertStartTestEvent(listener.events.get(1), new TestId("Foo"));
@@ -320,6 +379,8 @@
private static class TestDriverImpl implements TestDriver
{
+ List<TestId> ids = new ArrayList<TestId>();
+
/** . */
private SimpleTestSuiteInfo info = new SimpleTestSuiteInfo("blah");
@@ -328,10 +389,24 @@
return info;
}
- public DriverResponse invoke(TestId id, DriverCommand command)
+ public final DriverResponse invoke(TestId id, DriverCommand command)
{
+ if (command instanceof StartTestCommand)
+ {
+ ids.add(id);
+ }
+ return invoke2(id, command);
+ }
+
+ public DriverResponse invoke2(TestId id, DriverCommand command)
+ {
return null;
}
+
+ public void assertIdList(List<TestId> ids)
+ {
+ assertEquals(ids, this.ids);
+ }
}
private static void assertStartRunnerEvent(TestRunnerEvent event)
16 years, 8 months
JBoss Portal SVN: r8586 - in modules/test/trunk/unit/src/main/org/jboss: test/unit/runner and 2 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-10-10 09:45:09 -0400 (Wed, 10 Oct 2007)
New Revision: 8586
Modified:
modules/test/trunk/unit/src/main/org/jboss/test/unit/blah/TestedClass1.java
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java
modules/test/trunk/unit/src/main/org/jboss/unit/report/impl/console/PrintListener.java
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/TestDriverRunner.java
Log:
handle test duration in test runner event
Modified: modules/test/trunk/unit/src/main/org/jboss/test/unit/blah/TestedClass1.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/test/unit/blah/TestedClass1.java 2007-10-10 13:37:03 UTC (rev 8585)
+++ modules/test/trunk/unit/src/main/org/jboss/test/unit/blah/TestedClass1.java 2007-10-10 13:45:09 UTC (rev 8586)
@@ -32,8 +32,9 @@
{
@Test
- public void testFoo()
+ public void testFoo() throws InterruptedException
{
+ Thread.sleep(20);
}
@Test
Modified: modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java 2007-10-10 13:37:03 UTC (rev 8585)
+++ modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java 2007-10-10 13:45:09 UTC (rev 8586)
@@ -78,7 +78,8 @@
testInvokeTestCaseWithParameters1();
testInvokeTestCaseWithParameters2();
- // testInvokeTestSuiteWithParameters()
+ //
+ // testInvokeTestSuiteWithParameters();
}
private static void testInvokeTestCaseWithParameters1()
Modified: modules/test/trunk/unit/src/main/org/jboss/unit/report/impl/console/PrintListener.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/unit/report/impl/console/PrintListener.java 2007-10-10 13:37:03 UTC (rev 8585)
+++ modules/test/trunk/unit/src/main/org/jboss/unit/report/impl/console/PrintListener.java 2007-10-10 13:45:09 UTC (rev 8586)
@@ -71,13 +71,13 @@
TestResult testResult = endTestEvent.getTestResult();
if (testResult instanceof TestSuccess)
{
- System.out.println("Test id=" + testId + " is successful");
+ System.out.println("Test id=" + testId + " is successful (" + testResult.getDurationMillis() + "ms)");
}
else if (testResult instanceof TestFailure)
{
TestFailure testFailure = (TestFailure)testResult;
Failure failure = testFailure.getFailure();
- System.out.println("Test id=" + testId + " " + failure.getType() + " failed " + failure.getMessage());
+ System.out.println("Test id=" + testId + " " + failure.getType() + " failed " + failure.getMessage() + " (" + testResult.getDurationMillis() + "ms)");
if (failure.getCause() != null)
{
failure.getCause().printStackTrace();
Modified: modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/TestDriverRunner.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/TestDriverRunner.java 2007-10-10 13:37:03 UTC (rev 8585)
+++ modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/TestDriverRunner.java 2007-10-10 13:45:09 UTC (rev 8586)
@@ -124,21 +124,31 @@
TestResult result = null;
//
+ long duration = -System.currentTimeMillis();
+
+ //
DriverResponse response = null;
try
{
- response = driver.invoke(testId, command);
+ try
+ {
+ response = driver.invoke(testId, command);
+ }
+ finally
+ {
+ duration += System.currentTimeMillis();
+ }
}
catch (Exception e)
{
Failure failure = new Failure("The test driver threw an unexpected exception ", e, FailureType.ERROR);
- result = new TestFailure(failure, parametrization, 0);
+ result = new TestFailure(failure, parametrization, duration);
}
//
if (result == null)
{
- result = unwrap(response, parametrization);
+ result = unwrap(response, parametrization, duration);
}
//
@@ -148,22 +158,22 @@
}
}
- private TestResult unwrap(DriverResponse response, Map<String,String> parametrization)
+ private TestResult unwrap(DriverResponse response, Map<String,String> parametrization, long duration)
{
if (response instanceof EndTestResponse)
{
- return new TestSuccess(parametrization, 0);
+ return new TestSuccess(parametrization, duration);
}
else if (response instanceof FailureResponse)
{
FailureResponse failureResponse = (FailureResponse)response;
Failure failure = failureResponse.getFailure();
- return new TestFailure(failure, parametrization, 0);
+ return new TestFailure(failure, parametrization, duration);
}
else
{
Failure failure = new Failure("The test driver returned an unexpected response " + response, FailureType.ERROR);
- return new TestFailure(failure, parametrization, 0);
+ return new TestFailure(failure, parametrization, duration);
}
}
}
16 years, 8 months
JBoss Portal SVN: r8585 - in modules/test/trunk: build/ide/intellij/idea60/modules/remote and 5 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-10-10 09:37:03 -0400 (Wed, 10 Oct 2007)
New Revision: 8585
Modified:
modules/test/trunk/build/ide/intellij/idea60/modules/mc/mc.iml
modules/test/trunk/build/ide/intellij/idea60/modules/remote/remote.iml
modules/test/trunk/build/ide/intellij/idea60/modules/tooling/tooling.iml
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java
modules/test/trunk/unit/src/main/org/jboss/unit/info/impl/SimpleTestInfo.java
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/TestDriverRunner.java
modules/test/trunk/unit/src/main/org/jboss/unit/util/CollectionTools.java
Log:
added test case for end test event containing the test parametrization
Modified: modules/test/trunk/build/ide/intellij/idea60/modules/mc/mc.iml
===================================================================
--- modules/test/trunk/build/ide/intellij/idea60/modules/mc/mc.iml 2007-10-10 13:30:21 UTC (rev 8584)
+++ modules/test/trunk/build/ide/intellij/idea60/modules/mc/mc.iml 2007-10-10 13:37:03 UTC (rev 8585)
@@ -173,5 +173,9 @@
</orderEntry>
<orderEntryProperties />
</component>
+ <component name="VcsManagerConfiguration">
+ <option name="ACTIVE_VCS_NAME" value="svn" />
+ <option name="USE_PROJECT_VCS" value="false" />
+ </component>
</module>
Modified: modules/test/trunk/build/ide/intellij/idea60/modules/remote/remote.iml
===================================================================
--- modules/test/trunk/build/ide/intellij/idea60/modules/remote/remote.iml 2007-10-10 13:30:21 UTC (rev 8584)
+++ modules/test/trunk/build/ide/intellij/idea60/modules/remote/remote.iml 2007-10-10 13:37:03 UTC (rev 8585)
@@ -39,5 +39,9 @@
<orderEntry type="module" module-name="test" />
<orderEntryProperties />
</component>
+ <component name="VcsManagerConfiguration">
+ <option name="ACTIVE_VCS_NAME" value="svn" />
+ <option name="USE_PROJECT_VCS" value="false" />
+ </component>
</module>
Modified: modules/test/trunk/build/ide/intellij/idea60/modules/tooling/tooling.iml
===================================================================
--- modules/test/trunk/build/ide/intellij/idea60/modules/tooling/tooling.iml 2007-10-10 13:30:21 UTC (rev 8584)
+++ modules/test/trunk/build/ide/intellij/idea60/modules/tooling/tooling.iml 2007-10-10 13:37:03 UTC (rev 8585)
@@ -11,5 +11,9 @@
<orderEntry type="module" module-name="unit" />
<orderEntryProperties />
</component>
+ <component name="VcsManagerConfiguration">
+ <option name="ACTIVE_VCS_NAME" value="svn" />
+ <option name="USE_PROJECT_VCS" value="false" />
+ </component>
</module>
Modified: modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java 2007-10-10 13:30:21 UTC (rev 8584)
+++ modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java 2007-10-10 13:37:03 UTC (rev 8585)
@@ -26,6 +26,7 @@
import org.jboss.unit.runner.TestRunnerEventListener;
import org.jboss.unit.runner.TestRunnerEvent;
import org.jboss.unit.runner.TestResult;
+import org.jboss.unit.runner.ParametrizationSet;
import org.jboss.unit.runner.results.TestFailure;
import org.jboss.unit.runner.results.TestSuccess;
import org.jboss.unit.runner.event.EndTestEvent;
@@ -40,12 +41,17 @@
import org.jboss.unit.info.TestInfo;
import org.jboss.unit.info.impl.SimpleTestSuiteInfo;
import org.jboss.unit.info.impl.SimpleTestCaseInfo;
+import org.jboss.unit.info.impl.SimpleParameterInfo;
import org.jboss.unit.TestId;
import org.jboss.unit.FailureType;
import org.jboss.unit.Failure;
import java.util.List;
import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Set;
+import java.util.HashSet;
import static org.jboss.unit.api.Assert.*;
import static org.jboss.unit.api.Assert.assertEquals;
@@ -57,42 +63,138 @@
public class TestDriverRunnerTests
{
- private static class Blah implements TestRunnerEventListener
+ public static void main(String[] args)
{
+ testEmptyDriver();
- /** . */
- private final List<TestRunnerEvent> events = new ArrayList<TestRunnerEvent>();
+ //
+ testTestDriverInvokeTestCaseReturnsNull();
+ testTestDriverInvokeTestCaseReturnsAnEndTestResponse();
+ testTestDriverInvokeTestCaseReturnsAFailureResponse();
+ testTestDriverInvokeTestCaseThrowsRuntimeException();
+ testTestDriverInvokeTestCaseThrowsError();
- public void onEvent(TestRunnerEvent event)
+ //
+ testInvokeTestCaseWithParameters1();
+ testInvokeTestCaseWithParameters2();
+
+ // testInvokeTestSuiteWithParameters()
+ }
+
+ private static void testInvokeTestCaseWithParameters1()
+ {
+ Map<String,String[]> tmp = new HashMap<String, String[]>();
+ tmp.put("foo", new String[]{"bar"});
+ ParametrizationSet parametrizationSet = new ParametrizationSet(tmp);
+
+ //
+ TestDriverImpl testDriver = new TestDriverImpl()
{
- events.add(event);
- }
+ public DriverResponse invoke(TestId id, DriverCommand command)
+ {
+ return new EndTestResponse();
+ }
+ };
+ testDriver.info.addTest(new SimpleTestCaseInfo("Foo"));
+ TestDriverRunner runner = new TestDriverRunner(testDriver, parametrizationSet, new TestId());
+
+ //
+ EventList listener = new EventList();
+ runner.addListener(listener);
+
+ //
+ runner.run();
+
+ //
+ assertEquals(4, listener.events.size());
+ assertStartRunnerEvent(listener.events.get(0));
+ assertStartTestEvent(listener.events.get(1), new TestId("Foo"));
+ assertEndTestEvent(listener.events.get(2), new TestId("Foo"), new TestSuccess(0));
+ assertEndRunnerEvent(listener.events.get(3));
+
+ // Check parametrization
+ Set<Map<String,String>> s1 = new HashSet<Map<String, String>>();
+ s1.add(new HashMap<String,String>());
+ Set<Map<String,String>> s2 = new HashSet<Map<String, String>>();
+ s2.add(((EndTestEvent)listener.events.get(2)).getTestResult().getParametrization());
+ assertEquals(s1, s2);
}
- public static void main(String[] args)
+ private static void testInvokeTestCaseWithParameters2()
{
- testEmptyDriver();
- testTestDriverInvokeReturnsNull();
- testTestDriverInvokeReturnsAnEndTestResponse();
- testTestDriverInvokeReturnsAFailureResponse();
- testTestDriverInvokeThrowsRuntimeException();
+ Map<String,String[]> tmp = new HashMap<String, String[]>();
+ tmp.put("foo", new String[]{"bar1","bar2"});
+ ParametrizationSet parametrizationSet = new ParametrizationSet(tmp);
+ //
+ TestDriverImpl testDriver = new TestDriverImpl()
+ {
+ public DriverResponse invoke(TestId id, DriverCommand command)
+ {
+ return new EndTestResponse();
+ }
+ };
+ SimpleTestCaseInfo caseInfo = new SimpleTestCaseInfo("Foo");
+ Map<String,SimpleParameterInfo> blah = new HashMap<String,SimpleParameterInfo>(caseInfo.getParameters());
+ blah.put("foo", new SimpleParameterInfo("foo"));
+ caseInfo.setParameters(blah);
+ testDriver.info.addTest(caseInfo);
+ TestDriverRunner runner = new TestDriverRunner(testDriver, parametrizationSet, new TestId());
+ //
+ EventList listener = new EventList();
+ runner.addListener(listener);
+
+ //
+ runner.run();
+
+ //
+ assertEquals(6, listener.events.size());
+ assertStartRunnerEvent(listener.events.get(0));
+ assertStartTestEvent(listener.events.get(1), new TestId("Foo"));
+ assertEndTestEvent(listener.events.get(2), new TestId("Foo"), new TestSuccess(0));
+ assertStartTestEvent(listener.events.get(3), new TestId("Foo"));
+ assertEndTestEvent(listener.events.get(4), new TestId("Foo"), new TestSuccess(0));
+ assertEndRunnerEvent(listener.events.get(5));
+
+ // Check parametrization
+ Set<Map<String,String>> s1 = new HashSet<Map<String, String>>();
+ Map<String,String> p1 = new HashMap<String, String>();
+ p1.put("foo", "bar1");
+ Map<String,String> p2 = new HashMap<String, String>();
+ p2.put("foo", "bar2");
+ s1.add(p1);
+ s1.add(p2);
+ Set<Map<String,String>> s2 = new HashSet<Map<String, String>>();
+ s2.add(((EndTestEvent)listener.events.get(2)).getTestResult().getParametrization());
+ s2.add(((EndTestEvent)listener.events.get(4)).getTestResult().getParametrization());
+ assertEquals(s1, s2);
}
private static void testEmptyDriver()
{
TestDriverImpl testDriver = new TestDriverImpl();
TestDriverRunner runner = new TestDriverRunner(testDriver, new TestId());
+
+ //
+ EventList listener = new EventList();
+ runner.addListener(listener);
+
+ //
runner.run();
+
+ //
+ assertEquals(2, listener.events.size());
+ assertStartRunnerEvent(listener.events.get(0));
+ assertEndRunnerEvent(listener.events.get(1));
}
- private static void testTestDriverInvokeReturnsNull()
+ private static void testTestDriverInvokeTestCaseReturnsNull()
{
TestDriverImpl testDriver = new TestDriverImpl();
testDriver.info.addTest(new SimpleTestCaseInfo("Foo"));
TestDriverRunner runner = new TestDriverRunner(testDriver, new TestId());
- Blah listener = new Blah();
+ EventList listener = new EventList();
runner.addListener(listener);
//
@@ -106,7 +208,7 @@
assertEndRunnerEvent(listener.events.get(3));
}
- private static void testTestDriverInvokeReturnsAnEndTestResponse()
+ private static void testTestDriverInvokeTestCaseReturnsAnEndTestResponse()
{
TestDriverImpl testDriver = new TestDriverImpl()
{
@@ -117,7 +219,7 @@
};
testDriver.info.addTest(new SimpleTestCaseInfo("Foo"));
TestDriverRunner runner = new TestDriverRunner(testDriver, new TestId());
- Blah listener = new Blah();
+ EventList listener = new EventList();
runner.addListener(listener);
//
@@ -131,7 +233,7 @@
assertEndRunnerEvent(listener.events.get(3));
}
- private static void testTestDriverInvokeReturnsAFailureResponse()
+ private static void testTestDriverInvokeTestCaseReturnsAFailureResponse()
{
TestDriverImpl testDriver = new TestDriverImpl()
{
@@ -142,7 +244,7 @@
};
testDriver.info.addTest(new SimpleTestCaseInfo("Foo"));
TestDriverRunner runner = new TestDriverRunner(testDriver, new TestId());
- Blah listener = new Blah();
+ EventList listener = new EventList();
runner.addListener(listener);
//
@@ -156,7 +258,7 @@
assertEndRunnerEvent(listener.events.get(3));
}
- private static void testTestDriverInvokeThrowsRuntimeException()
+ private static void testTestDriverInvokeTestCaseThrowsRuntimeException()
{
TestDriverImpl testDriver = new TestDriverImpl()
{
@@ -167,7 +269,7 @@
};
testDriver.info.addTest(new SimpleTestCaseInfo("Foo"));
TestDriverRunner runner = new TestDriverRunner(testDriver, new TestId());
- Blah listener = new Blah();
+ EventList listener = new EventList();
runner.addListener(listener);
//
@@ -181,6 +283,39 @@
assertEndRunnerEvent(listener.events.get(3));
}
+ private static void testTestDriverInvokeTestCaseThrowsError()
+ {
+ final Error error = new Error();
+
+ //
+ TestDriverImpl testDriver = new TestDriverImpl()
+ {
+ public DriverResponse invoke(TestId id, DriverCommand command)
+ {
+ throw error;
+ }
+ };
+ testDriver.info.addTest(new SimpleTestCaseInfo("Foo"));
+ TestDriverRunner runner = new TestDriverRunner(testDriver, new TestId());
+ EventList listener = new EventList();
+ runner.addListener(listener);
+
+ //
+ try
+ {
+ runner.run();
+ }
+ catch (Error e)
+ {
+ assertSame(error, e);
+ }
+
+ //
+ assertEquals(2, listener.events.size());
+ assertStartRunnerEvent(listener.events.get(0));
+ assertStartTestEvent(listener.events.get(1), new TestId("Foo"));
+ }
+
private static class TestDriverImpl implements TestDriver
{
@@ -209,20 +344,22 @@
assertEquals(expectedTestId, startEvent.getTestId());
}
- private static void assertEndTestEvent(TestRunnerEvent event, TestId expectedTestId, TestResult expectedResult)
+ private static void assertEndTestEvent(TestRunnerEvent event, TestId expectedTestId, TestResult expectedTestResult)
{
EndTestEvent endEvent = assertInstanceOf(event, EndTestEvent.class);
assertEquals(expectedTestId, endEvent.getTestId());
- if (expectedResult instanceof TestFailure)
+
+ //
+ TestResult testResult = endEvent.getTestResult();
+ if (expectedTestResult instanceof TestFailure)
{
- TestFailure expectedTestFailure = (TestFailure)expectedResult;
- TestFailure testFailure = assertInstanceOf(endEvent.getTestResult(), TestFailure.class);
+ TestFailure expectedTestFailure = (TestFailure)expectedTestResult;
+ TestFailure testFailure = assertInstanceOf(testResult, TestFailure.class);
assertEquals(expectedTestFailure.getFailure().getType(), testFailure.getFailure().getType());
}
- else if (expectedResult instanceof TestSuccess)
+ else if (expectedTestResult instanceof TestSuccess)
{
- TestSuccess expectedTestSuccess = (TestSuccess)expectedResult;
- TestSuccess testSuccess = assertInstanceOf(endEvent.getTestResult(), TestSuccess.class);
+ assertInstanceOf(testResult, TestSuccess.class);
}
}
@@ -230,4 +367,16 @@
{
assertInstanceOf(event, EndRunnerEvent.class);
}
+
+ private static class EventList implements TestRunnerEventListener
+ {
+
+ /** . */
+ private final List<TestRunnerEvent> events = new ArrayList<TestRunnerEvent>();
+
+ public void onEvent(TestRunnerEvent event)
+ {
+ events.add(event);
+ }
+ }
}
Modified: modules/test/trunk/unit/src/main/org/jboss/unit/info/impl/SimpleTestInfo.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/unit/info/impl/SimpleTestInfo.java 2007-10-10 13:30:21 UTC (rev 8584)
+++ modules/test/trunk/unit/src/main/org/jboss/unit/info/impl/SimpleTestInfo.java 2007-10-10 13:37:03 UTC (rev 8585)
@@ -100,7 +100,7 @@
this.description = description;
}
- public Map<String, ? extends ParameterInfo> getParameters()
+ public Map<String, SimpleParameterInfo> getParameters()
{
return Collections.unmodifiableMap(parameters);
}
Modified: modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/TestDriverRunner.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/TestDriverRunner.java 2007-10-10 13:30:21 UTC (rev 8584)
+++ modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/TestDriverRunner.java 2007-10-10 13:37:03 UTC (rev 8585)
@@ -132,13 +132,13 @@
catch (Exception e)
{
Failure failure = new Failure("The test driver threw an unexpected exception ", e, FailureType.ERROR);
- result = new TestFailure(failure, 0);
+ result = new TestFailure(failure, parametrization, 0);
}
//
if (result == null)
{
- result = unwrap(response);
+ result = unwrap(response, parametrization);
}
//
@@ -148,22 +148,22 @@
}
}
- private TestResult unwrap(DriverResponse response)
+ private TestResult unwrap(DriverResponse response, Map<String,String> parametrization)
{
if (response instanceof EndTestResponse)
{
- return new TestSuccess(0);
+ return new TestSuccess(parametrization, 0);
}
else if (response instanceof FailureResponse)
{
FailureResponse failureResponse = (FailureResponse)response;
Failure failure = failureResponse.getFailure();
- return new TestFailure(failure, 0);
+ return new TestFailure(failure, parametrization, 0);
}
else
{
Failure failure = new Failure("The test driver returned an unexpected response " + response, FailureType.ERROR);
- return new TestFailure(failure, 0);
+ return new TestFailure(failure, parametrization, 0);
}
}
}
Modified: modules/test/trunk/unit/src/main/org/jboss/unit/util/CollectionTools.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/unit/util/CollectionTools.java 2007-10-10 13:30:21 UTC (rev 8584)
+++ modules/test/trunk/unit/src/main/org/jboss/unit/util/CollectionTools.java 2007-10-10 13:37:03 UTC (rev 8585)
@@ -102,4 +102,5 @@
}
return collection;
}
+
}
16 years, 8 months
JBoss Portal SVN: r8584 - in branches/JBoss_Portal_Branch_2_6: core-samples/src/main/org/jboss/portal/core/samples/basic and 1 other directory.
by portal-commits@lists.jboss.org
Author: thomas.heute(a)jboss.com
Date: 2007-10-10 09:30:21 -0400 (Wed, 10 Oct 2007)
New Revision: 8584
Modified:
branches/JBoss_Portal_Branch_2_6/core-samples/src/main/org/jboss/portal/core/samples/basic/TestPortlet.java
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/api/node/AbstractPortalNodeURL.java
Log:
JBPORTAL-1741: PortalURL security not honored
With test links in the TestPortlet
Modified: branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/api/node/AbstractPortalNodeURL.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/api/node/AbstractPortalNodeURL.java 2007-10-10 11:06:35 UTC (rev 8583)
+++ branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/api/node/AbstractPortalNodeURL.java 2007-10-10 13:30:21 UTC (rev 8584)
@@ -53,6 +53,9 @@
/** . */
protected boolean relative;
+ /** . */
+ protected URLContext urlContext;
+
public AbstractPortalNodeURL(PortalObjectId id, ControllerContext controllerContext)
{
this.id = id;
@@ -74,11 +77,17 @@
public void setAuthenticated(Boolean authenticated)
{
this.wantAuthenticated = authenticated;
+
+ //
+ this.urlContext = null;
}
public void setSecure(Boolean secure)
{
this.wantSecure = secure;
+
+ //
+ this.urlContext = null;
}
public void setRelative(boolean relative)
@@ -88,6 +97,41 @@
protected URLContext getURLContext()
{
- return controllerContext.getServerInvocation().getServerContext().getURLContext();
+ if (urlContext == null)
+ {
+ URLContext tmp = controllerContext.getServerInvocation().getServerContext().getURLContext();
+
+ //
+ if (wantSecure != null)
+ {
+ if (wantSecure.booleanValue())
+ {
+ tmp = tmp.asSecured();
+ }
+ else
+ {
+ tmp = tmp.asNonSecured();
+ }
+ }
+
+ //
+ if (wantAuthenticated != null)
+ {
+ if (wantAuthenticated.booleanValue())
+ {
+ tmp = tmp.asAuthenticated();
+ }
+ else
+ {
+ tmp = tmp.asNonAuthenticated();
+ }
+ }
+
+ //
+ urlContext = tmp;
+ }
+
+ //
+ return urlContext;
}
}
Modified: branches/JBoss_Portal_Branch_2_6/core-samples/src/main/org/jboss/portal/core/samples/basic/TestPortlet.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-samples/src/main/org/jboss/portal/core/samples/basic/TestPortlet.java 2007-10-10 11:06:35 UTC (rev 8583)
+++ branches/JBoss_Portal_Branch_2_6/core-samples/src/main/org/jboss/portal/core/samples/basic/TestPortlet.java 2007-10-10 13:30:21 UTC (rev 8584)
@@ -22,6 +22,7 @@
******************************************************************************/
package org.jboss.portal.core.samples.basic;
+import org.jboss.portal.api.node.PortalNodeURL;
import org.jboss.portal.common.transaction.TransactionManagerProvider;
import org.jboss.portal.core.CoreConstants;
import org.jboss.portal.identity.User;
@@ -147,7 +148,32 @@
writer.write("</div>");
writer.write("</p>");
+ PortalNodeURL nodeURL = resp.createRenderURL(req.getPortalNode());
+ String nothingURL = nodeURL.toString();
+ nodeURL.setAuthenticated(Boolean.TRUE);
+ nodeURL.setSecure(Boolean.TRUE);
+ String authenticatedSecureURL = nodeURL.toString();
+ nodeURL.setAuthenticated(Boolean.TRUE);
+ nodeURL.setSecure(Boolean.FALSE);
+ String authenticatedNotSecureURL = nodeURL.toString();
+ nodeURL.setAuthenticated(Boolean.FALSE);
+ nodeURL.setSecure(Boolean.FALSE);
+ String notAuthenticatedNotSecureURL = nodeURL.toString();
+ nodeURL.setAuthenticated(Boolean.FALSE);
+ nodeURL.setSecure(Boolean.TRUE);
+ String notAuthenticatedSecureURL = nodeURL.toString();
writer.write("<p>");
+ writer.write("<div class=\"portlet-section-header\">Portal node URLs</div>");
+ writer.write("<div class=\"portlet-section-body\">");
+ writer.write("<div><a href=\"" + nothingURL + "\">Keeping context</a></div>");
+ writer.write("<div><a href=\"" + authenticatedSecureURL + "\">Authenticated and Secured</a></div>");
+ writer.write("<div><a href=\"" + authenticatedNotSecureURL + "\">Authenticated and Not Secured</a></div>");
+ writer.write("<div><a href=\"" + notAuthenticatedNotSecureURL + "\">Not Authenticated and Not Secured</a></div>");
+ writer.write("<div><a href=\"" + notAuthenticatedSecureURL + "\">Not Authenticated and Secured</a></div>");
+ writer.write("</div>");
+ writer.write("</p>");
+
+ writer.write("<p>");
writer.write("<div class=\"portlet-section-header\">Path</div>");
writer.write("<div class=\"portlet-section-body\">");
writer.write("<div>portal path info = " + req.getAttribute("PATH") + "</div>");
16 years, 8 months
JBoss Portal SVN: r8582 - branches/JBoss_Portal_Branch_2_6/build.
by portal-commits@lists.jboss.org
Author: thomas.heute(a)jboss.com
Date: 2007-10-10 06:46:18 -0400 (Wed, 10 Oct 2007)
New Revision: 8582
Modified:
branches/JBoss_Portal_Branch_2_6/build/build-thirdparty.xml
Log:
Use portlet 1.1.0-SNAPSHOT
Use 1.0.0 version of the other modules
Modified: branches/JBoss_Portal_Branch_2_6/build/build-thirdparty.xml
===================================================================
--- branches/JBoss_Portal_Branch_2_6/build/build-thirdparty.xml 2007-10-10 10:35:18 UTC (rev 8581)
+++ branches/JBoss_Portal_Branch_2_6/build/build-thirdparty.xml 2007-10-10 10:46:18 UTC (rev 8582)
@@ -47,11 +47,11 @@
are pushed to the http://repository.jboss.com site.
-->
- <componentref name="jboss-portal/modules/common" version="1.0.0-SNAPSHOT"/>
- <componentref name="jboss-portal/modules/web" version="1.0.0-SNAPSHOT"/>
- <componentref name="jboss-portal/modules/test" version="1.0.0-SNAPSHOT"/>
- <componentref name="jboss-portal/modules/portlet" version="1.0.0-SNAPSHOT"/>
- <componentref name="jboss-portal/modules/identity" version="1.0.0-SNAPSHOT"/>
+ <componentref name="jboss-portal/modules/common" version="1.0.0"/>
+ <componentref name="jboss-portal/modules/web" version="1.0.0"/>
+ <componentref name="jboss-portal/modules/test" version="1.0.0"/>
+ <componentref name="jboss-portal/modules/portlet" version="1.1.0-SNAPSHOT"/>
+ <componentref name="jboss-portal/modules/identity" version="1.0.0"/>
<componentref name="antlr" version="2.7.6.ga"/>
<componentref name="apache-ant" version="1.6.5"/>
<componentref name="jackrabbit" version="1.1.1"/>
16 years, 8 months
JBoss Portal SVN: r8581 - in modules/portlet/trunk: portlet/src/main/org/jboss/portal/portlet/impl/container and 5 other directories.
by portal-commits@lists.jboss.org
Author: thomas.heute(a)jboss.com
Date: 2007-10-10 06:35:18 -0400 (Wed, 10 Oct 2007)
New Revision: 8581
Modified:
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletApplicationContext.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/container/PortletApplicationContextImpl.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/PortletContainerImpl.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/PortletInfoFactoryImpl.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/api/PortletRequestImpl.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/info/ContainerPortletInfo.java
modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/spi/PortletInfoFactory.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletApplicationDeployment.java
Log:
- PortletApplicationContext gets access to the webapp context
- Info Metadata gets access to the portletApplicationContext
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletApplicationContext.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletApplicationContext.java 2007-10-10 09:14:51 UTC (rev 8580)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletApplicationContext.java 2007-10-10 10:35:18 UTC (rev 8581)
@@ -42,6 +42,13 @@
ServletContext getServletContext();
/**
+ * Returns the context path of the web application
+ *
+ * @return the context path
+ */
+ String getContextPath();
+
+ /**
* Return the classloader.
*
* @return the classloader
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/container/PortletApplicationContextImpl.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/container/PortletApplicationContextImpl.java 2007-10-10 09:14:51 UTC (rev 8580)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/container/PortletApplicationContextImpl.java 2007-10-10 10:35:18 UTC (rev 8581)
@@ -71,6 +71,9 @@
/** . */
private PortletApplicationRegistrationContext registrationContext;
+
+ /** . */
+ private String contextPath;
public PortletApplicationContextImpl(
PortletApplicationRegistry registry,
@@ -79,7 +82,8 @@
PortletApplicationMetaData portletAppMD,
JBossApplicationMetaData jbossAppMD,
ServletContext servletContext,
- ClassLoader classLoader)
+ ClassLoader classLoader,
+ String contextPath)
{
this.registry = registry;
this.portletAPIFactory = portletAPIFactory;
@@ -88,6 +92,7 @@
this.jbossAppMD = jbossAppMD;
this.servletContext = servletContext;
this.classLoader = classLoader;
+ this.contextPath = contextPath;
}
public PortletApplicationImpl getPortletApplication()
@@ -189,6 +194,11 @@
return servletContext;
}
+ public String getContextPath()
+ {
+ return contextPath;
+ }
+
public ClassLoader getClassLoader()
{
return classLoader;
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/PortletContainerImpl.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/PortletContainerImpl.java 2007-10-10 09:14:51 UTC (rev 8580)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/PortletContainerImpl.java 2007-10-10 10:35:18 UTC (rev 8581)
@@ -220,7 +220,7 @@
bundleMgr);
// Create meta data
- PortletInfo info = application.getPortletInfoFactory().createPortletInfo(metaData, jbossMetaData, bundleMgr);
+ PortletInfo info = application.getPortletInfoFactory().createPortletInfo(application.getContext(), metaData, jbossMetaData, bundleMgr);
// Finally initialize the porlet instance
try
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/PortletInfoFactoryImpl.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/PortletInfoFactoryImpl.java 2007-10-10 09:14:51 UTC (rev 8580)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/PortletInfoFactoryImpl.java 2007-10-10 10:35:18 UTC (rev 8581)
@@ -22,6 +22,7 @@
******************************************************************************/
package org.jboss.portal.portlet.impl.jsr168;
+import org.jboss.portal.portlet.container.PortletApplicationContext;
import org.jboss.portal.portlet.impl.jsr168.spi.PortletInfoFactory;
import org.jboss.portal.portlet.impl.jsr168.metadata.PortletMetaData;
import org.jboss.portal.portlet.impl.jsr168.info.ContainerPortletInfo;
@@ -35,8 +36,8 @@
*/
public class PortletInfoFactoryImpl implements PortletInfoFactory
{
- public PortletInfo createPortletInfo(PortletMetaData portletMD, JBossPortletMetaData jbossPortletMD, ResourceBundleManager resourceBundleManager)
+ public PortletInfo createPortletInfo(PortletApplicationContext portletApplicationContext, PortletMetaData portletMD, JBossPortletMetaData jbossPortletMD, ResourceBundleManager resourceBundleManager)
{
- return new ContainerPortletInfo(portletMD, jbossPortletMD, resourceBundleManager);
+ return new ContainerPortletInfo(portletApplicationContext, portletMD, jbossPortletMD, resourceBundleManager);
}
}
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/api/PortletRequestImpl.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/api/PortletRequestImpl.java 2007-10-10 09:14:51 UTC (rev 8580)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/api/PortletRequestImpl.java 2007-10-10 10:35:18 UTC (rev 8581)
@@ -32,10 +32,10 @@
import org.jboss.portal.portlet.impl.jsr168.PortletRequestAttributes;
import org.jboss.portal.portlet.impl.jsr168.info.ContainerPreferencesInfo;
import org.jboss.portal.portlet.invocation.PortletInvocation;
-import org.jboss.portal.portlet.spi.InstanceContext;
import org.jboss.portal.portlet.spi.RequestContext;
import org.jboss.portal.portlet.spi.SecurityContext;
import org.jboss.portal.portlet.spi.UserContext;
+import org.jboss.portal.portlet.spi.WindowContext;
import org.jboss.portal.portlet.state.PropertyContext;
import javax.portlet.PortalContext;
@@ -75,7 +75,7 @@
protected UserContext userContext;
protected SecurityContext securityContext;
protected RequestContext requestContext;
- protected InstanceContext instanceContext;
+ protected WindowContext windowContext;
protected PortletPreferences preferences;
protected PortletContainerImpl container;
protected HttpServletRequest dreq;
@@ -96,7 +96,7 @@
this.userContext = invocation.getUserContext();
this.securityContext = invocation.getSecurityContext();
this.requestContext = invocation.getRequestContext();
- this.instanceContext = invocation.getInstanceContext();
+ this.windowContext = invocation.getWindowContext();
this.container = (PortletContainerImpl)invocation.getAttribute(PortletInvocation.INVOCATION_SCOPE, PortletContainerInvoker.PORTLET_CONTAINER);
this.dreq = invocation.getDispatchedRequest();
this.portalContext = new PortalContextImpl(invocation.getPortalContext());
@@ -393,7 +393,7 @@
PortletApplicationImpl portletApp = (PortletApplicationImpl)container.getApplication();
psession = new PortletSessionImpl(
hsession,
- instanceContext.getId(),
+ windowContext.getId(),
portletApp.getPortletContext());
}
else if (psession == null)
@@ -407,7 +407,7 @@
PortletApplicationImpl portletApp = (PortletApplicationImpl)container.getApplication();
psession = new PortletSessionImpl(
hsession,
- instanceContext.getId(),
+ windowContext.getId(),
portletApp.getPortletContext());
}
}
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/info/ContainerPortletInfo.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/info/ContainerPortletInfo.java 2007-10-10 09:14:51 UTC (rev 8580)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/info/ContainerPortletInfo.java 2007-10-10 10:35:18 UTC (rev 8581)
@@ -23,6 +23,7 @@
package org.jboss.portal.portlet.impl.jsr168.info;
import org.jboss.portal.common.i18n.ResourceBundleManager;
+import org.jboss.portal.portlet.container.PortletApplicationContext;
import org.jboss.portal.portlet.impl.jsr168.metadata.PortletMetaData;
import org.jboss.portal.portlet.info.CacheInfo;
import org.jboss.portal.portlet.info.CapabilitiesInfo;
@@ -52,6 +53,7 @@
private Boolean remotable;
public ContainerPortletInfo(
+ PortletApplicationContext portletApplicationContext,
PortletMetaData portletMD,
JBossPortletMetaData jbossPortletMD,
ResourceBundleManager bundleMgr)
Modified: modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/spi/PortletInfoFactory.java
===================================================================
--- modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/spi/PortletInfoFactory.java 2007-10-10 09:14:51 UTC (rev 8580)
+++ modules/portlet/trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/spi/PortletInfoFactory.java 2007-10-10 10:35:18 UTC (rev 8581)
@@ -22,6 +22,7 @@
******************************************************************************/
package org.jboss.portal.portlet.impl.jsr168.spi;
+import org.jboss.portal.portlet.container.PortletApplicationContext;
import org.jboss.portal.portlet.info.PortletInfo;
import org.jboss.portal.portlet.impl.jsr168.metadata.PortletMetaData;
import org.jboss.portal.portlet.metadata.JBossPortletMetaData;
@@ -45,6 +46,7 @@
* @return the runtime portlet meta data
*/
PortletInfo createPortletInfo(
+ PortletApplicationContext portletApplicationContext,
PortletMetaData portletMD,
JBossPortletMetaData jbossPortletMD,
ResourceBundleManager resourceBundleManager);
Modified: modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletApplicationDeployment.java
===================================================================
--- modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletApplicationDeployment.java 2007-10-10 09:14:51 UTC (rev 8580)
+++ modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletApplicationDeployment.java 2007-10-10 10:35:18 UTC (rev 8581)
@@ -250,4 +250,9 @@
{
throw new NotYetImplemented();
}
+
+ public String getContextPath()
+ {
+ throw new NotYetImplemented();
+ }
}
16 years, 8 months
JBoss Portal SVN: r8580 - branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/dtd and 3 other directories.
by portal-commits@lists.jboss.org
Author: thomas.heute(a)jboss.com
Date: 2007-10-10 05:14:51 -0400 (Wed, 10 Oct 2007)
New Revision: 8580
Modified:
branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/AdminPropertyResolver.java
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/portlet/info/CorePortletInfoFactory.java
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/portlet/info/CorePortletInfoImpl.java
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/portlet/info/PortletIconInfoImpl.java
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/portlet/info/PortletInfoInfoImpl.java
branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/dtd/jboss-portlet_2_6.dtd
branches/JBoss_Portal_Branch_2_6/portlet-server/src/main/org/jboss/portal/portlet/deployment/jboss/PortletAppDeployment.java
docs/trunk/referenceGuide/en/modules/xmldescriptors.xml
Log:
Automatically add the correct web context to the icon relative link
Modified: branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/portlet/info/CorePortletInfoFactory.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/portlet/info/CorePortletInfoFactory.java 2007-10-09 22:30:12 UTC (rev 8579)
+++ branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/portlet/info/CorePortletInfoFactory.java 2007-10-10 09:14:51 UTC (rev 8580)
@@ -22,6 +22,7 @@
******************************************************************************/
package org.jboss.portal.core.impl.portlet.info;
+import org.jboss.portal.portlet.container.PortletApplicationContext;
import org.jboss.portal.portlet.impl.jsr168.spi.PortletInfoFactory;
import org.jboss.portal.portlet.impl.jsr168.metadata.PortletMetaData;
import org.jboss.portal.portlet.info.PortletInfo;
@@ -35,10 +36,11 @@
public class CorePortletInfoFactory implements PortletInfoFactory
{
public PortletInfo createPortletInfo(
+ PortletApplicationContext portletApplicationContext,
PortletMetaData portletMD,
JBossPortletMetaData jbossPortletMD,
ResourceBundleManager resourceBundleManager)
{
- return new CorePortletInfoImpl(portletMD, jbossPortletMD, resourceBundleManager);
+ return new CorePortletInfoImpl(portletApplicationContext, portletMD, jbossPortletMD, resourceBundleManager);
}
}
Modified: branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/portlet/info/CorePortletInfoImpl.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/portlet/info/CorePortletInfoImpl.java 2007-10-09 22:30:12 UTC (rev 8579)
+++ branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/portlet/info/CorePortletInfoImpl.java 2007-10-10 09:14:51 UTC (rev 8580)
@@ -30,6 +30,7 @@
import org.jboss.portal.core.metadata.portlet.AjaxMetaData;
import org.jboss.portal.core.metadata.portlet.HeaderContentMetaData;
import org.jboss.portal.core.metadata.portlet.PortletInfoMetaData;
+import org.jboss.portal.portlet.container.PortletApplicationContext;
import org.jboss.portal.portlet.impl.jsr168.info.ContainerPortletInfo;
import org.jboss.portal.portlet.impl.jsr168.metadata.PortletMetaData;
import org.jboss.portal.common.i18n.ResourceBundleManager;
@@ -54,21 +55,21 @@
/** . */
private final PortletInfoInfoImpl portletInfo;
- public CorePortletInfoImpl(PortletMetaData portletMD, org.jboss.portal.portlet.metadata.JBossPortletMetaData jbossPortletMD, ResourceBundleManager bundleMgr)
+ public CorePortletInfoImpl(PortletApplicationContext portletApplicationContext, PortletMetaData portletMD, org.jboss.portal.portlet.metadata.JBossPortletMetaData jbossPortletMD, ResourceBundleManager bundleMgr)
{
- super(portletMD, jbossPortletMD, bundleMgr);
+ super(portletApplicationContext, portletMD, jbossPortletMD, bundleMgr);
//
AjaxMetaData ajaxMD = ((JBossPortletMetaData)jbossPortletMD).getAjax();
HeaderContentMetaData headerContentMD = ((JBossPortletMetaData)jbossPortletMD).getHeaderContent();
PortletInfoMetaData portletInfoMD = ((JBossPortletMetaData)jbossPortletMD).getPortletInfo();
-
+
//
this.txType = jbossPortletMD.getTxType();
this.ajax = ajaxMD != null ? new AjaxInfoImpl(ajaxMD) : null;
this.markupHeader = headerContentMD != null ? new MarkupHeaderInfoImpl(headerContentMD) : null;
- this.portletInfo = portletInfoMD != null ? new PortletInfoInfoImpl(portletInfoMD) : null;
- }
+ this.portletInfo = portletInfoMD != null ? new PortletInfoInfoImpl(portletApplicationContext, portletInfoMD) : null;
+ }
public Transactions.Type getTxType()
{
Modified: branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/portlet/info/PortletIconInfoImpl.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/portlet/info/PortletIconInfoImpl.java 2007-10-09 22:30:12 UTC (rev 8579)
+++ branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/portlet/info/PortletIconInfoImpl.java 2007-10-10 09:14:51 UTC (rev 8580)
@@ -26,7 +26,7 @@
import org.jboss.portal.core.metadata.portlet.PortletIconMetaData;
import org.jboss.portal.core.portlet.info.PortletIconInfo;
-import org.jboss.portal.core.portlet.info.PortletInfoInfo;
+import org.jboss.portal.portlet.container.PortletApplicationContext;
/**
* @author <a href="mailto:theute@jboss.org">Thomas Heute</a>
@@ -36,15 +36,19 @@
{
/** . */
private Map icons;
+
+ /** . */
+ private PortletApplicationContext portletApplicationContext;
- public PortletIconInfoImpl(PortletIconMetaData portletIconMetaData)
+ public PortletIconInfoImpl(PortletApplicationContext portletApplicationContext, PortletIconMetaData portletIconMetaData)
{
icons = portletIconMetaData.getIcons();
+ this.portletApplicationContext = portletApplicationContext;
}
public String getIconLocation(String size)
{
- return (String)icons.get(size);
+ return portletApplicationContext.getContextPath() + (String)icons.get(size);
}
}
Modified: branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/portlet/info/PortletInfoInfoImpl.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/portlet/info/PortletInfoInfoImpl.java 2007-10-09 22:30:12 UTC (rev 8579)
+++ branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/portlet/info/PortletInfoInfoImpl.java 2007-10-10 09:14:51 UTC (rev 8580)
@@ -25,6 +25,7 @@
import org.jboss.portal.core.metadata.portlet.PortletInfoMetaData;
import org.jboss.portal.core.portlet.info.PortletIconInfo;
import org.jboss.portal.core.portlet.info.PortletInfoInfo;
+import org.jboss.portal.portlet.container.PortletApplicationContext;
/**
* @author <a href="mailto:theute@jboss.org">Thomas Heute</a>
@@ -34,15 +35,19 @@
{
/** . */
private PortletInfoMetaData portletInfoMetaData;
+
+ /** . */
+ private PortletApplicationContext portletApplicationContext;
- public PortletInfoInfoImpl(PortletInfoMetaData portletInfoMetaData)
+ public PortletInfoInfoImpl(PortletApplicationContext portletApplicationContext, PortletInfoMetaData portletInfoMetaData)
{
+ this.portletApplicationContext = portletApplicationContext;
this.portletInfoMetaData = portletInfoMetaData;
}
public PortletIconInfo getPortletIconInfo()
{
- return new PortletIconInfoImpl(portletInfoMetaData.getPortletIcon());
+ return new PortletIconInfoImpl(portletApplicationContext, portletInfoMetaData.getPortletIcon());
}
}
Modified: branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/dtd/jboss-portlet_2_6.dtd
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/dtd/jboss-portlet_2_6.dtd 2007-10-09 22:30:12 UTC (rev 8579)
+++ branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/dtd/jboss-portlet_2_6.dtd 2007-10-10 09:14:51 UTC (rev 8580)
@@ -107,17 +107,17 @@
<!--
A small icon image, usually 16x16, gif, jpg and png are usually supported.
-An absolute URL or a URL starting with the context are accepted:
+An absolute URL or a URL starting with a '/' in the context of the webapp are accepted:
eg. http://www.example.com/images/smallIcon.png
-eg. /myWebAppContext/images/smallIcon.png
+eg. /images/smallIcon.png
-->
<!ELEMENT small-icon (#PCDATA)>
<!--
A large icon image, usually 32x32, gif, jpg and png are usually supported.
-An absolute URL or a URL starting with the context are accepted:
+An absolute URL or a URL starting with a '/' in the context of the webapp are accepted:
eg. http://www.example.com/images/smallIcon.png
-eg. /myWebAppContext/images/smallIcon.png
+eg. /images/smallIcon.png
-->
<!ELEMENT large-icon (#PCDATA)>
Modified: branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/AdminPropertyResolver.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/AdminPropertyResolver.java 2007-10-09 22:30:12 UTC (rev 8579)
+++ branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/AdminPropertyResolver.java 2007-10-10 09:14:51 UTC (rev 8580)
@@ -32,6 +32,9 @@
import org.jboss.portal.core.model.portal.PortalObject;
import org.jboss.portal.core.model.portal.PortalObjectId;
import org.jboss.portal.core.model.portal.PortalObjectPath;
+import org.jboss.portal.core.portlet.info.CorePortletInfo;
+import org.jboss.portal.core.portlet.info.PortletIconInfo;
+import org.jboss.portal.core.portlet.info.PortletInfoInfo;
import org.jboss.portal.faces.el.DelegatingPropertyResolver;
import org.jboss.portal.faces.el.decorator.AbstractBeanDecorator;
import org.jboss.portal.faces.el.decorator.AbstractPropertyDecorator;
@@ -187,6 +190,40 @@
return new ArrayList(portlet.getInfo().getCapabilities().getAllLocales());
}
});
+ portletDecorator.setProperty("smallIconLocation", new AbstractPropertyDecorator(String.class)
+ {
+ public Object getValue(Object bean) throws IllegalArgumentException
+ {
+ Portlet portlet = (Portlet)bean;
+ CorePortletInfo cInfo = (CorePortletInfo)portlet.getInfo();
+ PortletInfoInfo portletInfo = cInfo.getPortletInfo();
+ if (portletInfo != null && portletInfo.getPortletIconInfo() != null && portletInfo.getPortletIconInfo().getIconLocation(PortletIconInfo.SMALL) != null)
+ {
+ return portletInfo.getPortletIconInfo().getIconLocation(PortletIconInfo.SMALL);
+ }
+ else
+ {
+ return "";
+ }
+ }
+ });
+ portletDecorator.setProperty("largeIconLocation", new AbstractPropertyDecorator(String.class)
+ {
+ public Object getValue(Object bean) throws IllegalArgumentException
+ {
+ Portlet portlet = (Portlet)bean;
+ CorePortletInfo cInfo = (CorePortletInfo)portlet.getInfo();
+ PortletInfoInfo portletInfo = cInfo.getPortletInfo();
+ if (portletInfo != null && portletInfo.getPortletIconInfo() != null && portletInfo.getPortletIconInfo().getIconLocation(PortletIconInfo.LARGE) != null)
+ {
+ return portletInfo.getPortletIconInfo().getIconLocation(PortletIconInfo.LARGE);
+ }
+ else
+ {
+ return "";
+ }
+ }
+ });
registerDecorator(Portlet.class, portletDecorator);
//
Modified: branches/JBoss_Portal_Branch_2_6/portlet-server/src/main/org/jboss/portal/portlet/deployment/jboss/PortletAppDeployment.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/portlet-server/src/main/org/jboss/portal/portlet/deployment/jboss/PortletAppDeployment.java 2007-10-09 22:30:12 UTC (rev 8579)
+++ branches/JBoss_Portal_Branch_2_6/portlet-server/src/main/org/jboss/portal/portlet/deployment/jboss/PortletAppDeployment.java 2007-10-10 09:14:51 UTC (rev 8580)
@@ -143,7 +143,8 @@
portletAppMD,
jbossAppMD,
pwa.getServletContext(),
- pwa.getClassLoader()
+ pwa.getClassLoader(),
+ pwa.getContextPath()
);
// Install portlet containers
Modified: docs/trunk/referenceGuide/en/modules/xmldescriptors.xml
===================================================================
--- docs/trunk/referenceGuide/en/modules/xmldescriptors.xml 2007-10-09 22:30:12 UTC (rev 8579)
+++ docs/trunk/referenceGuide/en/modules/xmldescriptors.xml 2007-10-10 09:14:51 UTC (rev 8580)
@@ -965,12 +965,14 @@
<portlet-name>ManagementPortlet</portlet-name>
<portlet-info>
<icon>
- <small-icon>/myPortetAppContext/images/smallIcon.png</small-icon>
- <large-icon>/myPortetAppContext/images/largeIcon.png</small-icon>
+ <small-icon>/images/smallIcon.png</small-icon>
+ <large-icon>/images/largeIcon.png</small-icon>
</icon>
</portlet-info>
</portlet>
</portlet-app>]]></programlisting>
+ The reference can be absolute (http://www.example.com/images/smallIcon.png) or relative to the
+ webapp context if starting with a '/'.
Those icons can be used by different part of the portal User Interface.
</para>
</sect3>
16 years, 8 months
JBoss Portal SVN: r8579 - in modules/test/trunk/unit/src/main/org/jboss: unit/runner/impl/driver and 1 other directory.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-10-09 18:30:12 -0400 (Tue, 09 Oct 2007)
New Revision: 8579
Modified:
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/TestDriverRunner.java
Log:
if the test driver throws a runtime exception, translate it as a test failure
Modified: modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java 2007-10-09 22:05:30 UTC (rev 8578)
+++ modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java 2007-10-09 22:30:12 UTC (rev 8579)
@@ -25,9 +25,13 @@
import org.jboss.unit.runner.impl.driver.TestDriverRunner;
import org.jboss.unit.runner.TestRunnerEventListener;
import org.jboss.unit.runner.TestRunnerEvent;
+import org.jboss.unit.runner.TestResult;
import org.jboss.unit.runner.results.TestFailure;
+import org.jboss.unit.runner.results.TestSuccess;
import org.jboss.unit.runner.event.EndTestEvent;
import org.jboss.unit.runner.event.StartTestEvent;
+import org.jboss.unit.runner.event.StartRunnerEvent;
+import org.jboss.unit.runner.event.EndRunnerEvent;
import org.jboss.unit.driver.TestDriver;
import org.jboss.unit.driver.DriverResponse;
import org.jboss.unit.driver.DriverCommand;
@@ -44,6 +48,7 @@
import java.util.ArrayList;
import static org.jboss.unit.api.Assert.*;
+import static org.jboss.unit.api.Assert.assertEquals;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -70,6 +75,7 @@
testTestDriverInvokeReturnsNull();
testTestDriverInvokeReturnsAnEndTestResponse();
testTestDriverInvokeReturnsAFailureResponse();
+ testTestDriverInvokeThrowsRuntimeException();
}
@@ -86,26 +92,18 @@
TestDriverImpl testDriver = new TestDriverImpl();
testDriver.info.addTest(new SimpleTestCaseInfo("Foo"));
TestDriverRunner runner = new TestDriverRunner(testDriver, new TestId());
-
Blah listener = new Blah();
runner.addListener(listener);
- // Check that we received an error
+ //
runner.run();
//
assertEquals(4, listener.events.size());
-
- //
- StartTestEvent startEvent = assertInstanceOf(listener.events.get(1), StartTestEvent.class);
- assertEquals(new TestId("Foo"), startEvent.getTestId());
-
- //
- EndTestEvent endEvent = assertInstanceOf(listener.events.get(2), EndTestEvent.class);
- assertEquals(new TestId("Foo"), endEvent.getTestId());
- TestFailure testFailure = assertInstanceOf(endEvent.getTestResult(), TestFailure.class);
- Failure failure = testFailure.getFailure();
- assertEquals(FailureType.ERROR, failure.getType());
+ assertStartRunnerEvent(listener.events.get(0));
+ assertStartTestEvent(listener.events.get(1), new TestId("Foo"));
+ assertEndTestEvent(listener.events.get(2), new TestId("Foo"), new TestFailure(new Failure("", FailureType.ERROR), 0));
+ assertEndRunnerEvent(listener.events.get(3));
}
private static void testTestDriverInvokeReturnsAnEndTestResponse()
@@ -119,9 +117,18 @@
};
testDriver.info.addTest(new SimpleTestCaseInfo("Foo"));
TestDriverRunner runner = new TestDriverRunner(testDriver, new TestId());
+ Blah listener = new Blah();
+ runner.addListener(listener);
- // Check that we received an internal error
+ //
runner.run();
+
+ //
+ assertEquals(4, listener.events.size());
+ assertStartRunnerEvent(listener.events.get(0));
+ assertStartTestEvent(listener.events.get(1), new TestId("Foo"));
+ assertEndTestEvent(listener.events.get(2), new TestId("Foo"), new TestSuccess(0));
+ assertEndRunnerEvent(listener.events.get(3));
}
private static void testTestDriverInvokeReturnsAFailureResponse()
@@ -135,11 +142,45 @@
};
testDriver.info.addTest(new SimpleTestCaseInfo("Foo"));
TestDriverRunner runner = new TestDriverRunner(testDriver, new TestId());
+ Blah listener = new Blah();
+ runner.addListener(listener);
- // Check that we received an internal error
+ //
runner.run();
+
+ //
+ assertEquals(4, listener.events.size());
+ assertStartRunnerEvent(listener.events.get(0));
+ assertStartTestEvent(listener.events.get(1), new TestId("Foo"));
+ assertEndTestEvent(listener.events.get(2), new TestId("Foo"), new TestFailure(new Failure("", FailureType.ERROR), 0));
+ assertEndRunnerEvent(listener.events.get(3));
}
+ private static void testTestDriverInvokeThrowsRuntimeException()
+ {
+ TestDriverImpl testDriver = new TestDriverImpl()
+ {
+ public DriverResponse invoke(TestId id, DriverCommand command)
+ {
+ throw new RuntimeException();
+ }
+ };
+ testDriver.info.addTest(new SimpleTestCaseInfo("Foo"));
+ TestDriverRunner runner = new TestDriverRunner(testDriver, new TestId());
+ Blah listener = new Blah();
+ runner.addListener(listener);
+
+ //
+ runner.run();
+
+ //
+ assertEquals(4, listener.events.size());
+ assertStartRunnerEvent(listener.events.get(0));
+ assertStartTestEvent(listener.events.get(1), new TestId("Foo"));
+ assertEndTestEvent(listener.events.get(2), new TestId("Foo"), new TestFailure(new Failure("", FailureType.ERROR), 0));
+ assertEndRunnerEvent(listener.events.get(3));
+ }
+
private static class TestDriverImpl implements TestDriver
{
@@ -157,6 +198,36 @@
}
}
+ private static void assertStartRunnerEvent(TestRunnerEvent event)
+ {
+ assertInstanceOf(event, StartRunnerEvent.class);
+ }
+ private static void assertStartTestEvent(TestRunnerEvent event, TestId expectedTestId)
+ {
+ StartTestEvent startEvent = assertInstanceOf(event, StartTestEvent.class);
+ assertEquals(expectedTestId, startEvent.getTestId());
+ }
+ private static void assertEndTestEvent(TestRunnerEvent event, TestId expectedTestId, TestResult expectedResult)
+ {
+ EndTestEvent endEvent = assertInstanceOf(event, EndTestEvent.class);
+ assertEquals(expectedTestId, endEvent.getTestId());
+ if (expectedResult instanceof TestFailure)
+ {
+ TestFailure expectedTestFailure = (TestFailure)expectedResult;
+ TestFailure testFailure = assertInstanceOf(endEvent.getTestResult(), TestFailure.class);
+ assertEquals(expectedTestFailure.getFailure().getType(), testFailure.getFailure().getType());
+ }
+ else if (expectedResult instanceof TestSuccess)
+ {
+ TestSuccess expectedTestSuccess = (TestSuccess)expectedResult;
+ TestSuccess testSuccess = assertInstanceOf(endEvent.getTestResult(), TestSuccess.class);
+ }
+ }
+
+ private static void assertEndRunnerEvent(TestRunnerEvent event)
+ {
+ assertInstanceOf(event, EndRunnerEvent.class);
+ }
}
Modified: modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/TestDriverRunner.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/TestDriverRunner.java 2007-10-09 22:05:30 UTC (rev 8578)
+++ modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/TestDriverRunner.java 2007-10-09 22:30:12 UTC (rev 8579)
@@ -118,24 +118,27 @@
fireEvent(new StartTestEvent(testId, testCaseInfo));
//
- DriverResponse response = driver.invoke(testId, new StartTestCommand(parametrization));
+ StartTestCommand command = new StartTestCommand(parametrization);
//
- TestResult result;
- if (response instanceof EndTestResponse)
+ TestResult result = null;
+
+ //
+ DriverResponse response = null;
+ try
{
- result = new TestSuccess(0);
+ response = driver.invoke(testId, command);
}
- else if (response instanceof FailureResponse)
+ catch (Exception e)
{
- FailureResponse failureResponse = (FailureResponse)response;
- Failure failure = failureResponse.getFailure();
+ Failure failure = new Failure("The test driver threw an unexpected exception ", e, FailureType.ERROR);
result = new TestFailure(failure, 0);
}
- else
+
+ //
+ if (result == null)
{
- Failure failure = new Failure("The test driver returned an unexpected response " + response, FailureType.ERROR);
- result = new TestFailure(failure, 0);
+ result = unwrap(response);
}
//
@@ -144,4 +147,23 @@
}
}
}
+
+ private TestResult unwrap(DriverResponse response)
+ {
+ if (response instanceof EndTestResponse)
+ {
+ return new TestSuccess(0);
+ }
+ else if (response instanceof FailureResponse)
+ {
+ FailureResponse failureResponse = (FailureResponse)response;
+ Failure failure = failureResponse.getFailure();
+ return new TestFailure(failure, 0);
+ }
+ else
+ {
+ Failure failure = new Failure("The test driver returned an unexpected response " + response, FailureType.ERROR);
+ return new TestFailure(failure, 0);
+ }
+ }
}
16 years, 8 months
JBoss Portal SVN: r8578 - in modules/test/trunk/unit/src/main/org/jboss: test/unit/runner and 6 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-10-09 18:05:30 -0400 (Tue, 09 Oct 2007)
New Revision: 8578
Added:
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java
Modified:
modules/test/trunk/unit/src/main/org/jboss/test/unit/AllTests.java
modules/test/trunk/unit/src/main/org/jboss/unit/FailureType.java
modules/test/trunk/unit/src/main/org/jboss/unit/TestId.java
modules/test/trunk/unit/src/main/org/jboss/unit/report/junit/JUnitReporter.java
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/composite/CompositeTestRunner.java
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/TestDriverRunner.java
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/event/EventDrivenTestRunner.java
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/pojo/POJOTestRunner.java
Log:
start to write test for TestDriverRunner
Modified: modules/test/trunk/unit/src/main/org/jboss/test/unit/AllTests.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/test/unit/AllTests.java 2007-10-09 18:59:45 UTC (rev 8577)
+++ modules/test/trunk/unit/src/main/org/jboss/test/unit/AllTests.java 2007-10-09 22:05:30 UTC (rev 8578)
@@ -28,6 +28,7 @@
import org.jboss.test.unit.pojo.junit.JUnitPOJOTests;
import org.jboss.test.unit.runner.CompositeTestRunnerTests;
import org.jboss.test.unit.runner.ParametrizationTests;
+import org.jboss.test.unit.runner.TestDriverRunnerTests;
import org.jboss.test.unit.runner.event.TestRunnerEventBroadcasterSupportTests;
import org.jboss.test.unit.runner.event.TestRunnerLifeCycleFilterTests;
import org.jboss.test.unit.runner.model.ModelTests;
@@ -46,6 +47,7 @@
AbstractPOJOTests.main(args);
JUnitPOJOTests.main(args);
CompositeTestRunnerTests.main(args);
+ TestDriverRunnerTests.main(args);
//
TestRunnerLifeCycleFilterTests.main(args);
Added: modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java (rev 0)
+++ modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java 2007-10-09 22:05:30 UTC (rev 8578)
@@ -0,0 +1,162 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.test.unit.runner;
+
+import org.jboss.unit.runner.impl.driver.TestDriverRunner;
+import org.jboss.unit.runner.TestRunnerEventListener;
+import org.jboss.unit.runner.TestRunnerEvent;
+import org.jboss.unit.runner.results.TestFailure;
+import org.jboss.unit.runner.event.EndTestEvent;
+import org.jboss.unit.runner.event.StartTestEvent;
+import org.jboss.unit.driver.TestDriver;
+import org.jboss.unit.driver.DriverResponse;
+import org.jboss.unit.driver.DriverCommand;
+import org.jboss.unit.driver.response.EndTestResponse;
+import org.jboss.unit.driver.response.FailureResponse;
+import org.jboss.unit.info.TestInfo;
+import org.jboss.unit.info.impl.SimpleTestSuiteInfo;
+import org.jboss.unit.info.impl.SimpleTestCaseInfo;
+import org.jboss.unit.TestId;
+import org.jboss.unit.FailureType;
+import org.jboss.unit.Failure;
+
+import java.util.List;
+import java.util.ArrayList;
+
+import static org.jboss.unit.api.Assert.*;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class TestDriverRunnerTests
+{
+
+ private static class Blah implements TestRunnerEventListener
+ {
+
+ /** . */
+ private final List<TestRunnerEvent> events = new ArrayList<TestRunnerEvent>();
+
+ public void onEvent(TestRunnerEvent event)
+ {
+ events.add(event);
+ }
+ }
+
+ public static void main(String[] args)
+ {
+ testEmptyDriver();
+ testTestDriverInvokeReturnsNull();
+ testTestDriverInvokeReturnsAnEndTestResponse();
+ testTestDriverInvokeReturnsAFailureResponse();
+
+
+ }
+
+ private static void testEmptyDriver()
+ {
+ TestDriverImpl testDriver = new TestDriverImpl();
+ TestDriverRunner runner = new TestDriverRunner(testDriver, new TestId());
+ runner.run();
+ }
+
+ private static void testTestDriverInvokeReturnsNull()
+ {
+ TestDriverImpl testDriver = new TestDriverImpl();
+ testDriver.info.addTest(new SimpleTestCaseInfo("Foo"));
+ TestDriverRunner runner = new TestDriverRunner(testDriver, new TestId());
+
+ Blah listener = new Blah();
+ runner.addListener(listener);
+
+ // Check that we received an error
+ runner.run();
+
+ //
+ assertEquals(4, listener.events.size());
+
+ //
+ StartTestEvent startEvent = assertInstanceOf(listener.events.get(1), StartTestEvent.class);
+ assertEquals(new TestId("Foo"), startEvent.getTestId());
+
+ //
+ EndTestEvent endEvent = assertInstanceOf(listener.events.get(2), EndTestEvent.class);
+ assertEquals(new TestId("Foo"), endEvent.getTestId());
+ TestFailure testFailure = assertInstanceOf(endEvent.getTestResult(), TestFailure.class);
+ Failure failure = testFailure.getFailure();
+ assertEquals(FailureType.ERROR, failure.getType());
+ }
+
+ private static void testTestDriverInvokeReturnsAnEndTestResponse()
+ {
+ TestDriverImpl testDriver = new TestDriverImpl()
+ {
+ public DriverResponse invoke(TestId id, DriverCommand command)
+ {
+ return new EndTestResponse();
+ }
+ };
+ testDriver.info.addTest(new SimpleTestCaseInfo("Foo"));
+ TestDriverRunner runner = new TestDriverRunner(testDriver, new TestId());
+
+ // Check that we received an internal error
+ runner.run();
+ }
+
+ private static void testTestDriverInvokeReturnsAFailureResponse()
+ {
+ TestDriverImpl testDriver = new TestDriverImpl()
+ {
+ public DriverResponse invoke(TestId id, DriverCommand command)
+ {
+ return new FailureResponse(FailureType.ERROR);
+ }
+ };
+ testDriver.info.addTest(new SimpleTestCaseInfo("Foo"));
+ TestDriverRunner runner = new TestDriverRunner(testDriver, new TestId());
+
+ // Check that we received an internal error
+ runner.run();
+ }
+
+ private static class TestDriverImpl implements TestDriver
+ {
+
+ /** . */
+ private SimpleTestSuiteInfo info = new SimpleTestSuiteInfo("blah");
+
+ public TestInfo getInfo()
+ {
+ return info;
+ }
+
+ public DriverResponse invoke(TestId id, DriverCommand command)
+ {
+ return null;
+ }
+ }
+
+
+
+}
Modified: modules/test/trunk/unit/src/main/org/jboss/unit/FailureType.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/unit/FailureType.java 2007-10-09 18:59:45 UTC (rev 8577)
+++ modules/test/trunk/unit/src/main/org/jboss/unit/FailureType.java 2007-10-09 22:05:30 UTC (rev 8578)
@@ -30,7 +30,13 @@
*/
public enum FailureType
{
+ /**
+ * A failure that is not expected
+ */
ERROR,
+
+ /**
+ * A failure that is expected.
+ */
ASSERTION,
- INTERNAL_ERROR
}
Modified: modules/test/trunk/unit/src/main/org/jboss/unit/TestId.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/unit/TestId.java 2007-10-09 18:59:45 UTC (rev 8577)
+++ modules/test/trunk/unit/src/main/org/jboss/unit/TestId.java 2007-10-09 22:05:30 UTC (rev 8578)
@@ -220,6 +220,9 @@
return false;
}
}
+
+ //
+ return true;
}
//
Modified: modules/test/trunk/unit/src/main/org/jboss/unit/report/junit/JUnitReporter.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/unit/report/junit/JUnitReporter.java 2007-10-09 18:59:45 UTC (rev 8577)
+++ modules/test/trunk/unit/src/main/org/jboss/unit/report/junit/JUnitReporter.java 2007-10-09 22:05:30 UTC (rev 8578)
@@ -88,10 +88,6 @@
{
report.runnerFailed((RunnerFailureEvent) event);
}
- else if (event instanceof StartTestEvent)
- {
- report.startTest((StartTestEvent) event);
- }
else if (event instanceof EndTestEvent)
{
report.endTest((EndTestEvent) event);
Modified: modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/composite/CompositeTestRunner.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/composite/CompositeTestRunner.java 2007-10-09 18:59:45 UTC (rev 8577)
+++ modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/composite/CompositeTestRunner.java 2007-10-09 22:05:30 UTC (rev 8578)
@@ -52,7 +52,7 @@
this.lifeCycleFilter = new TestRunnerLifeCycleFilter(broadcaster);
}
- public void internalRun(TestFilter filter)
+ protected void internalRun(TestFilter filter)
{
for (TestRunner runner : runners)
{
Modified: modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/TestDriverRunner.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/TestDriverRunner.java 2007-10-09 18:59:45 UTC (rev 8577)
+++ modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/TestDriverRunner.java 2007-10-09 22:05:30 UTC (rev 8578)
@@ -32,6 +32,7 @@
import org.jboss.unit.info.TestInfo;
import org.jboss.unit.TestId;
import org.jboss.unit.Failure;
+import org.jboss.unit.FailureType;
import org.jboss.unit.runner.results.TestSuccess;
import org.jboss.unit.runner.results.TestFailure;
import org.jboss.unit.runner.event.StartTestEvent;
@@ -40,6 +41,7 @@
import org.jboss.unit.runner.AbstractTestRunner;
import org.jboss.unit.runner.TestFilter;
import org.jboss.unit.runner.TestResult;
+import org.jboss.unit.runner.ParametrizationSet;
import java.util.Map;
import java.util.HashMap;
@@ -48,6 +50,13 @@
* An implementation that uses a test driver and transform test driver
* interactions into runner interactions.
*
+ * During the invocation of a test case through the <code>invoke</code> method of the test driver, it
+ * expects a non null response of type <code>EndTestResponse</code> or <code>FailureResponse</code>. For a normal
+ * test case invocation the runner will fire TODO
+ * If the test case invocation fails because an unexpected runtime exception is thrown or because the returned
+ * value is not of the expected type then the runner will broadcast an <code>EndTestEvent</code> with a <code>TestResult<code>
+ * object of type <code>TestFailure</code>.
+ *
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 1.1 $
*/
@@ -58,24 +67,24 @@
private final TestDriver driver;
/** . */
- private final Map<String,String> parametrization;
+ private final ParametrizationSet parametrizationSet;
/** . */
private final TestId testId;
- public TestDriverRunner(TestDriver driver, Map<String,String> parametrization, TestId testId)
+ public TestDriverRunner(TestDriver driver, ParametrizationSet parametrizationSet, TestId testId)
{
this.driver = driver;
- this.parametrization = parametrization;
+ this.parametrizationSet = parametrizationSet;
this.testId = testId;
}
public TestDriverRunner(TestDriver driver, TestId testId)
{
- this(driver, new HashMap<String, String>(), testId);
+ this(driver, new ParametrizationSet(), testId);
}
- public void internalRun(TestFilter filter)
+ protected void internalRun(TestFilter filter)
{
TestSuiteInfo info = (TestSuiteInfo)driver.getInfo();
@@ -83,38 +92,56 @@
TestInfo testInfo = info.findTest(testId);
//
+ internalRun(filter, testInfo, testId);
+ }
+
+ private void internalRun(TestFilter filter, TestInfo testInfo, TestId testId)
+ {
if (filter.include(testId, testInfo))
{
+ if (testInfo instanceof TestSuiteInfo)
+ {
+ TestSuiteInfo testSuiteInfo = (TestSuiteInfo)testInfo;
- if (testInfo instanceof TestCaseInfo)
+ //
+ for (String name : testSuiteInfo.getNames())
+ {
+ TestInfo childTestInfo = testSuiteInfo.getTest(name);
+ internalRun(filter, childTestInfo, new TestId(testId, name));
+ }
+ }
+ else
{
-
TestCaseInfo testCaseInfo = (TestCaseInfo)testInfo;
+ for (Map<String,String> parametrization : parametrizationSet.enumerate(testCaseInfo.getParameters().keySet()))
+ {
+ fireEvent(new StartTestEvent(testId, testCaseInfo));
- fireEvent(new StartTestEvent(testId, testCaseInfo));
+ //
+ DriverResponse response = driver.invoke(testId, new StartTestCommand(parametrization));
- DriverResponse response = driver.invoke(testId, new StartTestCommand(parametrization));
+ //
+ TestResult result;
+ if (response instanceof EndTestResponse)
+ {
+ result = new TestSuccess(0);
+ }
+ else if (response instanceof FailureResponse)
+ {
+ FailureResponse failureResponse = (FailureResponse)response;
+ Failure failure = failureResponse.getFailure();
+ result = new TestFailure(failure, 0);
+ }
+ else
+ {
+ Failure failure = new Failure("The test driver returned an unexpected response " + response, FailureType.ERROR);
+ result = new TestFailure(failure, 0);
+ }
- TestResult result = null;
-
- if (response instanceof EndTestResponse)
- {
- result = new TestSuccess(0);
+ //
+ fireEvent(new EndTestEvent(testId, result));
}
- else if (response instanceof FailureResponse)
- {
- FailureResponse failureResponse = (FailureResponse)response;
- Failure failure = failureResponse.getFailure();
- result = new TestFailure(failure, 0);
- }
-
- //
- fireEvent(new EndTestEvent(testId, result));
}
- else
- {
- fireEvent(new RunnerFailureEvent(Failure.createErrorFailure("Cannot execute test id " + testId)));
- }
}
}
}
Modified: modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/event/EventDrivenTestRunner.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/event/EventDrivenTestRunner.java 2007-10-09 18:59:45 UTC (rev 8577)
+++ modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/event/EventDrivenTestRunner.java 2007-10-09 22:05:30 UTC (rev 8578)
@@ -49,7 +49,7 @@
this.events = events;
}
- public void internalRun(TestFilter filter)
+ protected void internalRun(TestFilter filter)
{
for (TestRunnerEvent event : events)
{
Modified: modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/pojo/POJOTestRunner.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/pojo/POJOTestRunner.java 2007-10-09 18:59:45 UTC (rev 8577)
+++ modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/pojo/POJOTestRunner.java 2007-10-09 22:05:30 UTC (rev 8578)
@@ -42,7 +42,6 @@
import java.util.List;
import java.util.ArrayList;
-import java.util.Map;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -103,26 +102,17 @@
}
// Create parametrization
-
-
ParametrizationSet parametrizations = suite.getParameters().getParametrization();
parametrizations.merge(test.getParameters().getParametrization());
-// Map<String,Iterable<String>> generator = new HashMap<String, Iterable<String>>();
-
//
for (String testCaseName : testCaseNames)
{
TestId testCaseId = new TestId(testCaseName);
-
TestCaseInfo testCaseInfo = (TestCaseInfo)testSuiteInfo.findTest(testCaseId);
-
- for (Map<String,String> blah : parametrizations.enumerate(testCaseInfo.getParameters().keySet()))
- {
- TestDriverRunner runner = new TestDriverRunner(driver, blah, testCaseId);
- runner.addListener(lifeCycleFilter);
- runner.run(filter);
- }
+ TestDriverRunner runner = new TestDriverRunner(driver, parametrizations, testCaseId);
+ runner.addListener(lifeCycleFilter);
+ runner.run(filter);
}
}
catch (Exception e)
16 years, 8 months