You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2006/06/29 05:00:17 UTC

svn commit: r417925 - in /tapestry/tapestry4/trunk: ./ framework/src/scripts/ framework/src/test/org/apache/tapestry/ framework/src/test/org/apache/tapestry/binding/ framework/src/test/org/apache/tapestry/components/ framework/src/test/org/apache/tapes...

Author: jkuhnert
Date: Wed Jun 28 20:00:15 2006
New Revision: 417925

URL: http://svn.apache.org/viewvc?rev=417925&view=rev
Log:
Wow.....I really like testng..Go right click->run as testng test on the scripted mock tests now to see something 
more meaningful in your UI when running from idea/eclipse. Very cool!

Added:
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/junit/mock/TestMockApplications.java
      - copied, changed from r417829, tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/junit/mock/MockTester.java
Removed:
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/junit/mock/MockTester.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/junit/mock/TestMocks.java
Modified:
    tapestry/tapestry4/trunk/   (props changed)
    tapestry/tapestry4/trunk/framework/src/scripts/TestLocalization.xml
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/BaseComponentTestCase.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/BindingTestCase.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/TestExpressionBinding.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/TestListenerMethodBinding.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/TestMessageBinding.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/components/TestBlock.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/components/TestConditional.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/describe/ReportStatusHubTest.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/dojo/form/TestAutocompleter.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/error/StaleSessionExceptionPresenterTest.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/TestFormComponentContributorContext.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/TestImageSubmit.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/TestValidatableFieldSupportImpl.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/validator/TestValidatorFactory.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/html/FrameTest.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/html/ScriptTest.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/junit/mock/c19/Two.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/record/ClientPropertyPersistenceStrategyTest.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/record/PersistentPropertyDataEncoderTest.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/services/impl/TestBaseTagWriter.java
    tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/test/mock/MockResponse.java

Propchange: tapestry/tapestry4/trunk/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Wed Jun 28 20:00:15 2006
@@ -14,3 +14,4 @@
 .clover
 TestNG context suite.launch
 tapestry_org.apache.tapestry.*.xml
+temp-testng-customsuite.xml

Modified: tapestry/tapestry4/trunk/framework/src/scripts/TestLocalization.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/scripts/TestLocalization.xml?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/scripts/TestLocalization.xml (original)
+++ tapestry/tapestry4/trunk/framework/src/scripts/TestLocalization.xml Wed Jun 28 20:00:15 2006
@@ -57,7 +57,7 @@
 ]]>	
 		</assert-output>
 		
-			</request>
+	</request>
 
 	<request>
 	  	<parameter name="service" value="page"/>

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/BaseComponentTestCase.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/BaseComponentTestCase.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/BaseComponentTestCase.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/BaseComponentTestCase.java Wed Jun 28 20:00:15 2006
@@ -15,6 +15,7 @@
 package org.apache.tapestry;
 
 import static org.easymock.EasyMock.anyObject;
+import static org.easymock.EasyMock.checkOrder;
 import static org.easymock.EasyMock.eq;
 import static org.easymock.EasyMock.expect;
 import static org.testng.AssertJUnit.assertEquals;
@@ -215,7 +216,8 @@
     protected IBinding newBinding(Object value)
     {
         IBinding binding = newMock(IBinding.class);
-
+        checkOrder(binding, false);
+        
         expect(binding.getObject()).andReturn(value);
         return binding;
     }
@@ -264,6 +266,7 @@
     protected IPage newPage(String name, int count)
     {
         IPage page = newMock(IPage.class);
+        checkOrder(page, false);
         
         expect(page.getPageName()).andReturn(name).times(count);
         
@@ -423,6 +426,8 @@
     protected Location fabricateLocation(int line)
     {
         Location location = newLocation();
+        checkOrder(location, false);
+        
         expect(location.getLineNumber()).andReturn(line).anyTimes();
         
         return location;

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/BindingTestCase.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/BindingTestCase.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/BindingTestCase.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/BindingTestCase.java Wed Jun 28 20:00:15 2006
@@ -19,7 +19,6 @@
 import org.apache.tapestry.BaseComponentTestCase;
 import org.apache.tapestry.IComponent;
 import org.apache.tapestry.coerce.ValueConverter;
-import org.testng.annotations.Test;
 
 /**
  * Base class for building tests for {@link org.apache.tapestry.IBinding}implementations.
@@ -27,7 +26,6 @@
  * @author Howard M. Lewis Ship
  * @since 4.0
  */
-@Test
 public abstract class BindingTestCase extends BaseComponentTestCase
 {
     protected IComponent newComponent(String extendedId)

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/TestExpressionBinding.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/TestExpressionBinding.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/TestExpressionBinding.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/TestExpressionBinding.java Wed Jun 28 20:00:15 2006
@@ -19,6 +19,7 @@
 import static org.testng.AssertJUnit.assertEquals;
 import static org.testng.AssertJUnit.assertSame;
 
+import org.apache.hivemind.Location;
 import org.apache.tapestry.BindingException;
 import org.apache.tapestry.IComponent;
 import org.apache.tapestry.coerce.ValueConverter;
@@ -41,7 +42,8 @@
         ExpressionEvaluator ev = newMock(ExpressionEvaluator.class);
         ExpressionCache ec = newMock(ExpressionCache.class);
         IComponent component = newMock(IComponent.class);
-
+        Location l = fabricateLocation(1);
+        
         Object compiled = new Object();
         
         Object expressionValue = "EXPRESSION-VALUE";
@@ -58,7 +60,7 @@
         
         replay();
         
-        ExpressionBinding b = new ExpressionBinding("param", fabricateLocation(1), vc, component,
+        ExpressionBinding b = new ExpressionBinding("param", l, vc, component,
                 "exp", ev, ec);
         
         assertEquals(true, b.isInvariant());
@@ -83,7 +85,8 @@
     {
         ExpressionEvaluator ev = newMock(ExpressionEvaluator.class);
         ExpressionCache ec = newMock(ExpressionCache.class);
-
+        Location l = fabricateLocation(1);
+        
         IComponent component = newComponent();
         Object compiled = new Object();
 
@@ -91,7 +94,7 @@
         Object expressionValue2 = new Object();
 
         ValueConverter vc = newValueConverter();
-
+        
         expect(ec.getCompiledExpression("exp")).andReturn(compiled);
 
         expect(ev.isConstant("exp")).andReturn(false);
@@ -99,12 +102,12 @@
         expect(ev.readCompiled(component, compiled)).andReturn(expressionValue1);
 
         expect(ev.readCompiled(component, compiled)).andReturn(expressionValue2);
-
+        
         replay();
-
-        ExpressionBinding b = new ExpressionBinding("param", fabricateLocation(1), vc, component,
+        
+        ExpressionBinding b = new ExpressionBinding("param", l, vc, component,
                 "exp", ev, ec);
-
+        
         assertEquals(false, b.isInvariant());
 
         // Check that the expression is re-evaluated on
@@ -121,7 +124,8 @@
     {
         ExpressionEvaluator ev = newMock(ExpressionEvaluator.class);
         ExpressionCache ec = newMock(ExpressionCache.class);
-
+        Location l = fabricateLocation(1);
+        
         IComponent component = newComponent();
         Object compiled = new Object();
 
@@ -137,7 +141,7 @@
 
         replay();
 
-        ExpressionBinding b = new ExpressionBinding("param", fabricateLocation(1), vc, component,
+        ExpressionBinding b = new ExpressionBinding("param", l, vc, component,
                 "exp", ev, ec);
 
         b.setObject(newValue);
@@ -149,10 +153,11 @@
     {
         ExpressionEvaluator ev = newMock(ExpressionEvaluator.class);
         ExpressionCache ec = newMock(ExpressionCache.class);
-
+        Location l = fabricateLocation(1);
+        
         IComponent component = newComponent("Foo/bar.baz");
         Object compiled = new Object();
-
+        
         ValueConverter vc = newValueConverter();
 
         expect(ec.getCompiledExpression("exp")).andReturn(compiled);
@@ -161,7 +166,7 @@
 
         replay();
 
-        ExpressionBinding b = new ExpressionBinding("parameter foo", fabricateLocation(1), vc, component,
+        ExpressionBinding b = new ExpressionBinding("parameter foo", l, vc, component,
                 "exp", ev, ec);
 
         try
@@ -183,7 +188,8 @@
     {
         ExpressionEvaluator ev = newMock(ExpressionEvaluator.class);
         ExpressionCache ec = newMock(ExpressionCache.class);
-
+        Location l = fabricateLocation(1);
+        
         IComponent component = newComponent();
         Object compiled = new Object();
 
@@ -202,7 +208,7 @@
 
         replay();
 
-        ExpressionBinding b = new ExpressionBinding("param", fabricateLocation(1), vc, component,
+        ExpressionBinding b = new ExpressionBinding("param", l, vc, component,
                 "exp", ev, ec);
 
         try
@@ -223,7 +229,8 @@
     {
         ExpressionEvaluator ev = newMock(ExpressionEvaluator.class);
         ExpressionCache ec = newMock(ExpressionCache.class);
-
+        Location l = fabricateLocation(1);
+        
         IComponent component = newComponent();
         ValueConverter vc = newValueConverter();
 
@@ -233,7 +240,7 @@
 
         replay();
 
-        ExpressionBinding b = new ExpressionBinding("param", fabricateLocation(1), vc, component,
+        ExpressionBinding b = new ExpressionBinding("param", l, vc, component,
                 "exp", ev, ec);
 
         try
@@ -254,7 +261,8 @@
     {
         ExpressionEvaluator ev = newMock(ExpressionEvaluator.class);
         ExpressionCache ec = newMock(ExpressionCache.class);
-
+        Location l = fabricateLocation(1);
+        
         IComponent component = newComponent();
         Object compiled = new Object();
 
@@ -271,7 +279,7 @@
 
         replay();
 
-        ExpressionBinding b = new ExpressionBinding("param", fabricateLocation(1), vc, component,
+        ExpressionBinding b = new ExpressionBinding("param", l, vc, component,
                 "exp", ev, ec);
 
         try

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/TestListenerMethodBinding.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/TestListenerMethodBinding.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/TestListenerMethodBinding.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/TestListenerMethodBinding.java Wed Jun 28 20:00:15 2006
@@ -16,8 +16,7 @@
 
 import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.expectLastCall;
-import static org.testng.AssertJUnit.assertEquals;
-import static org.testng.AssertJUnit.assertSame;
+import static org.testng.AssertJUnit.*;
 
 import org.apache.hivemind.Location;
 import org.apache.tapestry.BindingException;
@@ -72,18 +71,16 @@
         ValueConverter vc = newValueConverter();
 
         trainGetExtendedId(component, "Fred/barney");
-
+        
         replay();
-
+        
         ListenerMethodBinding b = new ListenerMethodBinding("param", vc, l, component, "foo");
 
         String toString = b.toString();
         String description = toString.substring(toString.indexOf('[') + 1, toString.length() - 1);
-
-        assertEquals(
-                "param, component=Fred/barney, methodName=foo, location=classpath:/org/apache/tapestry/binding/TestListenerMethodBinding, line 1",
-                description);
-
+        
+        assertTrue(description.indexOf("param, component=Fred/barney, methodName=foo, location=") > -1);
+        
         verify();
     }
 

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/TestMessageBinding.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/TestMessageBinding.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/TestMessageBinding.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/binding/TestMessageBinding.java Wed Jun 28 20:00:15 2006
@@ -18,6 +18,7 @@
 import static org.testng.AssertJUnit.assertEquals;
 import static org.testng.AssertJUnit.assertSame;
 
+import org.apache.hivemind.Location;
 import org.apache.hivemind.Messages;
 import org.apache.tapestry.IComponent;
 import org.apache.tapestry.coerce.ValueConverter;
@@ -37,10 +38,11 @@
     {
         IComponent component = newMock(IComponent.class);
         ValueConverter vc = newValueConverter();
-
+        Location l = fabricateLocation(12);
+        
         replay();
 
-        MessageBinding b = new MessageBinding("param", vc, fabricateLocation(12), component, "key");
+        MessageBinding b = new MessageBinding("param", vc, l, component, "key");
 
         assertSame(component, b.getComponent());
         assertEquals("key", b.getKey());
@@ -52,12 +54,13 @@
     {
         IComponent component = newComponent();
         ValueConverter vc = newValueConverter();
-
+        Location l = fabricateLocation(12);
+        
         expect(component.getExtendedId()).andReturn("Foo/bar.baz");
 
         replay();
 
-        MessageBinding b = new MessageBinding("param", vc, fabricateLocation(12), component, "key");
+        MessageBinding b = new MessageBinding("param", vc, l, component, "key");
 
         assertEquals("StringBinding[Foo/bar.baz key]", b.toString());
 
@@ -68,7 +71,8 @@
     {
         Messages m = newMock(Messages.class);
         IComponent component = newComponent();
-
+        Location l = fabricateLocation(12);
+        
         ValueConverter vc = newValueConverter();
 
         expect(component.getMessages()).andReturn(m);
@@ -76,7 +80,7 @@
         expect(m.getMessage("key")).andReturn("value");
 
         replay();
-        MessageBinding b = new MessageBinding("param", vc, fabricateLocation(12), component, "key");
+        MessageBinding b = new MessageBinding("param", vc, l, component, "key");
 
         assertEquals("value", b.getObject());
 

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/components/TestBlock.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/components/TestBlock.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/components/TestBlock.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/components/TestBlock.java Wed Jun 28 20:00:15 2006
@@ -72,14 +72,15 @@
 
         IBinding binding = newBinding(parameterValue);
         IComponent component = newComponent();
-
+        
         expect(component.getBinding("fred")).andReturn(binding);
+        
         replay();
-
+        
         Block block = (Block) newInstance(Block.class);
-
+        
         block.setInvoker(component);
-
+        
         assertSame(parameterValue, block.getParameter("fred"));
 
         verify();

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/components/TestConditional.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/components/TestConditional.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/components/TestConditional.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/components/TestConditional.java Wed Jun 28 20:00:15 2006
@@ -91,15 +91,15 @@
     }
 
     public void testElement()
-    {
-        IBinding informal = newBinding("informal-value");
-        IComponentSpecification spec = newSpec("informal", null);
-        
+    {   
         IMarkupWriter writer = newWriter();
-        IRequestCycle cycle = newCycle(false, writer);
-        IRender body = newRender(writer, cycle);
-
+        IRequestCycle cycle = newCycle(false, null);
+        
         writer.begin("div");
+        
+        IComponentSpecification spec = newSpec("informal", null);
+        IBinding informal = newBinding("informal-value");
+        
         writer.attribute("informal", "informal-value");
 
         // We've trained body, but there's no way to ensure,
@@ -107,9 +107,13 @@
         // order. But sometimes you have to trust the code (
         // and trust that future developers won't break something
         // that obvious!).
-
+        
+        trainResponseBuilder(cycle, writer);
+        
+        IRender body = newRender(writer, cycle);
+        
         writer.end("div");
-
+        
         replay();
 
         Conditional conditional = newInstance(Conditional.class, new Object[]

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/describe/ReportStatusHubTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/describe/ReportStatusHubTest.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/describe/ReportStatusHubTest.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/describe/ReportStatusHubTest.java Wed Jun 28 20:00:15 2006
@@ -30,7 +30,7 @@
 @Test
 public class ReportStatusHubTest extends BaseDescribeTestCase
 {
-    public RootDescriptionReceiverFactory newReceiverFactory(IMarkupWriter writer,
+    private RootDescriptionReceiverFactory newReceiverFactory(IMarkupWriter writer,
             RootDescriptionReciever receiver)
     {
         RootDescriptionReceiverFactory factory = newReceiverFactory();
@@ -40,12 +40,12 @@
         return factory;
     }
 
-    protected RootDescriptionReceiverFactory newReceiverFactory()
+    private RootDescriptionReceiverFactory newReceiverFactory()
     {
         return newMock(RootDescriptionReceiverFactory.class);
     }
 
-    public static class ListenerFixture implements ReportStatusListener
+    private static class ListenerFixture implements ReportStatusListener
     {
 
         public void reportStatus(ReportStatusEvent event)
@@ -99,7 +99,7 @@
 
     }
 
-    protected RootDescriptionReciever newRootReceiver()
+    private RootDescriptionReciever newRootReceiver()
     {
         return newMock(RootDescriptionReciever.class);
     }

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/dojo/form/TestAutocompleter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/dojo/form/TestAutocompleter.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/dojo/form/TestAutocompleter.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/dojo/form/TestAutocompleter.java Wed Jun 28 20:00:15 2006
@@ -14,9 +14,7 @@
 
 package org.apache.tapestry.dojo.form;
 
-import static org.easymock.EasyMock.eq;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.isA;
+import static org.easymock.EasyMock.*;
 import static org.testng.AssertJUnit.assertEquals;
 
 import java.util.Map;
@@ -132,6 +130,9 @@
         
         IRequestCycle cycle = newMock(IRequestCycle.class);
         IForm form = newMock(IForm.class);
+        checkOrder(form, false);
+        
+        expect(form.getName()).andReturn("testform").anyTimes();
         
         IMarkupWriter writer = newBufferWriter();
         
@@ -155,6 +156,7 @@
         
         trainGetForm(cycle, form);
         trainWasPrerendered(form, writer, component, false);
+        
         trainGetDelegate(form, delegate);
         
         delegate.setFormComponent(component);
@@ -164,8 +166,6 @@
         trainIsRewinding(cycle, false);
         
         delegate.setFormComponent(component);
-        
-        trainGetDelegate(form, delegate);
         
         vfs.renderContributions(component, writer, cycle);
         

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/error/StaleSessionExceptionPresenterTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/error/StaleSessionExceptionPresenterTest.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/error/StaleSessionExceptionPresenterTest.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/error/StaleSessionExceptionPresenterTest.java Wed Jun 28 20:00:15 2006
@@ -33,10 +33,11 @@
     {
         IPage page = newPage();
         IRequestCycle cycle = newCycle("StaleSession", page);
-        ResponseRenderer renderer = newRenderer(cycle, null);
-
+        
         cycle.activate(page);
 
+        ResponseRenderer renderer = newRenderer(cycle, null);
+        
         replay();
 
         StaleSessionExceptionPresenterImpl presenter = new StaleSessionExceptionPresenterImpl();

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/TestFormComponentContributorContext.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/TestFormComponentContributorContext.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/TestFormComponentContributorContext.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/TestFormComponentContributorContext.java Wed Jun 28 20:00:15 2006
@@ -14,6 +14,7 @@
 
 package org.apache.tapestry.form;
 
+import static org.easymock.EasyMock.checkOrder;
 import static org.easymock.EasyMock.expect;
 
 import java.util.Locale;
@@ -41,7 +42,8 @@
     private IForm newForm(String name)
     {
         IForm form = newMock(IForm.class);
-
+        checkOrder(form, false);
+        
         expect(form.getName()).andReturn(name);
 
         return form;

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/TestImageSubmit.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/TestImageSubmit.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/TestImageSubmit.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/TestImageSubmit.java Wed Jun 28 20:00:15 2006
@@ -14,6 +14,7 @@
 
 package org.apache.tapestry.form;
 
+import static org.easymock.EasyMock.checkOrder;
 import static org.easymock.EasyMock.expect;
 import static org.testng.AssertJUnit.assertEquals;
 
@@ -42,7 +43,8 @@
     protected IAsset newAsset(IRequestCycle cycle, String imageURL)
     {
         IAsset asset = newMock(IAsset.class);
-
+        checkOrder(asset, false);
+        
         expect(asset.buildURL()).andReturn(imageURL);
 
         return asset;
@@ -75,7 +77,7 @@
         IRequestCycle cycle = newCycle();
         IMarkupWriter writer = newWriter();
         IAsset image = newAsset(cycle, "image-url");
-
+        
         Creator creator = new Creator();
         ImageSubmit submit = (ImageSubmit) creator.newInstance(ImageSubmit.class, new Object[]
         { "image", image });

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/TestValidatableFieldSupportImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/TestValidatableFieldSupportImpl.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/TestValidatableFieldSupportImpl.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/TestValidatableFieldSupportImpl.java Wed Jun 28 20:00:15 2006
@@ -14,6 +14,7 @@
 
 package org.apache.tapestry.form;
 
+import static org.easymock.EasyMock.checkOrder;
 import static org.easymock.EasyMock.eq;
 import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.expectLastCall;
@@ -54,8 +55,9 @@
     private ThreadLocale newThreadLocale()
     {
         ThreadLocale tl = newMock(ThreadLocale.class);
-
-        expect(tl.getLocale()).andReturn(Locale.ENGLISH);
+        checkOrder(tl, false);
+        
+        expect(tl.getLocale()).andReturn(Locale.ENGLISH).anyTimes();
 
         return tl;
     }
@@ -64,7 +66,7 @@
      * Lots of work to set up the request cycle here, since we have to train it about getting the
      * ClassResolver and the PageRenderSupport.
      */
-    protected IRequestCycle newCycle(IComponent component)
+    private IRequestCycle newCycle(IComponent component)
     {
         IRequestCycle cycle = newCycle();
 
@@ -143,15 +145,12 @@
         ValueConverter converter = newMock(ValueConverter.class);
         
         ValidatableFieldSupportImpl support = new ValidatableFieldSupportImpl();
-        support.setThreadLocale(newThreadLocale());
-        support.setValueConverter(converter);
         
         TranslatedField field = newMock(TranslatedField.class);
         
         IForm form = newMock(IForm.class);
         
         IMarkupWriter writer = newWriter();
-        IRequestCycle cycle = newCycle(field);
         
         Validator validator = newMock(Validator.class);
         
@@ -159,6 +158,9 @@
 
         expect(form.isClientValidationEnabled()).andReturn(true);
 
+        support.setThreadLocale(newThreadLocale());
+        support.setValueConverter(converter);
+        
         expect(field.getForm()).andReturn(form);
 
         expect(form.getName()).andReturn("myform");
@@ -166,7 +168,10 @@
         expect(field.getValidators()).andReturn(validator);
         
         expect(converter.coerceValue(validator, Iterator.class))
-        .andReturn(Collections.singleton(validator).iterator());
+        .andReturn(Collections.singleton(validator).iterator());        
+
+        
+        IRequestCycle cycle = newCycle(field);
         
         validator.renderContribution(eq(writer), eq(cycle), 
                 isA(FormComponentContributorContext.class), eq(field));
@@ -221,8 +226,6 @@
         ValueConverter converter = newMock(ValueConverter.class);
         
         ValidatableFieldSupportImpl support = new ValidatableFieldSupportImpl();
-        support.setThreadLocale(newThreadLocale());
-        support.setValueConverter(converter);
         
         TranslatedField field = newMock(TranslatedField.class);
         
@@ -238,6 +241,9 @@
         expect(converter.coerceValue(validator, Iterator.class))
         .andReturn(Collections.singleton(validator).iterator());
         
+        support.setThreadLocale(newThreadLocale());
+        support.setValueConverter(converter);
+        
         ValidatorException expected = new ValidatorException("test");
         
         try
@@ -264,8 +270,6 @@
         ValueConverter converter = newMock(ValueConverter.class);
         
         ValidatableFieldSupportImpl support = new ValidatableFieldSupportImpl();
-        support.setThreadLocale(newThreadLocale());
-        support.setValueConverter(converter);
         
         TranslatedField field = newMock(TranslatedField.class);
         
@@ -279,6 +283,9 @@
         expect(converter.coerceValue(null, Iterator.class))
         .andReturn(Collections.EMPTY_LIST.iterator());
         
+        support.setThreadLocale(newThreadLocale());
+        support.setValueConverter(converter);
+        
         try
         {
             replay();
@@ -298,13 +305,10 @@
         ValueConverter converter = newMock(ValueConverter.class);
         
         ValidatableFieldSupportImpl support = new ValidatableFieldSupportImpl();
-        support.setThreadLocale(newThreadLocale());
-        support.setValueConverter(converter);
         
         TranslatedField field = newMock(TranslatedField.class);
         
         IMarkupWriter writer = newWriter();
-        IRequestCycle cycle = newCycle();
         
         Validator validator = newMock(Validator.class);
         
@@ -313,8 +317,13 @@
         expect(converter.coerceValue(validator, Iterator.class))
         .andReturn(Collections.singleton(validator).iterator());
 
+        support.setThreadLocale(newThreadLocale());
+        support.setValueConverter(converter);
+        
         expect(validator.getAcceptsNull()).andReturn(true);
         
+        IRequestCycle cycle = newCycle();
+        
         try
         {
             validator.validate(eq(field), isA(ValidationMessages.class), isNull());
@@ -336,8 +345,6 @@
         ValueConverter converter = newMock(ValueConverter.class);
         
         ValidatableFieldSupportImpl support = new ValidatableFieldSupportImpl();
-        support.setThreadLocale(newThreadLocale());
-        support.setValueConverter(converter);
         
         TranslatedField field = newMock(TranslatedField.class);
         
@@ -351,6 +358,9 @@
         expect(converter.coerceValue(validator, Iterator.class))
         .andReturn(Collections.singleton(validator).iterator());
 
+        support.setThreadLocale(newThreadLocale());
+        support.setValueConverter(converter);
+        
         expect(validator.getAcceptsNull()).andReturn(false);
         
         try
@@ -388,7 +398,8 @@
     private Validator newValidator(boolean isRequired)
     {
         Validator validator = newMock(Validator.class);
-
+        checkOrder(validator, false);
+        
         expect(validator.isRequired()).andReturn(isRequired);
 
         return validator;
@@ -415,7 +426,7 @@
         Collection validators = Collections.singletonList(newValidator(false));
         ValidatableField field = newFieldGetValidators(validators);
         ValueConverter converter = newValueConverter(validators);
-
+        
         replay();
 
         ValidatableFieldSupportImpl support = new ValidatableFieldSupportImpl();

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/validator/TestValidatorFactory.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/validator/TestValidatorFactory.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/validator/TestValidatorFactory.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/validator/TestValidatorFactory.java Wed Jun 28 20:00:15 2006
@@ -14,6 +14,7 @@
 
 package org.apache.tapestry.form.validator;
 
+import static org.easymock.EasyMock.checkOrder;
 import static org.easymock.EasyMock.expect;
 import static org.testng.AssertJUnit.assertEquals;
 import static org.testng.AssertJUnit.assertSame;
@@ -283,7 +284,8 @@
     private IBeanProvider newBeanProvider(String beanName, Object bean)
     {
         IBeanProvider provider = newMock(IBeanProvider.class);
-
+        checkOrder(provider, false);
+        
         expect(provider.getBean(beanName)).andReturn(bean);
 
         return provider;

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/html/FrameTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/html/FrameTest.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/html/FrameTest.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/html/FrameTest.java Wed Jun 28 20:00:15 2006
@@ -42,9 +42,11 @@
         IRequestCycle cycle = newCycle();
 
         trainGetLink(pageService, cycle, false, "FramePage", link);
-        trainGetURL(link, "<LinkURL>");
 
         writer.beginEmpty("frame");
+        
+        trainGetURL(link, "<LinkURL>");
+        
         writer.attribute("src", "<LinkURL>");
 
         writer.closeTag();
@@ -61,18 +63,22 @@
 
     public void testRenderWithInformal()
     {
-        IBinding binding = newBinding("informal");
         IEngineService pageService = newEngineService();
         ILink link = newLink();
 
         IMarkupWriter writer = newWriter();
         IRequestCycle cycle = newCycle();
-
+        
         trainGetLink(pageService, cycle, false, "FramePage", link);
-        trainGetURL(link, "<LinkURL>");
-
+        
         writer.beginEmpty("frame");
+        
+        trainGetURL(link, "<LinkURL>");
+        
         writer.attribute("src", "<LinkURL>");
+        
+        IBinding binding = newBinding("informal");
+        
         writer.attribute("class", "informal");
 
         writer.closeTag();

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/html/ScriptTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/html/ScriptTest.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/html/ScriptTest.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/html/ScriptTest.java Wed Jun 28 20:00:15 2006
@@ -73,12 +73,17 @@
         IScriptSource source = newScriptSource();
         IScript script = newScript();
 
-        PageRenderSupport support = newPageRenderSupport();
-        IRequestCycle cycle = newCycle(false, false);
         IMarkupWriter writer = newWriter();
+        
+        PageRenderSupport support = newPageRenderSupport();
+        
+        IRequestCycle cycle = newCycle(false, null);
+        
+        trainGetPageRenderSupport(cycle, support);
+        
         Resource scriptLocation = newResource();
         IRender body = newRender();
-
+        
         IComponent container = newComponent();
 
         String scriptPath = "MyScript.script";
@@ -86,8 +91,6 @@
         Script component = newInstance(Script.class, new Object[]
         { "specification", new ComponentSpecification(), "container", container, "scriptSource",
                 source, "scriptPath", scriptPath });
-
-        trainGetPageRenderSupport(cycle, support);
         
         trainGetScriptLocation(container, scriptPath, scriptLocation);
         
@@ -95,9 +98,11 @@
 
         script.execute(cycle, support, new HashMap());
 
+        trainResponseBuilder(cycle, writer);
+        
         body.render(writer, cycle);
 
-        trainResponseBuilder(cycle, writer);
+        //trainResponseBuilder(cycle, writer);
         
         replay();
 
@@ -115,7 +120,10 @@
 
         PageRenderSupport support = newPageRenderSupport();
         IMarkupWriter writer = newWriter();
-        IRequestCycle cycle = newCycle(false, false);
+        IRequestCycle cycle = newCycle(false, null);
+        
+        trainGetPageRenderSupport(cycle, support);
+        
         Resource scriptLocation = newResource();
         IRender body = newRender();
 
@@ -130,16 +138,14 @@
         { "specification", new ComponentSpecification(), "container", container, "scriptSource",
                 source, "scriptPath", scriptPath, "baseSymbols", baseSymbols });
 
-        trainGetPageRenderSupport(cycle, support);
-
         trainGetScriptLocation(container, scriptPath, scriptLocation);
 
         trainGetScript(source, scriptLocation, script);
 
-        body.render(writer, cycle);
-
         trainResponseBuilder(cycle, writer);
         
+        body.render(writer, cycle);
+        
         replay();
 
         component.addBody(body);
@@ -159,7 +165,10 @@
         MockScript script = new MockScript();
 
         PageRenderSupport support = newPageRenderSupport();
-        IRequestCycle cycle = newCycle(false, false);
+        IRequestCycle cycle = newCycle(false, null);
+        
+        trainGetPageRenderSupport(cycle, support);
+        
         IMarkupWriter writer = newWriter();
         Resource scriptLocation = newResource();
         IRender body = newRender();
@@ -179,16 +188,14 @@
                 source, "scriptPath", scriptPath, "baseSymbols", baseSymbols });
         component.setBinding("fred", informal);
 
-        trainGetPageRenderSupport(cycle, support);
-
         trainGetScriptLocation(container, scriptPath, scriptLocation);
 
         trainGetScript(source, scriptLocation, script);
 
-        body.render(writer, cycle);
-
         trainResponseBuilder(cycle, writer);
         
+        body.render(writer, cycle);
+        
         replay();
 
         component.addBody(body);
@@ -207,12 +214,12 @@
     public void testRewinding()
     {
         IMarkupWriter writer = newWriter();
-        IRequestCycle cycle = newCycle(true, false);
+        IRequestCycle cycle = newCycle(true, writer);
         IRender body = newRender();
 
         body.render(writer, cycle);
 
-        trainResponseBuilder(cycle, writer);
+        //trainResponseBuilder(cycle, writer);
         
         replay();
 
@@ -265,7 +272,11 @@
         IScript script = newScript();
         
         PageRenderSupport support = newPageRenderSupport();
-        IRequestCycle cycle = newCycle(false, false);
+        
+        IRequestCycle cycle = newCycle(false, null);
+        
+        trainGetPageRenderSupport(cycle, support);
+        
         IMarkupWriter writer = newWriter();
         Resource scriptLocation = newResource();
         IRender body = newRender();
@@ -280,15 +291,13 @@
         { "specification", new ComponentSpecification(), "container", container, "scriptSource",
                 source, "scriptAsset", scriptAsset });
         
-        trainGetPageRenderSupport(cycle, support);
-        
         trainGetScript(source, scriptLocation, script);
         
         script.execute(cycle, support, new HashMap());
         
-        body.render(writer, cycle);
-        
         trainResponseBuilder(cycle, writer);
+        
+        body.render(writer, cycle);
         
         replay();
         

Copied: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/junit/mock/TestMockApplications.java (from r417829, tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/junit/mock/MockTester.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/junit/mock/TestMockApplications.java?p2=tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/junit/mock/TestMockApplications.java&p1=tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/junit/mock/MockTester.java&r1=417829&r2=417925&rev=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/junit/mock/MockTester.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/junit/mock/TestMockApplications.java Wed Jun 28 20:00:15 2006
@@ -14,11 +14,15 @@
 
 package org.apache.tapestry.junit.mock;
 
+import java.io.BufferedOutputStream;
 import java.io.ByteArrayOutputStream;
+import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.PrintStream;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -35,6 +39,7 @@
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.HiveMind;
 import org.apache.hivemind.Resource;
+import org.apache.hivemind.util.PropertyUtils;
 import org.apache.oro.text.regex.MalformedPatternException;
 import org.apache.oro.text.regex.MatchResult;
 import org.apache.oro.text.regex.Pattern;
@@ -52,8 +57,10 @@
 import org.apache.tapestry.util.xml.DocumentParseException;
 import org.jdom.Document;
 import org.jdom.Element;
-import org.jdom.JDOMException;
 import org.jdom.input.SAXBuilder;
+import org.testng.annotations.Configuration;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
 
 /**
  * A complex class that reads an XML description of a test involving the Mock objects and executes
@@ -67,12 +74,22 @@
  * @since 2.2
  */
 
-public class MockTester
+public class TestMockApplications
 {
+    public static final String LOGS_DIR = "target/logs";
+
+    public static final String DEFAULT_BASE_DIR = "./";
+
+    public static final String SCRIPTS_DIR = "src/scripts";
+    
+    private static String _baseDir;
+    
     private String _testRootDirectory;
 
     private String _path;
 
+    private String _fileName;
+    
     private Document _document;
 
     private MockContext _context;
@@ -84,10 +101,10 @@
     private MockRequest _request;
 
     private MockResponse _response;
-
+    
     private int _requestNumber = 0;
 
-    private Map _ognlContext;
+    private Map _ognlContext = Ognl.createDefaultContext(this);
 
     private Throwable _exception;
 
@@ -97,43 +114,85 @@
 
     private static Map _patternCache = new HashMap();
 
-    private PatternMatcher _matcher;
+    private PatternMatcher _matcher = new Perl5Matcher();
 
-    private PatternCompiler _compiler;
+    private PatternCompiler _compiler = new Perl5Compiler();
 
+    private PrintStream _savedOut;
+
+    private PrintStream _savedErr;
+    
+    private SAXBuilder _builder = new SAXBuilder();
+    
     /**
-     * Constructs a new MockTester for the given resource path (which is the XML file to read).
+     * Closes System.out and System.err, then restores them to their original values.
      */
-
-    public MockTester(String testRootDirectory, String path) throws JDOMException,
-            ServletException, DocumentParseException, IOException
+    @Configuration(afterTestMethod = true)
+    protected void tearDown() throws Exception
     {
-        _testRootDirectory = testRootDirectory;
-        _path = path;
-
-        parse();
-
-        setup();
+        System.err.close();
+        System.setErr(_savedErr);
+        
+        System.out.close();
+        System.setOut(_savedOut);
+        
+        _requestNumber = 0;
     }
-
+    
+    @DataProvider(name = "mockTestScripts")
+    public Object[][] createTestParameters()
+    {
+        List data = new ArrayList();
+        
+        File scriptsDir = new File(getBaseDirectory() + SCRIPTS_DIR);
+        
+        String[] names = scriptsDir.list();
+        
+        for (int i = 0; i < names.length; i++)
+        {
+            String name = names[i];
+            
+            if (name.endsWith(".xml"))
+            {
+                data.add(new Object[] {
+                        getBaseDirectory() + "/src/test-data/",
+                        getBaseDirectory() + SCRIPTS_DIR + "/" + name,
+                        name
+                });
+            }
+        }
+        
+        return (Object[][])data.toArray(new Object[data.size()][3]);
+    }
+    
     public String toString()
     {
         StringBuffer buffer = new StringBuffer("MockTester[");
-
+        
         if (_document != null)
             buffer.append(_document);
-
+        
         buffer.append(']');
 
         return buffer.toString();
     }
-
+    
     /**
      * Invoked to execute the request cycle.
      */
-
-    public void execute() throws IOException, DocumentParseException
+    @Test(dataProvider = "mockTestScripts")
+    public void execute(String testRootDirectory, String path, String fileName) 
+    throws Exception
     {
+        _testRootDirectory = testRootDirectory;
+        _path = path;
+        _fileName = fileName;
+        
+        // setup and get environment ready
+        createLogs();
+        parse();
+        setup();
+        
         Element root = _document.getRootElement();
 
         List l = root.getChildren("request");
@@ -149,6 +208,8 @@
         }
 
         _servlet.destroy();
+        
+        PropertyUtils.clearCache();
     }
 
     private void executeRequest(Element request) throws IOException, DocumentParseException
@@ -198,20 +259,19 @@
         executeAssertions(request);
     }
 
-    private void parse() throws JDOMException, DocumentParseException, IOException
+    private void parse() 
+    throws Exception
     {
-        SAXBuilder builder = new SAXBuilder();
-
-        _document = builder.build(_path);
+        _document = _builder.build(_path);
     }
-
+    
     private void setup() throws ServletException
     {
         Element root = _document.getRootElement();
-
+        
         if (!root.getName().equals("mock-test"))
             throw new RuntimeException("Root element of " + _path + " must be 'mock-test'.");
-
+        
         setupContext(root);
         setupServlet(root);
     }
@@ -221,12 +281,12 @@
         _context = new MockContext(_testRootDirectory);
 
         Element context = parent.getChild("context");
-
+        
         if (context == null)
             return;
-
+        
         String name = context.getAttributeValue("name");
-
+        
         if (name != null)
             _context.setServletContextName(name);
 
@@ -422,8 +482,8 @@
 
     private boolean evaluate(String expression) throws DocumentParseException
     {
-        if (_ognlContext == null)
-            _ognlContext = Ognl.createDefaultContext(this);
+        // if (_ognlContext == null)
+           // _ognlContext = Ognl.createDefaultContext(this);
 
         Object value = null;
 
@@ -460,7 +520,8 @@
      * Attribute name is used in error messages.
      */
 
-    private void executeRegexpAssertions(Element request) throws DocumentParseException
+    private void executeRegexpAssertions(Element request) 
+    throws DocumentParseException
     {
         String outputString = null;
 
@@ -492,7 +553,8 @@
      * Attribute name is used in error messages.
      */
 
-    private void executeOutputAssertions(Element request) throws DocumentParseException
+    private void executeOutputAssertions(Element request) 
+    throws DocumentParseException
     {
         String outputString = null;
 
@@ -524,7 +586,8 @@
      * Attribute name is used in error messages.
      */
 
-    private void executeNoOutputAssertions(Element request) throws DocumentParseException
+    private void executeNoOutputAssertions(Element request) 
+    throws DocumentParseException
     {
         String outputString = null;
 
@@ -551,21 +614,22 @@
 
     private PatternMatcher getMatcher()
     {
-        if (_matcher == null)
-            _matcher = new Perl5Matcher();
+        //if (_matcher == null)
+          //  _matcher = new Perl5Matcher();
 
         return _matcher;
     }
 
-    private Pattern compile(String pattern) throws DocumentParseException
+    private Pattern compile(String pattern) 
+    throws DocumentParseException
     {
         Pattern result = (Pattern) _patternCache.get(pattern);
 
         if (result != null)
             return result;
 
-        if (_compiler == null)
-            _compiler = new Perl5Compiler();
+        // if (_compiler == null)
+           // _compiler = new Perl5Compiler();
 
         try
         {
@@ -587,12 +651,12 @@
             throws DocumentParseException
     {
         Pattern compiled = compile(pattern);
-
+        
         if (getMatcher().contains(text, compiled))
             return;
-
+        
         System.err.println(text);
-
+        
         throw new AssertionFailedError(buildTestName(name)
                 + ": Response does not contain regular expression '" + pattern + "'.");
     }
@@ -803,7 +867,7 @@
                     + actualContentType + "', expected '" + contentType + "'.");
 
         byte[] actualContent = _response.getResponseBytes();
-        byte[] expectedContent = getFileContent(TestMocks.getBaseDirectory() + "/" + path);
+        byte[] expectedContent = getFileContent(getBaseDirectory() + "/" + path);
 
         if (actualContent.length != expectedContent.length)
             throw new AssertionFailedError(buildTestName(name) + " actual length of "
@@ -851,5 +915,77 @@
             throw new ApplicationRuntimeException("Unable to read file '" + path + "'.", ex);
         }
     }
+    
+    private void createLogs() 
+    throws Exception
+    {
+        File outDir = new File(getBaseDirectory() + LOGS_DIR);
+        
+        if (!outDir.isDirectory())
+            outDir.mkdirs();
+        
+        _savedOut = System.out;
+        _savedErr = System.err;
+        
+        System.setOut(createPrintStream(outDir.getPath() + "/" + _fileName, "out"));
+        System.setErr(createPrintStream(outDir.getPath() + "/" + _fileName, "err"));
+    }
+    
+    private PrintStream createPrintStream(String path, String extension) throws Exception
+    {
+        File file = new File(path + "." + extension);
+        
+        // Open and truncate file.
+        
+        FileOutputStream fos = new FileOutputStream(file);
+
+        BufferedOutputStream bos = new BufferedOutputStream(fos);
+
+        return new PrintStream(bos, true);
+    }
+    
+    @Configuration(afterSuite = true)
+    public static void deleteDir()
+    {
+        File file = new File(getBaseDirectory() + "/target/.private");
+        
+        if (!file.exists())
+            return;
+        
+        deleteRecursive(file);
+    }
+    
+    private static void deleteRecursive(File file)
+    {
+        if (file.isFile())
+        {
+            file.delete();
+            return;
+        }
+
+        String[] names = file.list();
+
+        for (int i = 0; i < names.length; i++)
+        {
+            File f = new File(file, names[i]);
+            deleteRecursive(f);
+        }
 
+        file.delete();
+    }
+    
+    public static String getBaseDirectory()
+    {
+        if (_baseDir == null) {
+            _baseDir = System.getProperty("BASEDIR", DEFAULT_BASE_DIR);
+            File test = new File(_baseDir + SCRIPTS_DIR);
+            if (!test.exists()) {
+                test = new File(_baseDir + "framework/" + SCRIPTS_DIR);
+                if (test.exists())
+                    _baseDir = _baseDir + "framework/";
+            }
+        }
+        
+        return _baseDir;
+    }
 }

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/junit/mock/c19/Two.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/junit/mock/c19/Two.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/junit/mock/c19/Two.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/junit/mock/c19/Two.java Wed Jun 28 20:00:15 2006
@@ -22,7 +22,7 @@
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.tapestry.Tapestry;
 import org.apache.tapestry.html.BasePage;
-import org.apache.tapestry.junit.mock.TestMocks;
+import org.apache.tapestry.junit.mock.TestMockApplications;
 import org.apache.tapestry.request.IUploadFile;
 
 /**
@@ -46,7 +46,7 @@
         InputStream expected = null;
         InputStream actual = null;
         
-        String baseDir = TestMocks.getBaseDirectory() + "/src/test-data/";
+        String baseDir = TestMockApplications.getBaseDirectory() + "/src/test-data/";
         
         try
         {

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/record/ClientPropertyPersistenceStrategyTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/record/ClientPropertyPersistenceStrategyTest.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/record/ClientPropertyPersistenceStrategyTest.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/record/ClientPropertyPersistenceStrategyTest.java Wed Jun 28 20:00:15 2006
@@ -15,14 +15,15 @@
 package org.apache.tapestry.record;
 
 import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertSame;
+import static org.testng.AssertJUnit.assertTrue;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.hivemind.test.HiveMindTestCase;
+import org.apache.tapestry.BaseComponentTestCase;
 import org.apache.tapestry.IPage;
 import org.apache.tapestry.IRequestCycle;
 import org.apache.tapestry.engine.ServiceEncoding;
@@ -36,13 +37,8 @@
  * @since 4.0
  */
 @Test
-public class ClientPropertyPersistenceStrategyTest extends HiveMindTestCase
+public class ClientPropertyPersistenceStrategyTest extends BaseComponentTestCase
 {
-    private IRequestCycle newCycle()
-    {
-        return (IRequestCycle) newMock(IRequestCycle.class);
-    }
-
     private PersistentPropertyDataEncoder newEncoder()
     {
         PersistentPropertyDataEncoderImpl encoder = new PersistentPropertyDataEncoderImpl();
@@ -51,26 +47,16 @@
         return encoder;
     }
 
-    private IPage newPage()
-    {
-        return (IPage) newMock(IPage.class);
-    }
-
-    private WebRequest newRequest()
-    {
-        return (WebRequest) newMock(WebRequest.class);
-    }
-
     private ClientPropertyPersistenceScope newScope()
     {
-        return (ClientPropertyPersistenceScope) newMock(ClientPropertyPersistenceScope.class);
+        return newMock(ClientPropertyPersistenceScope.class);
     }
 
     public void testAddParametersForPersistentProperties()
     {
         WebRequest request = newRequest();
 
-        ServiceEncoding encoding = (ServiceEncoding) newMock(ServiceEncoding.class);
+        ServiceEncoding encoding = newMock(ServiceEncoding.class);
 
         trainGetParameterNames(request, new String[]
         { "bar", "appstate:MyPage" });
@@ -104,7 +90,7 @@
     {
         WebRequest request = newRequest();
         ClientPropertyPersistenceScope scope = newScope();
-        PersistentPropertyDataEncoder encoder = (PersistentPropertyDataEncoder) newMock(PersistentPropertyDataEncoder.class);
+        PersistentPropertyDataEncoder encoder = newMock(PersistentPropertyDataEncoder.class);
 
         trainGetParameterNames(request, new String[]
         { "foo", "state:MyPage" });
@@ -140,23 +126,21 @@
         IRequestCycle cycle = newCycle();
         IPage page = newPage();
 
-        ServiceEncoding encoding = (ServiceEncoding) newMock(ServiceEncoding.class);
-
+        ServiceEncoding encoding = newMock(ServiceEncoding.class);
+        
+        trainGetParameterNames(request, new String[] { "foo", "state:MyPage", "state:OtherPage" });
+        
+        trainGetParameterValue(request, "state:MyPage", "ENCODED1");
+        trainGetParameterValue(request, "state:OtherPage", "ENCODED2");
+       
         trainGetPage(cycle, page);
-
         trainGetPageName(page, "MyPage");
+        
+        encoding.setParameterValue("state:MyPage", "ENCODED1");
 
         trainGetPage(cycle, page);
         trainGetPageName(page, "MyPage");
 
-        trainGetParameterNames(request, new String[]
-        { "foo", "state:MyPage", "state:OtherPage" });
-
-        trainGetParameterValue(request, "state:MyPage", "ENCODED1");
-        trainGetParameterValue(request, "state:OtherPage", "ENCODED2");
-
-        encoding.setParameterValue("state:MyPage", "ENCODED1");
-
         replay();
 
         PageClientPropertyPersistenceScope scope = new PageClientPropertyPersistenceScope();
@@ -206,11 +190,6 @@
     private void trainGetPage(IRequestCycle cycle, IPage page)
     {
         expect(cycle.getPage()).andReturn(page);
-    }
-
-    private void trainGetPageName(IPage page, String pageName)
-    {
-        expect(page.getPageName()).andReturn(pageName);
     }
 
     private void trainGetParameterNames(WebRequest request, String[] names)

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/record/PersistentPropertyDataEncoderTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/record/PersistentPropertyDataEncoderTest.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/record/PersistentPropertyDataEncoderTest.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/record/PersistentPropertyDataEncoderTest.java Wed Jun 28 20:00:15 2006
@@ -14,6 +14,9 @@
 
 package org.apache.tapestry.record;
 
+
+import static org.testng.AssertJUnit.assertEquals;
+
 import java.io.File;
 import java.net.URL;
 import java.net.URLClassLoader;
@@ -25,7 +28,7 @@
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.ClassResolver;
 import org.apache.hivemind.impl.DefaultClassResolver;
-import org.apache.hivemind.test.HiveMindTestCase;
+import org.apache.tapestry.BaseComponentTestCase;
 import org.testng.annotations.Test;
 
 /**
@@ -35,7 +38,7 @@
  * @since 4.0
  */
 @Test
-public class PersistentPropertyDataEncoderTest extends HiveMindTestCase
+public class PersistentPropertyDataEncoderTest extends BaseComponentTestCase
 {
     /**
      * Test pushing minimal amounts of data, which should favor the non-GZipped version of the

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/services/impl/TestBaseTagWriter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/services/impl/TestBaseTagWriter.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/services/impl/TestBaseTagWriter.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/services/impl/TestBaseTagWriter.java Wed Jun 28 20:00:15 2006
@@ -14,7 +14,7 @@
 
 package org.apache.tapestry.services.impl;
 
-import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.*;
 
 import org.apache.tapestry.BaseComponentTestCase;
 import org.apache.tapestry.IMarkupWriter;
@@ -47,7 +47,8 @@
     private INamespace newNamespace(String id)
     {
         INamespace ns = newMock(INamespace.class);
-
+        checkOrder(ns, false);
+        
         expect(ns.getId()).andReturn(id);
 
         return ns;
@@ -86,7 +87,7 @@
 
         verify();
     }
-
+    
     public void testNotApplicationNamespace()
     {
         INamespace ns = newNamespace("library");
@@ -99,7 +100,8 @@
     
     public void testInRoot()
     {
-        IPage page = newPage("Home");
+        INamespace ns = newNamespace("library");
+        IPage page = newPage(ns, null);
         IRequestCycle cycle = newRequestCycle(page, "/");
         IMarkupWriter writer = newWriter("http://foo.com/context/");
 
@@ -108,10 +110,11 @@
     
     public void testInSubFolder()
     {
-        IPage page = newPage("admin/AdminMenu");
+        INamespace ns = newNamespace(null);
+        IPage page = newPage(ns, "admin/AdminMenu");
         IRequestCycle cycle = newRequestCycle(page, "/admin/");
         IMarkupWriter writer = newWriter("http://foo.com/context/admin/");
-
+        
         run(writer, cycle);   
     }
 }

Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/test/mock/MockResponse.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/test/mock/MockResponse.java?rev=417925&r1=417924&r2=417925&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/test/mock/MockResponse.java (original)
+++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/test/mock/MockResponse.java Wed Jun 28 20:00:15 2006
@@ -268,7 +268,7 @@
     }
 
     /**
-     * Invoked by {@link org.apache.tapestry.junit.mock.MockTester}after the test is complete, to
+     * Invoked by {@link org.apache.tapestry.junit.mock.TestMockApplications}after the test is complete, to
      * close and otherwise finish up.
      */