You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2008/02/21 23:29:06 UTC
svn commit: r630030 [3/3] - in /tapestry/tapestry5/trunk:
tapestry-core/src/main/java/org/apache/tapestry/
tapestry-core/src/main/java/org/apache/tapestry/annotations/
tapestry-core/src/main/java/org/apache/tapestry/internal/renderers/
tapestry-core/sr...
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/BeanModelSourceImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/BeanModelSourceImplTest.java?rev=630030&r1=630029&r2=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/BeanModelSourceImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/BeanModelSourceImplTest.java Thu Feb 21 14:28:54 2008
@@ -20,7 +20,7 @@
import org.apache.tapestry.beaneditor.PropertyModel;
import org.apache.tapestry.beaneditor.RelativePosition;
import org.apache.tapestry.internal.test.InternalBaseTestCase;
-import org.apache.tapestry.internal.transform.ReadOnlyBean;
+import org.apache.tapestry.internal.transform.pages.ReadOnlyBean;
import org.apache.tapestry.ioc.Messages;
import org.apache.tapestry.services.BeanModelSource;
import org.easymock.EasyMock;
@@ -380,7 +380,7 @@
assertSame(propertyModel.getPropertyType(), String[].class);
- String[] value = {"foo", "bar"};
+ String[] value = { "foo", "bar" };
StringArrayBean bean = new StringArrayBean();
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/InternalClassTransformationImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/InternalClassTransformationImplTest.java?rev=630030&r1=630029&r2=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/InternalClassTransformationImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/InternalClassTransformationImplTest.java Thu Feb 21 14:28:54 2008
@@ -21,7 +21,9 @@
import org.apache.tapestry.annotations.SetupRender;
import org.apache.tapestry.internal.InternalComponentResources;
import org.apache.tapestry.internal.test.InternalBaseTestCase;
-import org.apache.tapestry.internal.transform.*;
+import org.apache.tapestry.internal.transform.FieldRemoval;
+import org.apache.tapestry.internal.transform.InheritedAnnotation;
+import org.apache.tapestry.internal.transform.TestPackageAwareLoader;
import org.apache.tapestry.internal.transform.pages.*;
import org.apache.tapestry.ioc.internal.services.ClassFactoryClassPool;
import org.apache.tapestry.ioc.internal.services.ClassFactoryImpl;
@@ -570,7 +572,7 @@
Class[] interfaces = transformed.getInterfaces();
- assertEquals(interfaces, new Class[]{Component.class, FooInterface.class, GetterMethodsInterface.class});
+ assertEquals(interfaces, new Class[] { Component.class, FooInterface.class, GetterMethodsInterface.class });
Object target = ct.createInstantiator().newInstance(resources);
@@ -624,7 +626,7 @@
// The PropertyAccess layer adds a wrapper exception around the real one.
assertEquals(ex.getCause().getMessage(),
- "Field org.apache.tapestry.internal.transform.ReadOnlyBean._value is read-only.");
+ "Field org.apache.tapestry.internal.transform.pages.ReadOnlyBean._value is read-only.");
}
verify();
@@ -705,7 +707,7 @@
// The PropertyAccess layer adds a wrapper exception around the real one.
assertEquals(ex.getCause().getMessage(),
- "Field org.apache.tapestry.internal.transform.ReadOnlyBean._value is read-only.");
+ "Field org.apache.tapestry.internal.transform.pages.ReadOnlyBean._value is read-only.");
}
verify();
@@ -789,7 +791,7 @@
TransformMethodSignature writeMethodSignature = new TransformMethodSignature(Modifier.PRIVATE, "void",
writeMethodName,
- new String[]{STRING_CLASS_NAME},
+ new String[] { STRING_CLASS_NAME },
null);
ct.addMethod(writeMethodSignature, String.format("throw new RuntimeException(\"write %s\");", baseName));
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/LinkFactoryImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/LinkFactoryImplTest.java?rev=630030&r1=630029&r2=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/LinkFactoryImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/LinkFactoryImplTest.java Thu Feb 21 14:28:54 2008
@@ -96,6 +96,7 @@
LinkFactoryListener listener = mockLinkFactoryListener();
ComponentInvocationMap map = mockComponentInvocationMap();
RequestPathOptimizer optimizer = mockRequestPathOptimizer();
+ RequestSecurityManager securityManager = mockRequestSecurityManager();
train_getLogicalName(page, PAGE_LOGICAL_NAME);
train_getContextPath(request, "/barney");
@@ -106,15 +107,72 @@
train_triggerPassivateEventForPageLink(rootElement, listener, holder);
+ train_getBaseURL(securityManager, page, null);
+
+
train_encodeRedirectURL(response, "/barney/" + PAGE_LOGICAL_NAME.toLowerCase() + "/foo/bar", ENCODED);
// This needs to be refactored a bit to be more testable.
map.store(isA(Link.class), isA(ComponentInvocationImpl.class));
+
replay();
- LinkFactory factory = new LinkFactoryImpl(request, response, map, null, optimizer, null, _contextValueEncoder);
+ LinkFactory factory = new LinkFactoryImpl(request, response, map, null, optimizer, null, _contextValueEncoder,
+ securityManager);
+
+ factory.addListener(listener);
+
+ Link link = factory.createPageLink(page, false);
+
+ assertEquals(link.toRedirectURI(), ENCODED);
+
+ // Make sure the link was passed to the LinkFactoryListener
+
+ assertSame(link, holder.get());
+
+ verify();
+ }
+
+ @Test
+ public void secure_page_link()
+ {
+ Request request = mockRequest();
+ Response response = mockResponse();
+ Page page = mockPage();
+ ComponentPageElement rootElement = mockComponentPageElement();
+ LinkFactoryListener listener = mockLinkFactoryListener();
+ ComponentInvocationMap map = mockComponentInvocationMap();
+ RequestPathOptimizer optimizer = mockRequestPathOptimizer();
+ RequestSecurityManager securityManager = mockRequestSecurityManager();
+
+ train_getLogicalName(page, PAGE_LOGICAL_NAME);
+ train_getContextPath(request, "/barney");
+
+ train_getRootElement(page, rootElement);
+
+ final Holder<Link> holder = new Holder<Link>();
+
+ train_triggerPassivateEventForPageLink(rootElement, listener, holder);
+
+
+ train_getBaseURL(securityManager, page, "https://example.org");
+
+
+ train_encodeRedirectURL(response,
+ "https://example.org/barney/" + PAGE_LOGICAL_NAME.toLowerCase() + "/foo/bar",
+ ENCODED);
+
+ // This needs to be refactored a bit to be more testable.
+
+ map.store(isA(Link.class), isA(ComponentInvocationImpl.class));
+
+ replay();
+
+ LinkFactory factory = new LinkFactoryImpl(request, response, map, null, optimizer, null,
+ _contextValueEncoder,
+ securityManager);
factory.addListener(listener);
@@ -139,6 +197,7 @@
LinkFactoryListener listener = mockLinkFactoryListener();
ComponentInvocationMap map = mockComponentInvocationMap();
RequestPathOptimizer optimizer = mockRequestPathOptimizer();
+ RequestSecurityManager securityManager = mockRequestSecurityManager();
train_getLogicalName(page, PAGE_LOGICAL_NAME);
train_getContextPath(request, "/barney");
@@ -150,6 +209,9 @@
listener.createdPageLink(isA(Link.class));
getMocksControl().andAnswer(createdPageLinkAnswer);
+ train_getBaseURL(securityManager, page, null);
+
+
train_encodeRedirectURL(response, "/barney/" + PAGE_LOGICAL_NAME.toLowerCase() + "/biff/bazz", ENCODED);
// This needs to be refactored a bit to be more testable.
@@ -158,7 +220,8 @@
replay();
- LinkFactory factory = new LinkFactoryImpl(request, response, map, null, optimizer, null, _contextValueEncoder);
+ LinkFactory factory = new LinkFactoryImpl(request, response, map, null, optimizer, null, _contextValueEncoder,
+ securityManager);
factory.addListener(listener);
Link link = factory.createPageLink(page, false, "biff", "bazz");
@@ -182,6 +245,7 @@
LinkFactoryListener listener = mockLinkFactoryListener();
ComponentInvocationMap map = mockComponentInvocationMap();
RequestPathOptimizer optimizer = mockRequestPathOptimizer();
+ RequestSecurityManager securityManager = mockRequestSecurityManager();
train_getLogicalName(page, PAGE_LOGICAL_NAME);
train_getContextPath(request, "/barney");
@@ -193,6 +257,8 @@
listener.createdPageLink(isA(Link.class));
getMocksControl().andAnswer(createdPageLinkAnswer);
+ train_getBaseURL(securityManager, page, null);
+
train_encodeRedirectURL(response, "/barney/" + PAGE_LOGICAL_NAME.toLowerCase(), ENCODED);
// This needs to be refactored a bit to be more testable.
@@ -201,7 +267,8 @@
replay();
- LinkFactory factory = new LinkFactoryImpl(request, response, map, null, optimizer, null, _contextValueEncoder);
+ LinkFactory factory = new LinkFactoryImpl(request, response, map, null, optimizer, null, _contextValueEncoder,
+ securityManager);
factory.addListener(listener);
Link link = factory.createPageLink(page, true);
@@ -226,6 +293,7 @@
ComponentInvocationMap map = mockComponentInvocationMap();
RequestPageCache cache = mockRequestPageCache();
RequestPathOptimizer optimizer = mockRequestPathOptimizer();
+ RequestSecurityManager securityManager = mockRequestSecurityManager();
train_get(cache, PAGE_LOGICAL_NAME, page);
@@ -239,6 +307,8 @@
train_triggerPassivateEventForPageLink(rootElement, listener, holder);
+ train_getBaseURL(securityManager, page, null);
+
train_encodeRedirectURL(response, "/barney/" + PAGE_LOGICAL_NAME.toLowerCase() + "/foo/bar", ENCODED);
// This needs to be refactored a bit to be more testable.
@@ -247,7 +317,8 @@
replay();
- LinkFactory factory = new LinkFactoryImpl(request, response, map, cache, optimizer, null, _contextValueEncoder);
+ LinkFactory factory = new LinkFactoryImpl(request, response, map, cache, optimizer, null, _contextValueEncoder,
+ securityManager);
factory.addListener(listener);
Link link = factory.createPageLink(PAGE_LOGICAL_NAME, false);
@@ -322,7 +393,7 @@
ComponentEventCallback handler = (ComponentEventCallback) EasyMock
.getCurrentArguments()[2];
- handler.handleResult(new Object[]{"foo", "bar"});
+ handler.handleResult(new Object[] { "foo", "bar" });
return true;
}
@@ -341,6 +412,7 @@
RequestPageCache cache = mockRequestPageCache();
RequestPathOptimizer optimizer = mockRequestPathOptimizer();
PageRenderQueue queue = mockPageRenderQueue();
+ RequestSecurityManager securityManager = mockRequestSecurityManager();
String optimizedPath = "/optimized/path";
@@ -349,6 +421,8 @@
train_getLogicalName(page, "mypage");
train_getContextPath(request, "");
+ train_getBaseURL(securityManager, page, null);
+
train_optimizePath(optimizer, "/mypage:myaction/1.2.3/4.5.6?t:ac=foo/bar", optimizedPath);
train_getRootElement(page, rootElement);
@@ -365,7 +439,7 @@
replay();
LinkFactory factory = new LinkFactoryImpl(request, response, map, cache, optimizer, queue,
- _contextValueEncoder);
+ _contextValueEncoder, securityManager);
factory.addListener(listener);
Link link = factory.createActionLink(page, null, "myaction", false, "1.2.3", "4.5.6");
@@ -376,6 +450,9 @@
verify();
}
+ /**
+ * For good measure, we're going to also test a security change.
+ */
@Test
public void action_for_non_active_page()
{
@@ -389,15 +466,13 @@
RequestPageCache cache = mockRequestPageCache();
RequestPathOptimizer optimizer = mockRequestPathOptimizer();
PageRenderQueue queue = mockPageRenderQueue();
-
- String optimizedPath = "/optimized/path";
+ RequestSecurityManager securityManager = mockRequestSecurityManager();
final Holder<Link> holder = new Holder<Link>();
train_getLogicalName(containingPage, "MyPage");
train_getContextPath(request, "");
- train_optimizePath(optimizer, "/mypage:myaction?t:ac=foo/bar&t:ap=activepage", optimizedPath);
train_getRootElement(activePage, rootElement);
train_triggerPassivateEventForActionLink(rootElement, listener, holder);
@@ -410,12 +485,14 @@
map.store(isA(Link.class), isA(ComponentInvocation.class));
- train_encodeURL(response, "/optimized/path", ENCODED);
+ train_getBaseURL(securityManager, activePage, "http://example.org");
+
+ train_encodeURL(response, "http://example.org/mypage:myaction?t:ac=foo/bar&t:ap=activepage", ENCODED);
replay();
LinkFactory factory = new LinkFactoryImpl(request, response, map, cache, optimizer, queue,
- _contextValueEncoder);
+ _contextValueEncoder, securityManager);
factory.addListener(listener);
Link link = factory.createActionLink(containingPage, null, "myaction", false);
@@ -440,6 +517,8 @@
RequestPageCache cache = mockRequestPageCache();
RequestPathOptimizer optimizer = mockRequestPathOptimizer();
PageRenderQueue queue = mockPageRenderQueue();
+ RequestSecurityManager securityManager = mockRequestSecurityManager();
+
String optimizedPath = "/optimized/path";
@@ -461,12 +540,14 @@
map.store(isA(Link.class), isA(ComponentInvocationImpl.class));
+ train_getBaseURL(securityManager, page, null);
+
train_encodeURL(response, optimizedPath, ENCODED);
replay();
LinkFactory factory = new LinkFactoryImpl(request, response, map, cache, optimizer, queue,
- _contextValueEncoder);
+ _contextValueEncoder, securityManager);
factory.addListener(listener);
Link link = factory.createActionLink(page, nestedId, eventName, false, context);
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/LinkImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/LinkImplTest.java?rev=630030&r1=630029&r2=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/LinkImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/LinkImplTest.java Thu Feb 21 14:28:54 2008
@@ -229,7 +229,7 @@
replay();
- Link link = new LinkImpl(response, optimizer, "/ctx",
+ Link link = new LinkImpl(response, optimizer, null, "/ctx",
new ComponentInvocationImpl(new OpaqueConstantTarget("foo"), new String[0], null),
false);
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/MetaDataLocatorImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/MetaDataLocatorImplTest.java?rev=630030&r1=630029&r2=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/MetaDataLocatorImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/MetaDataLocatorImplTest.java Thu Feb 21 14:28:54 2008
@@ -1,4 +1,4 @@
-// Copyright 2007 The Apache Software Foundation
+// Copyright 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -17,8 +17,11 @@
import org.apache.tapestry.ComponentResources;
import org.apache.tapestry.internal.test.InternalBaseTestCase;
import static org.apache.tapestry.ioc.internal.util.CollectionFactory.newMap;
+import org.apache.tapestry.ioc.services.SymbolSource;
+import org.apache.tapestry.ioc.services.TypeCoercer;
import org.apache.tapestry.model.ComponentModel;
import org.apache.tapestry.services.MetaDataLocator;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.util.Collections;
@@ -26,11 +29,20 @@
public class MetaDataLocatorImplTest extends InternalBaseTestCase
{
+ private TypeCoercer _typeCoercer;
+
+ @BeforeClass
+ public void setup()
+ {
+ _typeCoercer = getService(TypeCoercer.class);
+ }
+
@Test
public void found_in_component()
{
ComponentResources resources = mockComponentResources();
ComponentModel model = mockComponentModel();
+ SymbolSource symbolSource = mockSymbolSource();
String key = "foo.bar";
String value = "zaphod";
@@ -39,14 +51,15 @@
train_getCompleteId(resources, completeId);
train_getComponentModel(resources, model);
train_getMeta(model, key, value);
+ train_expandSymbols(symbolSource, value, value);
replay();
Map<String, String> configuration = Collections.emptyMap();
- MetaDataLocator locator = new MetaDataLocatorImpl(configuration);
+ MetaDataLocator locator = new MetaDataLocatorImpl(symbolSource, _typeCoercer, configuration);
- assertSame(locator.findMeta(key, resources), value);
+ assertSame(locator.findMeta(key, resources, String.class), value);
verify();
@@ -56,7 +69,7 @@
replay();
- assertSame(locator.findMeta(key, resources), value);
+ assertSame(locator.findMeta(key, resources, String.class), value);
verify();
}
@@ -68,6 +81,7 @@
ComponentResources containerResources = mockComponentResources();
ComponentModel model = mockComponentModel();
ComponentModel containerModel = mockComponentModel();
+ SymbolSource symbolSource = mockSymbolSource();
String key = "foo.bar";
String value = "zaphod";
@@ -79,14 +93,15 @@
train_getContainerResources(resources, containerResources);
train_getComponentModel(containerResources, containerModel);
train_getMeta(containerModel, key, value);
+ train_expandSymbols(symbolSource, value, value);
replay();
Map<String, String> configuration = Collections.emptyMap();
- MetaDataLocator locator = new MetaDataLocatorImpl(configuration);
+ MetaDataLocator locator = new MetaDataLocatorImpl(symbolSource, _typeCoercer, configuration);
- assertSame(locator.findMeta(key, resources), value);
+ assertSame(locator.findMeta(key, resources, String.class), value);
verify();
}
@@ -96,6 +111,7 @@
{
ComponentResources resources = mockComponentResources();
ComponentModel model = mockComponentModel();
+ SymbolSource symbolSource = mockSymbolSource();
String key = "foo.bar";
String value = "zaphod";
@@ -109,14 +125,16 @@
train_getPageName(resources, logicalPageName);
+ train_expandSymbols(symbolSource, value, value);
+
replay();
Map<String, String> configuration = newMap();
configuration.put(key, value);
- MetaDataLocator locator = new MetaDataLocatorImpl(configuration);
+ MetaDataLocator locator = new MetaDataLocatorImpl(symbolSource, _typeCoercer, configuration);
- assertSame(locator.findMeta(key, resources), value);
+ assertSame(locator.findMeta(key, resources, String.class), value);
verify();
@@ -126,7 +144,7 @@
replay();
- assertSame(locator.findMeta(key, resources), value);
+ assertSame(locator.findMeta(key, resources, String.class), value);
verify();
}
@@ -136,6 +154,7 @@
{
ComponentResources resources = mockComponentResources();
ComponentModel model = mockComponentModel();
+ SymbolSource symbolSource = mockSymbolSource();
String key = "foo.bar";
String value = "zaphod";
@@ -148,14 +167,16 @@
train_getPageName(resources, "foo/Bar");
+ train_expandSymbols(symbolSource, value, value);
+
replay();
Map<String, String> configuration = newMap();
configuration.put(key.toUpperCase(), value);
- MetaDataLocator locator = new MetaDataLocatorImpl(configuration);
+ MetaDataLocator locator = new MetaDataLocatorImpl(symbolSource, _typeCoercer, configuration);
- assertSame(locator.findMeta(key, resources), value);
+ assertSame(locator.findMeta(key, resources, String.class), value);
verify();
@@ -165,7 +186,7 @@
replay();
- assertSame(locator.findMeta(key, resources), value);
+ assertSame(locator.findMeta(key, resources, String.class), value);
verify();
}
@@ -175,6 +196,7 @@
{
ComponentResources resources = mockComponentResources();
ComponentModel model = mockComponentModel();
+ SymbolSource symbolSource = mockSymbolSource();
String key = "foo.bar";
String value = "zaphod";
@@ -187,15 +209,17 @@
train_getPageName(resources, "foo/Bar");
+ train_expandSymbols(symbolSource, value, value);
+
replay();
Map<String, String> configuration = newMap();
configuration.put(key, "xxx");
configuration.put("foo:" + key, value);
- MetaDataLocator locator = new MetaDataLocatorImpl(configuration);
+ MetaDataLocator locator = new MetaDataLocatorImpl(symbolSource, _typeCoercer, configuration);
- assertSame(locator.findMeta(key, resources), value);
+ assertSame(locator.findMeta(key, resources, String.class), value);
verify();
@@ -205,7 +229,7 @@
replay();
- assertSame(locator.findMeta(key, resources), value);
+ assertSame(locator.findMeta(key, resources, String.class), value);
verify();
}
@@ -215,6 +239,7 @@
{
ComponentResources resources = mockComponentResources();
ComponentModel model = mockComponentModel();
+ SymbolSource symbolSource = mockSymbolSource();
String key = "foo.bar";
String value = "zaphod";
@@ -224,13 +249,15 @@
train_getComponentModel(resources, model);
train_getMeta(model, key, value);
+ train_expandSymbols(symbolSource, value, value);
+
replay();
Map<String, String> configuration = Collections.emptyMap();
- MetaDataLocatorImpl locator = new MetaDataLocatorImpl(configuration);
+ MetaDataLocatorImpl locator = new MetaDataLocatorImpl(symbolSource, _typeCoercer, configuration);
- assertSame(locator.findMeta(key, resources), value);
+ assertSame(locator.findMeta(key, resources, String.class), value);
verify();
@@ -240,11 +267,44 @@
train_getComponentModel(resources, model);
train_getMeta(model, key, value);
+ train_expandSymbols(symbolSource, value, value);
+
replay();
locator.objectWasInvalidated();
- assertSame(locator.findMeta(key, resources), value);
+ assertSame(locator.findMeta(key, resources, String.class), value);
+
+ verify();
+ }
+
+ /**
+ * Makes sense to test together to ensure that the expanded value is what's fed to the type coercer.
+ */
+ @Test
+ public void train_symbols_expanded_and_types_coerced()
+ {
+ ComponentResources resources = mockComponentResources();
+ ComponentModel model = mockComponentModel();
+ SymbolSource symbolSource = mockSymbolSource();
+
+ String key = "foo.bar";
+ String value = "${zaphod}";
+ String expandedValue = "99";
+ String completeId = "foo.Bar:baz";
+
+ train_getCompleteId(resources, completeId);
+ train_getComponentModel(resources, model);
+ train_getMeta(model, key, value);
+ train_expandSymbols(symbolSource, value, expandedValue);
+
+ replay();
+
+ Map<String, String> configuration = Collections.emptyMap();
+
+ MetaDataLocator locator = new MetaDataLocatorImpl(symbolSource, _typeCoercer, configuration);
+
+ assertEquals(locator.findMeta(key, resources, Integer.class), new Integer(99));
verify();
}
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/PersistentFieldManagerImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/PersistentFieldManagerImplTest.java?rev=630030&r1=630029&r2=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/PersistentFieldManagerImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/PersistentFieldManagerImplTest.java Thu Feb 21 14:28:54 2008
@@ -1,4 +1,4 @@
-// Copyright 2006, 2007 The Apache Software Foundation
+// Copyright 2006, 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -140,7 +140,7 @@
ComponentResources resources = mockComponentResources();
ComponentModel model = mockComponentModel();
PersistentFieldStrategy strat = newPersistentFieldStrategy();
- MetaDataLocator locator = newMetaDataLocator();
+ MetaDataLocator locator = mockMetaDataLocator();
Object value = new Object();
@@ -151,7 +151,7 @@
train_getFieldPersistenceStrategy(model, fieldName, "");
- train_findMeta(locator, PersistentFieldManagerImpl.META_KEY, resources, strategyName);
+ train_findMeta(locator, PersistentFieldManagerImpl.META_KEY, resources, String.class, strategyName);
train_getNestedId(resources, nestedId);
@@ -175,7 +175,7 @@
ComponentResources resources = mockComponentResources();
ComponentModel model = mockComponentModel();
- MetaDataLocator locator = newMetaDataLocator();
+ MetaDataLocator locator = mockMetaDataLocator();
PersistentFieldStrategy strat = newPersistentFieldStrategy();
Object value = new Object();
@@ -190,7 +190,7 @@
train_findMeta(
locator,
PersistentFieldManagerImpl.META_KEY,
- resources,
+ resources, String.class,
PersistentFieldManagerImpl.DEFAULT_STRATEGY);
train_getNestedId(resources, nestedId);
@@ -206,18 +206,7 @@
verify();
}
- protected void train_findMeta(MetaDataLocator locator, String key,
- ComponentResources resources, String value)
- {
- expect(locator.findMeta(key, resources)).andReturn(value).atLeastOnce();
- }
-
- protected MetaDataLocator newMetaDataLocator()
- {
- return newMock(MetaDataLocator.class);
- }
-
- private PersistentFieldStrategy newPersistentFieldStrategy()
+ protected final PersistentFieldStrategy newPersistentFieldStrategy()
{
return newMock(PersistentFieldStrategy.class);
}
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/RequestEncodingInitializerImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/RequestEncodingInitializerImplTest.java?rev=630030&r1=630029&r2=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/RequestEncodingInitializerImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/RequestEncodingInitializerImplTest.java Thu Feb 21 14:28:54 2008
@@ -1,4 +1,4 @@
-// Copyright 2007 The Apache Software Foundation
+// Copyright 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -44,6 +44,7 @@
locator,
TapestryConstants.RESPONSE_CONTENT_TYPE,
resources,
+ String.class,
"text/html;charset=zebra");
request.setEncoding("zebra");
@@ -74,9 +75,9 @@
train_getRootElement(page, element);
train_getComponentResources(element, resources);
- train_findMeta(locator, TapestryConstants.RESPONSE_CONTENT_TYPE, resources, "text/html");
+ train_findMeta(locator, TapestryConstants.RESPONSE_CONTENT_TYPE, resources, String.class, "text/html");
- train_findMeta(locator, TapestryConstants.RESPONSE_ENCODING, resources, encoding);
+ train_findMeta(locator, TapestryConstants.RESPONSE_ENCODING, resources, String.class, encoding);
request.setEncoding(encoding);
@@ -90,15 +91,5 @@
verify();
}
- protected final void train_findMeta(MetaDataLocator locator, String metaDataKey,
- InternalComponentResources resources, String metaDataValue)
- {
- expect(locator.findMeta(metaDataKey, resources)).andReturn(metaDataValue);
- }
-
- protected final MetaDataLocator mockMetaDataLocator()
- {
- return newMock(MetaDataLocator.class);
- }
}
Added: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/RequestSecurityManagerImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/RequestSecurityManagerImplTest.java?rev=630030&view=auto
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/RequestSecurityManagerImplTest.java (added)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/RequestSecurityManagerImplTest.java Thu Feb 21 14:28:54 2008
@@ -0,0 +1,165 @@
+// Copyright 2008 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package org.apache.tapestry.internal.services;
+
+import org.apache.tapestry.ComponentResources;
+import org.apache.tapestry.Link;
+import org.apache.tapestry.TapestryConstants;
+import org.apache.tapestry.internal.structure.Page;
+import org.apache.tapestry.internal.test.InternalBaseTestCase;
+import org.apache.tapestry.runtime.Component;
+import org.apache.tapestry.services.BaseURLSource;
+import org.apache.tapestry.services.MetaDataLocator;
+import org.apache.tapestry.services.Request;
+import org.apache.tapestry.services.Response;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+public class RequestSecurityManagerImplTest extends InternalBaseTestCase
+{
+ private static final String PAGE_NAME = "Whatever";
+
+ @Test
+ public void check_request_is_secure() throws Exception
+ {
+ Request request = mockRequest();
+ Response response = mockResponse();
+ LinkFactory linkFactory = mockLinkFactory();
+ MetaDataLocator locator = mockMetaDataLocator();
+ BaseURLSource source = mockBaseURLSource();
+ RequestPageCache cache = mockRequestPageCache();
+
+ train_isSecure(request, true);
+
+ replay();
+
+ RequestSecurityManager manager
+ = new RequestSecurityManagerImpl(request, response, linkFactory, locator, source, cache);
+
+ assertFalse(manager.checkForInsecureRequest(PAGE_NAME));
+
+ verify();
+ }
+
+ @Test
+ public void check_page_not_secure() throws Exception
+ {
+ Request request = mockRequest();
+ Response response = mockResponse();
+ LinkFactory linkFactory = mockLinkFactory();
+ MetaDataLocator locator = mockMetaDataLocator();
+ BaseURLSource source = mockBaseURLSource();
+ RequestPageCache cache = mockRequestPageCache();
+ Page page = mockPage();
+
+ train_isSecure(request, false);
+
+ train_get(cache, PAGE_NAME, page);
+
+ train_isSecure(locator, page, false);
+
+ replay();
+
+ RequestSecurityManager manager
+ = new RequestSecurityManagerImpl(request, response, linkFactory, locator, source, cache);
+
+ assertFalse(manager.checkForInsecureRequest(PAGE_NAME));
+
+ verify();
+ }
+
+ @Test
+ public void check_redirect_needed() throws Exception
+ {
+ Request request = mockRequest();
+ Response response = mockResponse();
+ LinkFactory linkFactory = mockLinkFactory();
+ MetaDataLocator locator = mockMetaDataLocator();
+ BaseURLSource source = mockBaseURLSource();
+ Page page = mockPage();
+ Link link = mockLink();
+ RequestPageCache cache = mockRequestPageCache();
+
+ train_isSecure(request, false);
+
+ train_get(cache, PAGE_NAME, page);
+
+ train_isSecure(locator, page, true);
+
+ train_createPageLink(linkFactory, page, link);
+
+ response.sendRedirect(link);
+
+ replay();
+
+ RequestSecurityManager manager
+ = new RequestSecurityManagerImpl(request, response, linkFactory, locator, source, cache);
+
+ assertTrue(manager.checkForInsecureRequest(PAGE_NAME));
+
+ verify();
+ }
+
+ @DataProvider(name = "base_URL_data")
+ public Object[][] base_URL_data()
+ {
+ return new Object[][] {
+ { true, true, null },
+ { false, false, null },
+ { true, false, "http://example.org" },
+ { false, true, "https://example.org" }
+ };
+ }
+
+ @Test(dataProvider = "base_URL_data")
+ public void get_base_URL(boolean secureRequest, boolean securePage, String expectedURL)
+ {
+ Request request = mockRequest();
+ Response response = mockResponse();
+ LinkFactory linkFactory = mockLinkFactory();
+ MetaDataLocator locator = mockMetaDataLocator();
+ BaseURLSource source = mockBaseURLSource();
+ Page page = mockPage();
+
+ train_isSecure(request, secureRequest);
+ train_isSecure(locator, page, securePage);
+
+ if (expectedURL != null)
+ train_getBaseURL(source, securePage, expectedURL);
+
+ replay();
+
+ RequestSecurityManager manager
+ = new RequestSecurityManagerImpl(request, response, linkFactory, locator, source, null);
+
+ assertEquals(manager.getBaseURL(page), expectedURL);
+
+ verify();
+ }
+
+
+ private void train_isSecure(MetaDataLocator locator, Page page, boolean secure)
+ {
+ Component component = mockComponent();
+ ComponentResources resources = mockInternalComponentResources();
+
+ train_getRootComponent(page, component);
+ train_getComponentResources(component, resources);
+
+ train_findMeta(locator, TapestryConstants.SECURE_PAGE, resources, Boolean.class, secure);
+ }
+
+
+}
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/SessionApplicationStatePersistenceStrategyTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/SessionApplicationStatePersistenceStrategyTest.java?rev=630030&r1=630029&r2=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/SessionApplicationStatePersistenceStrategyTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/SessionApplicationStatePersistenceStrategyTest.java Thu Feb 21 14:28:54 2008
@@ -15,7 +15,7 @@
package org.apache.tapestry.internal.services;
import org.apache.tapestry.internal.test.InternalBaseTestCase;
-import org.apache.tapestry.internal.transform.ReadOnlyBean;
+import org.apache.tapestry.internal.transform.pages.ReadOnlyBean;
import org.apache.tapestry.services.ApplicationStateCreator;
import org.apache.tapestry.services.ApplicationStatePersistenceStrategy;
import org.apache.tapestry.services.Request;
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/test/InternalBaseTestCase.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/test/InternalBaseTestCase.java?rev=630030&r1=630029&r2=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/test/InternalBaseTestCase.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/test/InternalBaseTestCase.java Thu Feb 21 14:28:54 2008
@@ -629,4 +629,14 @@
{
expect(access.getAdapter(object)).andReturn(classPropertyAdapter);
}
+
+ protected final RequestSecurityManager mockRequestSecurityManager()
+ {
+ return newMock(RequestSecurityManager.class);
+ }
+
+ protected final void train_getBaseURL(RequestSecurityManager securityManager, Page page, String baseURL)
+ {
+ expect(securityManager.getBaseURL(page)).andReturn(baseURL).atLeastOnce();
+ }
}
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ApplicationStateWorkerTest.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ApplicationStateWorkerTest.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ApplicationStateWorkerTest.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ApplicationStateWorkerTest.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ApplicationStateWorkerTest.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ApplicationStateWorkerTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ApplicationStateWorkerTest.java Thu Feb 21 14:28:54 2008
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.services;
+package org.apache.tapestry.internal.transform;
import javassist.CtClass;
import javassist.Loader;
@@ -20,9 +20,10 @@
import javassist.NotFoundException;
import org.apache.tapestry.annotations.ApplicationState;
import org.apache.tapestry.internal.InternalComponentResources;
+import org.apache.tapestry.internal.services.*;
import org.apache.tapestry.internal.test.InternalBaseTestCase;
-import org.apache.tapestry.internal.transform.MaybeStateHolder;
-import org.apache.tapestry.internal.transform.StateHolder;
+import org.apache.tapestry.internal.transform.pages.MaybeStateHolder;
+import org.apache.tapestry.internal.transform.pages.StateHolder;
import org.apache.tapestry.ioc.internal.services.ClassFactoryClassPool;
import org.apache.tapestry.ioc.internal.services.ClassFactoryImpl;
import org.apache.tapestry.ioc.internal.services.PropertyAccessImpl;
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ComponentLifecycleMethodWorkerTest.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ComponentLifecycleMethodWorkerTest.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ComponentLifecycleMethodWorkerTest.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ComponentLifecycleMethodWorkerTest.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ComponentLifecycleMethodWorkerTest.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ComponentLifecycleMethodWorkerTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ComponentLifecycleMethodWorkerTest.java Thu Feb 21 14:28:54 2008
@@ -1,4 +1,4 @@
-// Copyright 2006, 2007 The Apache Software Foundation
+// Copyright 2006, 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.services;
+package org.apache.tapestry.internal.transform;
import org.apache.tapestry.annotations.SetupRender;
import org.apache.tapestry.model.MutableComponentModel;
@@ -24,9 +24,8 @@
import org.testng.annotations.Test;
/**
- * Of course, we're committing the cardinal sin of testing the code that's generated, rather than
- * the *behavior* of the generated code. Fortunately, we back all this up with lots and lots of
- * integration testing.
+ * Of course, we're committing the cardinal sin of testing the code that's generated, rather than the *behavior* of the
+ * generated code. Fortunately, we back all this up with lots and lots of integration testing.
*/
public class ComponentLifecycleMethodWorkerTest extends TapestryTestCase
{
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ContentTypeWorkerTest.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ContentTypeWorkerTest.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ContentTypeWorkerTest.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ContentTypeWorkerTest.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ContentTypeWorkerTest.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ContentTypeWorkerTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ContentTypeWorkerTest.java Thu Feb 21 14:28:54 2008
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.services;
+package org.apache.tapestry.internal.transform;
import org.apache.tapestry.TapestryConstants;
import org.apache.tapestry.annotations.ContentType;
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/InjectComponentWorkerTest.java (from r628968, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/InjectComponentWorkerTest.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/InjectComponentWorkerTest.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/InjectComponentWorkerTest.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/InjectComponentWorkerTest.java&r1=628968&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/InjectComponentWorkerTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/InjectComponentWorkerTest.java Thu Feb 21 14:28:54 2008
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.services;
+package org.apache.tapestry.internal.transform;
import org.apache.tapestry.annotations.InjectComponent;
import org.apache.tapestry.corelib.components.Grid;
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/InjectWorkerTest.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/InjectWorkerTest.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/InjectWorkerTest.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/InjectWorkerTest.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/InjectWorkerTest.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/InjectWorkerTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/InjectWorkerTest.java Thu Feb 21 14:28:54 2008
@@ -1,4 +1,4 @@
-// Copyright 2006, 2007 The Apache Software Foundation
+// Copyright 2006, 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.services;
+package org.apache.tapestry.internal.transform;
import org.apache.tapestry.internal.test.InternalBaseTestCase;
import org.apache.tapestry.ioc.ObjectLocator;
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/InvokePostRenderCleanupOnResourcesWorkerTest.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/InvokePostRenderCleanupOnResourcesWorkerTest.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/InvokePostRenderCleanupOnResourcesWorkerTest.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/InvokePostRenderCleanupOnResourcesWorkerTest.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/InvokePostRenderCleanupOnResourcesWorkerTest.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/InvokePostRenderCleanupOnResourcesWorkerTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/InvokePostRenderCleanupOnResourcesWorkerTest.java Thu Feb 21 14:28:54 2008
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.services;
+package org.apache.tapestry.internal.transform;
import org.apache.tapestry.internal.test.InternalBaseTestCase;
import org.apache.tapestry.model.MutableComponentModel;
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/MetaWorkerTest.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/MetaWorkerTest.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/MetaWorkerTest.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/MetaWorkerTest.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/MetaWorkerTest.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/MetaWorkerTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/MetaWorkerTest.java Thu Feb 21 14:28:54 2008
@@ -1,4 +1,4 @@
-// Copyright 2007 The Apache Software Foundation
+// Copyright 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.services;
+package org.apache.tapestry.internal.transform;
import org.apache.tapestry.annotations.Meta;
import org.apache.tapestry.internal.test.InternalBaseTestCase;
@@ -47,7 +47,7 @@
train_getAnnotation(ct, Meta.class, annotation);
expect(annotation.value()).andReturn(new String[]
- {"foo=bar", "baz=biff"});
+ { "foo=bar", "baz=biff" });
model.setMeta("foo", "bar");
model.setMeta("baz", "biff");
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/MixinAfterWorkerTest.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/MixinAfterWorkerTest.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/MixinAfterWorkerTest.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/MixinAfterWorkerTest.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/MixinAfterWorkerTest.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/MixinAfterWorkerTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/MixinAfterWorkerTest.java Thu Feb 21 14:28:54 2008
@@ -1,4 +1,4 @@
-// Copyright 2006, 2007 The Apache Software Foundation
+// Copyright 2006, 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.services;
+package org.apache.tapestry.internal.transform;
import org.apache.tapestry.annotations.MixinAfter;
import org.apache.tapestry.internal.test.InternalBaseTestCase;
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/MixinWorkerTest.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/MixinWorkerTest.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/MixinWorkerTest.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/MixinWorkerTest.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/MixinWorkerTest.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/MixinWorkerTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/MixinWorkerTest.java Thu Feb 21 14:28:54 2008
@@ -1,4 +1,4 @@
-// Copyright 2006, 2007 The Apache Software Foundation
+// Copyright 2006, 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.services;
+package org.apache.tapestry.internal.transform;
import org.apache.tapestry.annotations.Mixin;
import org.apache.tapestry.internal.test.InternalBaseTestCase;
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ParameterWorkerTest.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ParameterWorkerTest.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ParameterWorkerTest.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ParameterWorkerTest.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ParameterWorkerTest.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ParameterWorkerTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ParameterWorkerTest.java Thu Feb 21 14:28:54 2008
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.services;
+package org.apache.tapestry.internal.transform;
import javassist.CtClass;
import javassist.Loader;
@@ -20,6 +20,9 @@
import org.apache.tapestry.Binding;
import org.apache.tapestry.TapestryConstants;
import org.apache.tapestry.internal.InternalComponentResources;
+import org.apache.tapestry.internal.services.Instantiator;
+import org.apache.tapestry.internal.services.InternalClassTransformation;
+import org.apache.tapestry.internal.services.InternalClassTransformationImpl;
import org.apache.tapestry.internal.test.InternalBaseTestCase;
import org.apache.tapestry.internal.transform.components.DefaultParameterBindingMethodComponent;
import org.apache.tapestry.internal.transform.components.DefaultParameterComponent;
@@ -37,7 +40,7 @@
import org.testng.annotations.Test;
/**
- * There's no point in trying to unit test the code generated by {@link org.apache.tapestry.internal.services.ParameterWorker}.
+ * There's no point in trying to unit test the code generated by {@link org.apache.tapestry.internal.transform.ParameterWorker}.
* Instead, we excercize ParameterWorker, and test that the generated code works correctly in a number of scenarios.
*/
public class ParameterWorkerTest extends InternalBaseTestCase
@@ -47,7 +50,7 @@
private PropertyAccess _access = new PropertyAccessImpl();
/**
- * Accessed by DefaultParameerBindingMethodComponent.
+ * Accessed by DefaultParameterBindingMethodComponent.
*/
public static Binding _binding;
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ResponseEncodingWorkerTest.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ResponseEncodingWorkerTest.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ResponseEncodingWorkerTest.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ResponseEncodingWorkerTest.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ResponseEncodingWorkerTest.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ResponseEncodingWorkerTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ResponseEncodingWorkerTest.java Thu Feb 21 14:28:54 2008
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.services;
+package org.apache.tapestry.internal.transform;
import org.apache.tapestry.TapestryConstants;
import org.apache.tapestry.annotations.ResponseEncoding;
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/RetainWorkerTest.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/RetainWorkerTest.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/RetainWorkerTest.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/RetainWorkerTest.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/RetainWorkerTest.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/RetainWorkerTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/RetainWorkerTest.java Thu Feb 21 14:28:54 2008
@@ -1,24 +1,24 @@
-// Copyright 2006, 2007 The Apache Software Foundation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.apache.tapestry.internal.services;
+// Copyright 2006, 2007, 2008 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
-import org.apache.tapestry.annotations.Retain;
-import org.apache.tapestry.internal.test.InternalBaseTestCase;
-import org.apache.tapestry.model.MutableComponentModel;
-import org.apache.tapestry.services.ClassTransformation;
-import org.testng.annotations.Test;
+package org.apache.tapestry.internal.transform;
+
+import org.apache.tapestry.annotations.Retain;
+import org.apache.tapestry.internal.test.InternalBaseTestCase;
+import org.apache.tapestry.model.MutableComponentModel;
+import org.apache.tapestry.services.ClassTransformation;
+import org.testng.annotations.Test;
public class RetainWorkerTest extends InternalBaseTestCase
{
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/SupportsInformalParametersWorkerTest.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/SupportsInformalParametersWorkerTest.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/SupportsInformalParametersWorkerTest.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/SupportsInformalParametersWorkerTest.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/SupportsInformalParametersWorkerTest.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/SupportsInformalParametersWorkerTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/SupportsInformalParametersWorkerTest.java Thu Feb 21 14:28:54 2008
@@ -1,4 +1,4 @@
-// Copyright 2006, 2007 The Apache Software Foundation
+// Copyright 2006, 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.services;
+package org.apache.tapestry.internal.transform;
import org.apache.tapestry.annotations.SupportsInformalParameters;
import org.apache.tapestry.internal.test.InternalBaseTestCase;
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/TestPackageAwareLoader.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/TestPackageAwareLoader.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/TestPackageAwareLoader.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/TestPackageAwareLoader.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/TestPackageAwareLoader.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/TestPackageAwareLoader.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/TestPackageAwareLoader.java Thu Feb 21 14:28:54 2008
@@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.services;
+package org.apache.tapestry.internal.transform;
import javassist.ClassPool;
import javassist.Loader;
-class TestPackageAwareLoader extends Loader
+public class TestPackageAwareLoader extends Loader
{
public TestPackageAwareLoader(ClassLoader parent, ClassPool cp)
{
@@ -25,9 +25,12 @@
}
@Override
- protected Class findClass(String className) throws ClassNotFoundException
+ public Class findClass(String className) throws ClassNotFoundException
{
- if (className.startsWith("org.apache.tapestry.internal.transform.")) return super.findClass(className);
+ int lastdotx = className.lastIndexOf('.');
+ String packageName = className.substring(0, lastdotx);
+
+ if (packageName.startsWith("org.apache.tapestry.internal.transform.")) return super.findClass(className);
// Returning null forces delegation to the parent class loader.
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/UnclaimedFieldWorkerTest.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/UnclaimedFieldWorkerTest.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/UnclaimedFieldWorkerTest.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/UnclaimedFieldWorkerTest.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/UnclaimedFieldWorkerTest.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/UnclaimedFieldWorkerTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/UnclaimedFieldWorkerTest.java Thu Feb 21 14:28:54 2008
@@ -1,4 +1,4 @@
-// Copyright 2006, 2007 The Apache Software Foundation
+// Copyright 2006, 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.services;
+package org.apache.tapestry.internal.transform;
import org.apache.tapestry.internal.test.InternalBaseTestCase;
import org.apache.tapestry.model.MutableComponentModel;
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/components/DefaultParameterBindingMethodComponent.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/components/DefaultParameterBindingMethodComponent.java?rev=630030&r1=630029&r2=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/components/DefaultParameterBindingMethodComponent.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/components/DefaultParameterBindingMethodComponent.java Thu Feb 21 14:28:54 2008
@@ -16,7 +16,7 @@
import org.apache.tapestry.Binding;
import org.apache.tapestry.annotations.Parameter;
-import org.apache.tapestry.internal.services.ParameterWorkerTest;
+import org.apache.tapestry.internal.transform.ParameterWorkerTest;
public class DefaultParameterBindingMethodComponent
{
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/components/DefaultParameterComponent.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/components/DefaultParameterComponent.java?rev=630030&r1=630029&r2=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/components/DefaultParameterComponent.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/components/DefaultParameterComponent.java Thu Feb 21 14:28:54 2008
@@ -17,7 +17,7 @@
import org.apache.tapestry.annotations.Parameter;
/**
- * Used by {@link org.apache.tapestry.internal.services.ParameterWorkerTest}.
+ * Used by {@link org.apache.tapestry.internal.transform.ParameterWorkerTest}.
*/
public class DefaultParameterComponent
{
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/components/ParameterComponent.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/components/ParameterComponent.java?rev=630030&r1=630029&r2=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/components/ParameterComponent.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/components/ParameterComponent.java Thu Feb 21 14:28:54 2008
@@ -17,7 +17,7 @@
import org.apache.tapestry.annotations.Parameter;
/**
- * Used by {@link org.apache.tapestry.internal.services.ParameterWorkerTest}.
+ * Used by {@link org.apache.tapestry.internal.transform.ParameterWorkerTest}.
*/
public class ParameterComponent
{
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/FieldAccessBean.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/FieldAccessBean.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/FieldAccessBean.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/FieldAccessBean.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/FieldAccessBean.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/FieldAccessBean.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/FieldAccessBean.java Thu Feb 21 14:28:54 2008
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.transform;
+package org.apache.tapestry.internal.transform.pages;
public class FieldAccessBean
{
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/MaybeStateHolder.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/MaybeStateHolder.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/MaybeStateHolder.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/MaybeStateHolder.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/MaybeStateHolder.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/MaybeStateHolder.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/MaybeStateHolder.java Thu Feb 21 14:28:54 2008
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.transform;
+package org.apache.tapestry.internal.transform.pages;
import org.apache.tapestry.annotations.ApplicationState;
import org.apache.tapestry.internal.services.SimpleASO;
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/MethodPrefixTarget.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/MethodPrefixTarget.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/MethodPrefixTarget.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/MethodPrefixTarget.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/MethodPrefixTarget.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/MethodPrefixTarget.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/MethodPrefixTarget.java Thu Feb 21 14:28:54 2008
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.transform;
+package org.apache.tapestry.internal.transform.pages;
public class MethodPrefixTarget
{
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/ReadOnlyBean.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ReadOnlyBean.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/ReadOnlyBean.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/ReadOnlyBean.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ReadOnlyBean.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/ReadOnlyBean.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/ReadOnlyBean.java Thu Feb 21 14:28:54 2008
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.transform;
+package org.apache.tapestry.internal.transform.pages;
public class ReadOnlyBean
{
Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/StateHolder.java (from r628959, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/StateHolder.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/StateHolder.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/StateHolder.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/StateHolder.java&r1=628959&r2=630030&rev=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/StateHolder.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/pages/StateHolder.java Thu Feb 21 14:28:54 2008
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.transform;
+package org.apache.tapestry.internal.transform.pages;
import org.apache.tapestry.annotations.ApplicationState;
import org.apache.tapestry.internal.services.SimpleASO;
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/components/Border.tml
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/components/Border.tml?rev=630030&r1=630029&r2=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/components/Border.tml (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/components/Border.tml Thu Feb 21 14:28:54 2008
@@ -19,9 +19,17 @@
</p>
<p>
- Currently on page: ${componentResources.pageName}
+ Currently on page: ${componentResources.pageName} (via
+ <span id="secure">${secure}</span>
+ access)
</p>
+
+ <h3>
+ Request info:
+ </h3>
+
+ <t:renderobject object="request"/>
<h3>Fabricated classes:</h3>
Added: tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/SecurePage.tml
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/SecurePage.tml?rev=630030&view=auto
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/SecurePage.tml (added)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/SecurePage.tml Thu Feb 21 14:28:54 2008
@@ -0,0 +1,46 @@
+<html t:type="Border" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
+
+ <h1>Secure Page Access</h1>
+
+
+ <t:if test="message">
+ <p>
+ Message:
+ <span id="message">${message}</span>
+ </p>
+ </t:if>
+
+ <p>
+ <t:actionlink t:id="secureLink">click</t:actionlink>
+ </p>
+
+ <p>
+ <t:form>
+ <input type="submit" value="Secure Submit"/>
+ </t:form>
+ </p>
+
+ <p>
+ We're also demonstrating the ability to send assets via insecure access.
+ </p>
+
+ <p>
+ The Tapestry banner:
+ </p>
+
+ <img id="icon" src="${icon}"/>
+
+ <p>
+ A classpath asset:
+ </p>
+
+ <img id="button" src="${button}"/>
+
+
+ <p>
+ Relative asset via asset: binding
+ </p>
+
+ <img src="${asset:smiley.png}"/>
+
+</html>
\ No newline at end of file
Modified: tapestry/tapestry5/trunk/tapestry-test/src/main/java/org/apache/tapestry/test/AbstractIntegrationTestSuite.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-test/src/main/java/org/apache/tapestry/test/AbstractIntegrationTestSuite.java?rev=630030&r1=630029&r2=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-test/src/main/java/org/apache/tapestry/test/AbstractIntegrationTestSuite.java (original)
+++ tapestry/tapestry5/trunk/tapestry-test/src/main/java/org/apache/tapestry/test/AbstractIntegrationTestSuite.java Thu Feb 21 14:28:54 2008
@@ -24,25 +24,24 @@
import org.testng.annotations.BeforeClass;
/**
- * A base class for creating integration tests. Ths encapsulates starting up an in-process copy of
- * Jetty, and in-process copy of {@link SeleniumServer}, and a Selenium client.
+ * A base class for creating integration tests. Ths encapsulates starting up an in-process copy of Jetty, and in-process
+ * copy of {@link SeleniumServer}, and a Selenium client.
* <p/>
- * Unless you are <em>very, very clever</em>, you will want to run the tests sequentially. TestNG
- * tends to run them in an arbitrary order unless you explicitly set the order. If you have managed
- * to get TestNG to run tests in parallel, you may see further problems caused by a single client
- * jumping all over your web application in an unpredictable order.
+ * Unless you are <em>very, very clever</em>, you will want to run the tests sequentially. TestNG tends to run them in
+ * an arbitrary order unless you explicitly set the order. If you have managed to get TestNG to run tests in parallel,
+ * you may see further problems caused by a single client jumping all over your web application in an unpredictable
+ * order.
* <p/>
- * This class implements the {@link Selenium} interface, and delegates all those methods to the
- * {@link DefaultSelenium} instance it creates. It also extends the normal exception reporting for
- * any failed command or query to produce a more detailed report to the main console.
+ * This class implements the {@link Selenium} interface, and delegates all those methods to the {@link DefaultSelenium}
+ * instance it creates. It also extends the normal exception reporting for any failed command or query to produce a more
+ * detailed report to the main console.
*
- * @see JettyRunner
+ * @see org.apache.tapestry.test.JettyRunner
*/
public abstract class AbstractIntegrationTestSuite extends Assert implements Selenium
{
/**
- * Default directory containing the web application to be tested (this conforms to Maven's
- * default folder).
+ * Default directory containing the web application to be tested (this conforms to Maven's default folder).
*/
public static final String DEFAULT_WEB_APP_ROOT = "src/main/webapp";
@@ -95,8 +94,8 @@
/**
* @param webAppRoot web application root (default src/main/webapp)
- * @param browserCommand browser command to pass to selenium. Default is *firefox, syntax for custom
- * browsers is *custom <path_to_browser>, e.g. *custom /usr/lib/mozilla-firefox/firefox
+ * @param browserCommand browser command to pass to selenium. Default is *firefox, syntax for custom browsers is
+ * *custom <path_to_browser>, e.g. *custom /usr/lib/mozilla-firefox/firefox
*/
protected AbstractIntegrationTestSuite(String webAppRoot, String browserCommand)
{
@@ -547,8 +546,7 @@
}
/**
- * Used to start a typical test, by opening to the base URL and clicking through a series of
- * links.
+ * Used to start a typical test, by opening to the base URL and clicking through a series of links.
*/
protected final void start(String... linkText)
{
Modified: tapestry/tapestry5/trunk/tapestry-test/src/main/java/org/apache/tapestry/test/JettyRunner.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-test/src/main/java/org/apache/tapestry/test/JettyRunner.java?rev=630030&r1=630029&r2=630030&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-test/src/main/java/org/apache/tapestry/test/JettyRunner.java (original)
+++ tapestry/tapestry5/trunk/tapestry-test/src/main/java/org/apache/tapestry/test/JettyRunner.java Thu Feb 21 14:28:54 2008
@@ -1,4 +1,4 @@
-// Copyright 2006, 2007 The Apache Software Foundation
+// Copyright 2006, 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
import org.mortbay.http.NCSARequestLog;
import org.mortbay.http.SocketListener;
+import org.mortbay.http.SunJsseListener;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.servlet.WebApplicationContext;
@@ -23,8 +24,8 @@
import static java.lang.String.format;
/**
- * Used to start up an instance of the Jetty servlet container in-process, as part of an integration
- * test suite. The started Jetty is reliant on the file <code>src/test/conf/webdefault.xml</code>.
+ * Used to start up an instance of the Jetty servlet container in-process, as part of an integration test suite. The
+ * started Jetty is reliant on the file <code>src/test/conf/webdefault.xml</code>.
*
* @see AbstractIntegrationTestSuite
*/
@@ -32,7 +33,9 @@
{
public static final String DEFAULT_CONTEXT_PATH = "/";
- public static final int DEFAULT_PORT = 80;
+ public static final int DEFAULT_PORT = 8080;
+
+ public static final int DEFAULT_SECURE_PORT = 8443;
private final File _workingDir;
@@ -45,8 +48,7 @@
private final Server _jetty;
/**
- * Creates and starts a new instance of Jetty. This should be done from a test case setup
- * method.
+ * Creates and starts a new instance of Jetty. This should be done from a test case setup method.
*
* @param workingDir current directory (used for any relative files)
* @param contextPath the context path for the deployed application
@@ -94,6 +96,7 @@
return format("<JettyRunner %s:%d (%s)>", _contextPath, _port, _warPath);
}
+
private Server createAndStart()
{
try
@@ -102,13 +105,28 @@
String warPath = new File(_workingDir, _warPath).getPath();
String webDefaults = new File(_workingDir, "src/test/conf/webdefault.xml").getPath();
+ File keystoreFile = new File(_workingDir, "src/test/conf/keystore");
+ String keystore = keystoreFile.getPath();
+
System.out.printf("Starting Jetty instance on port %d (%s mapped to %s)\n", _port, _contextPath, warPath);
Server server = new Server();
+
SocketListener socketListener = new SocketListener();
socketListener.setPort(_port);
server.addListener(socketListener);
+
+ if (keystoreFile.exists())
+ {
+ SunJsseListener secureListener = new SunJsseListener();
+ secureListener.setPort(DEFAULT_SECURE_PORT);
+ secureListener.setKeystore(keystore);
+ secureListener.setPassword("tapestry");
+ secureListener.setKeyPassword("tapestry");
+
+ server.addListener(secureListener);
+ }
NCSARequestLog log = new NCSARequestLog();
server.setRequestLog(log);