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 2009/02/05 02:40:30 UTC
svn commit: r740971 [2/2] - in /tapestry/tapestry5/trunk: src/site/apt/
tapestry-core/src/main/java/org/apache/tapestry5/
tapestry-core/src/main/java/org/apache/tapestry5/corelib/base/
tapestry-core/src/main/java/org/apache/tapestry5/corelib/components...
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/corelib/base/AbstractLinkTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/corelib/base/AbstractLinkTest.java?rev=740971&r1=740970&r2=740971&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/corelib/base/AbstractLinkTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/corelib/base/AbstractLinkTest.java Thu Feb 5 01:40:29 2009
@@ -1,4 +1,4 @@
-// Copyright 2007, 2008 The Apache Software Foundation
+// Copyright 2007, 2008, 2009 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.
@@ -18,11 +18,8 @@
import org.apache.tapestry5.Link;
import org.apache.tapestry5.MarkupWriter;
import org.apache.tapestry5.dom.Element;
-import org.apache.tapestry5.internal.services.ComponentInvocation;
-import org.apache.tapestry5.internal.services.ComponentInvocationMap;
import org.apache.tapestry5.internal.services.MarkupWriterImpl;
import org.apache.tapestry5.internal.test.InternalBaseTestCase;
-import org.apache.tapestry5.internal.test.PageTesterComponentInvocationMap;
import org.testng.annotations.Test;
public class AbstractLinkTest extends InternalBaseTestCase
@@ -38,11 +35,7 @@
{
Link link = mockLink();
ComponentResources resources = mockComponentResources();
- ComponentInvocationMap map = new PageTesterComponentInvocationMap();
MarkupWriter writer = new MarkupWriterImpl();
- ComponentInvocation invocation = mockComponentInvocation();
-
- map.store(link, invocation);
train_toURI(link, LINK_URI);
@@ -50,7 +43,7 @@
replay();
- linkFixture.inject(null, map, resources);
+ linkFixture.inject(null, resources);
linkFixture.writeLink(writer, link);
@@ -62,7 +55,6 @@
writer.end();
assertEquals(writer.toString(), "<a href=\"/foo/bar.baz\">link text</a>");
- assertSame(map.get(e), invocation);
}
@Test
@@ -70,11 +62,7 @@
{
Link link = mockLink();
ComponentResources resources = mockComponentResources();
- ComponentInvocationMap map = new PageTesterComponentInvocationMap();
MarkupWriter writer = new MarkupWriterImpl();
- ComponentInvocation invocation = mockComponentInvocation();
-
- map.store(link, invocation);
train_toURI(link, LINK_URI);
@@ -82,18 +70,15 @@
replay();
- linkFixture.inject("wilma", map, resources);
+ linkFixture.inject("wilma", resources);
linkFixture.writeLink(writer, link);
verify();
- Element e = writer.getElement();
-
writer.write("link text");
writer.end();
assertEquals(writer.toString(), "<a href=\"/foo/bar.baz#wilma\">link text</a>");
- assertSame(map.get(e), invocation);
}
}
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/dom/DOMTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/dom/DOMTest.java?rev=740971&r1=740970&r2=740971&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/dom/DOMTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/dom/DOMTest.java Thu Feb 5 01:40:29 2009
@@ -15,8 +15,11 @@
package org.apache.tapestry5.dom;
import org.apache.tapestry5.internal.test.InternalBaseTestCase;
+import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
import org.testng.annotations.Test;
+import java.util.List;
+
/**
* Tests for a number of DOM node classes, including {@link org.apache.tapestry5.dom.Element} and {@link
* org.apache.tapestry5.dom.Document}.
@@ -733,4 +736,37 @@
assertEquals(d.toString(), readFile("defaults_for_xml_defined_namespaces.txt"));
}
+
+ @Test
+ public void visit_order()
+ {
+ Document d = new Document();
+
+ Element root = d.newRootElement("parent");
+
+ Element child1 = root.element("child1");
+ Element child2 = root.element("child2");
+
+ child1.element("child1a");
+ child1.text("Does not affect traversal");
+ child1.element("child1b");
+
+ child2.element("child2a");
+ child2.element("child2b");
+ child2.element("child2c");
+
+ final List<String> elementNames = CollectionFactory.newList();
+
+ d.visit(new Visitor()
+ {
+ public void visit(Element element)
+ {
+ elementNames.add(element.getName());
+ }
+ });
+
+ assertListsEquals(elementNames, "parent", "child1", "child1a", "child1b", "child2", "child2a", "child2b",
+ "child2c");
+
+ }
}
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/pagelevel/LocaleTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/pagelevel/LocaleTest.java?rev=740971&r1=740970&r2=740971&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/pagelevel/LocaleTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/pagelevel/LocaleTest.java Thu Feb 5 01:40:29 2009
@@ -45,10 +45,16 @@
@Test
public void change_language_in_browser()
{
+ tester.setPreferedLanguage(Locale.ENGLISH);
+
Document doc = tester.renderPage("TestPageForLocale");
+
assertEquals(doc.getElementById("id1").getChildMarkup(), "English page");
+
tester.setPreferedLanguage(Locale.CANADA_FRENCH);
+
doc = tester.renderPage("TestPageForLocale");
+
assertEquals(doc.getElementById("id1").getChildMarkup(), "French page");
}
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/pagelevel/SubmitTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/pagelevel/SubmitTest.java?rev=740971&r1=740970&r2=740971&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/pagelevel/SubmitTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/pagelevel/SubmitTest.java Thu Feb 5 01:40:29 2009
@@ -1,4 +1,4 @@
-// Copyright 2007 The Apache Software Foundation
+// Copyright 2007, 2009 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.
@@ -55,14 +55,25 @@
public void not_a_submit()
{
Element submitButton = doc.getElementById("t1");
+
tester.clickSubmit(submitButton, fieldValues);
}
- @Test(expectedExceptions = IllegalArgumentException.class)
+ @Test
public void not_in_form()
{
- Element submitButton = doc.getElementById("orphanedSubmit");
- tester.clickSubmit(submitButton, fieldValues);
+ try
+ {
+ Element submitButton = doc.getElementById("orphanedSubmit");
+
+ tester.clickSubmit(submitButton, fieldValues);
+
+ throw new RuntimeException("Should not be reachable.");
+ }
+ catch (RuntimeException ex)
+ {
+ assertEquals(ex.getMessage(), "Could not locate an ancestor element of type 'form'.");
+ }
}
@BeforeMethod
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LinkImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LinkImplTest.java?rev=740971&r1=740970&r2=740971&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LinkImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LinkImplTest.java Thu Feb 5 01:40:29 2009
@@ -42,15 +42,14 @@
{
RequestPathOptimizer optimizer = mockRequestPathOptimizer();
Response response = mockResponse();
- ComponentInvocation invocation = mockComponentInvocation();
- train_buildURI(invocation, RAW_PATH);
+ String URI = "/base/context/" + RAW_PATH;
- train_encodeRedirectURL(response, "/base/context/" + RAW_PATH, ENCODED);
+ train_encodeRedirectURL(response, URI, ENCODED);
replay();
- Link link = new LinkImpl(response, optimizer, "/base", "/context", null, invocation);
+ Link link = new LinkImpl(URI, true, false, response, optimizer);
assertEquals(link.toRedirectURI(), ENCODED);
@@ -62,16 +61,13 @@
{
RequestPathOptimizer optimizer = mockRequestPathOptimizer();
Response response = mockResponse();
- ComponentInvocation invocation = mockComponentInvocation();
-
- train_buildURI(invocation, RAW_PATH);
train_optimizePath(optimizer, "/bar/" + RAW_PATH, OPTIMIZED);
train_encodeURL(response, OPTIMIZED, ENCODED);
replay();
- Link link = new LinkImpl(response, optimizer, null, "/bar", null, invocation);
+ Link link = new LinkImpl("/bar/" + RAW_PATH, true, false, response, optimizer);
assertEquals(link.toString(), ENCODED);
@@ -83,13 +79,12 @@
{
RequestPathOptimizer optimizer = mockRequestPathOptimizer();
Response response = mockResponse();
- ComponentInvocation invocation = mockComponentInvocation();
-
- train_getParameter(invocation, "fred", "flintstone");
replay();
- Link link = new LinkImpl(response, optimizer, "", "bar", null, invocation);
+ Link link = new LinkImpl("/foo/bar", true, false, response, optimizer);
+
+ link.addParameter("fred", "flintstone");
assertEquals(link.getParameterValue("fred"), "flintstone");
@@ -99,44 +94,25 @@
@Test
public void url_with_anchor()
{
- try_with_anchor("wilma", "/context/" + RAW_PATH + "#wilma");
- }
-
- @Test
- public void url_with_null_anchor()
- {
- try_with_anchor(null, "/context/" + RAW_PATH);
- }
-
- @Test
- public void url_with_empty_anchor()
- {
- try_with_anchor("", "/context/" + RAW_PATH);
- }
-
- private void try_with_anchor(String anchor, String url)
- {
RequestPathOptimizer optimizer = mockRequestPathOptimizer();
Response response = mockResponse();
- ComponentInvocation invocation = mockComponentInvocation();
- train_buildURI(invocation, RAW_PATH);
- train_optimizePath(optimizer, url, OPTIMIZED);
+ train_optimizePath(optimizer, "/foo/bar", OPTIMIZED);
train_encodeURL(response, OPTIMIZED, ENCODED);
replay();
- Link link = new LinkImpl(response, optimizer, null, "/context", null, invocation);
+ Link link = new LinkImpl("/foo/bar", true, false, response, optimizer);
+ link.setAnchor("wilma");
- link.setAnchor(anchor);
+ assertSame(link.getAnchor(), "wilma");
- assertSame(link.getAnchor(), anchor);
-
- assertEquals(link.toURI(), ENCODED);
+ assertEquals(link.toURI(), ENCODED + "#" + "wilma");
verify();
}
+
@Test
public void force_absolute_uri()
{
@@ -148,12 +124,7 @@
replay();
- Link link = new LinkImpl(response, optimizer, null, "/ctx",
- null,
- new ComponentInvocationImpl(contextPathEncoder, new OpaqueConstantTarget("foo"), null,
- null,
- false)
- );
+ Link link = new LinkImpl("/ctx/foo", true, false, response, optimizer);
assertEquals(link.toAbsoluteURI(), ENCODED);
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LinkSourceImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LinkSourceImplTest.java?rev=740971&r1=740970&r2=740971&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LinkSourceImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/LinkSourceImplTest.java Thu Feb 5 01:40:29 2009
@@ -15,69 +15,71 @@
package org.apache.tapestry5.internal.services;
import org.apache.tapestry5.EventConstants;
+import org.apache.tapestry5.EventContext;
import org.apache.tapestry5.Link;
-import org.apache.tapestry5.internal.InternalConstants;
+import org.apache.tapestry5.internal.EmptyEventContext;
import org.apache.tapestry5.internal.structure.Page;
import org.apache.tapestry5.internal.test.InternalBaseTestCase;
-import org.apache.tapestry5.services.ContextPathEncoder;
+import org.apache.tapestry5.ioc.services.TypeCoercer;
+import org.apache.tapestry5.services.ComponentEventRequestParameters;
import org.apache.tapestry5.services.LinkCreationListener;
-import org.easymock.Capture;
-import static org.easymock.EasyMock.capture;
-import static org.easymock.EasyMock.eq;
+import org.apache.tapestry5.services.PageRenderRequestParameters;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class LinkSourceImplTest extends InternalBaseTestCase
{
- private ContextPathEncoder contextPathEncoder;
+ private TypeCoercer typeCoercer;
+
+ private final EventContext EMPTY = new EmptyEventContext();
@BeforeClass
public void setup()
{
- contextPathEncoder = getService(ContextPathEncoder.class);
+ typeCoercer = getService(TypeCoercer.class);
}
@Test
public void create_page_render_link()
{
- testPageLinkCreation("order/Edit", "order/edit", false);
+ testPageLinkCreation("order/Edit", false);
}
@Test
public void create_page_render_link_for_index_page()
{
- testPageLinkCreation("order/Index", "order", false);
+ testPageLinkCreation("order/Index", false);
}
@Test
public void create_page_render_link_for_index_page_with_context()
{
- testPageLinkCreation("order/Index", "order/99", false, 99);
+ testPageLinkCreation("order/Index", false, 99);
}
@Test
public void create_page_render_link_to_root_index_page()
{
- testPageLinkCreation("Index", "", false);
+ testPageLinkCreation("Index", false);
}
@Test
public void create_page_render_link_to_root_index_page_with_context()
{
- testPageLinkCreation("Index", "202", false, 202);
+ testPageLinkCreation("Index", false, 202);
}
@Test
public void create_page_render_link_with_override_event_context()
{
- testPageLinkCreation("order/Edit", "order/edit/1/2", true, 1, 2);
+ testPageLinkCreation("order/Edit", true, 1, 2);
}
@Test
public void create_page_render_link_with_event_context_from_passivate()
{
- testPageLinkCreation("order/Edit", "order/edit/from/passivate", false, "from", "passivate");
+ testPageLinkCreation("order/Edit", false, "from", "passivate");
}
@Test
@@ -97,13 +99,16 @@
train_collectPageActivationContext(collector, page, 3);
- Capture<ComponentInvocation> holder = train_create(factory, page, link);
+ EventContext pageActivationContext = new ArrayEventContext(typeCoercer, 3);
+ PageRenderRequestParameters parameters = new PageRenderRequestParameters(logicalName, pageActivationContext);
+
+ expect(factory.createPageRenderLink(parameters)).andReturn(link);
replay();
LinkSource source = new LinkSourceImpl(pageCache, null,
- contextPathEncoder, collector, factory);
+ collector, factory, typeCoercer);
Link actual = source.createPageRenderLink(logicalName, false);
@@ -112,19 +117,16 @@
assertEquals(actual, link);
- assertEquals(holder.getValue().buildURI(), "order/edit/3");
-
verify();
}
- private void testPageLinkCreation(String logicalName, String expectedURI, boolean overrideContext,
+ private void testPageLinkCreation(String logicalName, boolean overrideContext,
Object... context)
{
Page page = mockPage();
PageActivationContextCollector collector = mockPageActivationContextCollector();
LinkCreationListener listener = mockLinkCreationListener();
LinkFactory factory = mockLinkFactory();
- Capture<ComponentInvocation> holder = new Capture<ComponentInvocation>();
Link link = mockLink();
train_getLogicalName(page, logicalName);
@@ -132,14 +134,18 @@
if (!overrideContext)
train_collectPageActivationContext(collector, page, context);
- expect(factory.create(eq(page), capture(holder))).andReturn(link);
+ PageRenderRequestParameters parameters =
+ new PageRenderRequestParameters(logicalName,
+ new ArrayEventContext(typeCoercer, context));
+
+ expect(factory.createPageRenderLink(parameters)).andReturn(link);
listener.createdPageRenderLink(link);
replay();
LinkSource source = new LinkSourceImpl(null, null,
- contextPathEncoder, collector, factory);
+ collector, factory, typeCoercer);
source.getLinkCreationHub().addListener(listener);
@@ -149,25 +155,26 @@
assertSame(returnedLink, link);
- assertEquals(holder.getValue().buildURI(), expectedURI);
-
verify();
}
- protected final LinkFactory mockLinkFactory() {return newMock(LinkFactory.class);}
+ protected final LinkFactory mockLinkFactory()
+ {
+ return newMock(LinkFactory.class);
+ }
@Test
public void simple_component_event_link()
{
- testEventLinkCreation("order/edit.foo.bar?t:ac=a/b", "order/Edit", "foo.bar", EventConstants.ACTION,
+ testEventLinkCreation("order/Edit", "foo.bar", EventConstants.ACTION,
false);
}
@Test
public void component_event_link_with_context()
{
- testEventLinkCreation("order/edit.foo.bar/fred/barney?t:ac=a/b", "order/Edit", "foo.bar",
+ testEventLinkCreation("order/Edit", "foo.bar",
EventConstants.ACTION,
false, "fred", "barney");
}
@@ -175,7 +182,7 @@
@Test
public void component_event_link_for_form()
{
- testEventLinkCreation("order/edit.foo.bar/fred/barney", "order/Edit", "foo.bar",
+ testEventLinkCreation("order/Edit", "foo.bar",
EventConstants.ACTION,
true, "fred", "barney");
@@ -202,23 +209,27 @@
train_collectPageActivationContext(collector, activePage, "x", "y");
- Capture<ComponentInvocation> holder = train_create(factory, activePage, link);
+ EventContext pageActivationContext = new ArrayEventContext(typeCoercer, "x", "y");
+ EventContext eventContext = new ArrayEventContext(typeCoercer, 3, 5, 9);
- link.addParameter(InternalConstants.CONTAINER_PAGE_NAME, "blocks/appdisplay");
+ ComponentEventRequestParameters parameters = new ComponentEventRequestParameters("order/View", logicalName,
+ "gnip.gnop", "myevent",
+ pageActivationContext,
+ eventContext);
+
+ expect(factory.createComponentEventLink(parameters, true)).andReturn(link);
replay();
LinkSource source = new LinkSourceImpl(null, queue,
- contextPathEncoder, collector, factory);
+ collector, factory, typeCoercer);
assertSame(source.createComponentEventLink(primaryPage, "gnip.gnop", "myevent", true, 3, 5, 9), link);
verify();
-
- assertEquals(holder.getValue().buildURI(), "order/view.gnip.gnop:myevent/3/5/9");
}
- private void testEventLinkCreation(String expectedURI, String logicalName, String nestedId,
+ private void testEventLinkCreation(String logicalName, String nestedId,
String eventType,
boolean forForm, Object... context)
{
@@ -229,20 +240,32 @@
LinkFactory factory = mockLinkFactory();
Link link = mockLink();
+
+ ArrayEventContext eventContext = new ArrayEventContext(typeCoercer, context);
+
+ ArrayEventContext pageEventContext = new ArrayEventContext(
+ typeCoercer, "a", "b");
+
train_getRenderingPage(queue, null);
train_getLogicalName(primaryPage, logicalName);
train_collectPageActivationContext(collector, primaryPage, "a", "b");
- Capture<ComponentInvocation> holder = train_create(factory, primaryPage, link);
+
+ ComponentEventRequestParameters parameters =
+ new ComponentEventRequestParameters(logicalName, logicalName,
+ nestedId, eventType,
+ pageEventContext, eventContext);
+
+ expect(factory.createComponentEventLink(parameters, forForm)).andReturn(link);
listener.createdComponentEventLink(link);
replay();
LinkSource source = new LinkSourceImpl(null, queue,
- contextPathEncoder, collector, factory);
+ collector, factory, typeCoercer);
source.getLinkCreationHub().addListener(listener);
@@ -253,15 +276,6 @@
assertSame(returnedLink, link);
verify();
-
- assertEquals(holder.getValue().buildURI(), expectedURI);
- }
-
- protected final Capture<ComponentInvocation> train_create(LinkFactory factory, Page primaryPage, Link link)
- {
- Capture<ComponentInvocation> holder = new Capture<ComponentInvocation>();
- expect(factory.create(eq(primaryPage), capture(holder))).andReturn(link);
- return holder;
}
protected final void train_collectPageActivationContext(PageActivationContextCollector collector, Page page,
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/test/InternalBaseTestCase.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/test/InternalBaseTestCase.java?rev=740971&r1=740970&r2=740971&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/test/InternalBaseTestCase.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/test/InternalBaseTestCase.java Thu Feb 5 01:40:29 2009
@@ -421,11 +421,6 @@
return newMock(LinkCreationListener.class);
}
- protected final ComponentInvocationMap mockComponentInvocationMap()
- {
- return newMock(ComponentInvocationMap.class);
- }
-
protected final LinkSource mockLinkSource()
{
return newMock(LinkSource.class);
@@ -644,21 +639,6 @@
return newMock(FieldComponent.class);
}
- protected final ComponentInvocation mockComponentInvocation()
- {
- return newMock(ComponentInvocation.class);
- }
-
- protected final void train_buildURI(ComponentInvocation invocation, String URI)
- {
- expect(invocation.buildURI()).andReturn(URI);
- }
-
- protected void train_getParameter(ComponentInvocation invocation, String parameterName, String parameterValue)
- {
- expect(invocation.getParameterValue(parameterName)).andReturn(parameterValue).atLeastOnce();
- }
-
protected final void train_setLocaleFromLocaleName(LocalizationSetter localizationSetter, String localeName,
boolean recognized)
{