You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2008/05/27 19:07:53 UTC
svn commit: r660609 - in /incubator/abdera/java/trunk/server/src:
main/java/org/apache/abdera/protocol/server/impl/
test/java/org/apache/abdera/protocol/server/test/customer/
test/java/org/apache/abdera/protocol/server/test/route/
Author: jmsnell
Date: Tue May 27 10:07:47 2008
New Revision: 660609
URL: http://svn.apache.org/viewvc?rev=660609&view=rev
Log:
https://issues.apache.org/jira/browse/ABDERA-162 - "RouteManager.urlFor shouldn't read params from request"
Modified:
incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/RouteManager.java
incubator/abdera/java/trunk/server/src/test/java/org/apache/abdera/protocol/server/test/customer/CustomerAdapterTest.java
incubator/abdera/java/trunk/server/src/test/java/org/apache/abdera/protocol/server/test/route/RouteTest.java
Modified: incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/RouteManager.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/RouteManager.java?rev=660609&r1=660608&r2=660609&view=diff
==============================================================================
--- incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/RouteManager.java (original)
+++ incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/RouteManager.java Tue May 27 10:07:47 2008
@@ -143,27 +143,13 @@
Object key,
Object param) {
Route route = routes.get(key);
- if (route != null) {
- Map<String, Object> map = new HashMap<String,Object>();
- Context ctx = getContext(param);
- for (String var : ctx) {
- map.put(var, ctx.resolve(var));
- }
- for (String var : route.getVariables()) {
- Object value = context.getTarget().getParameter(var);
- if (!map.containsKey(var) && value != null) {
- map.put(var, value);
- }
- }
- return context.getContextPath() + route.expand(getContext(map));
- } else {
- return null;
- }
+ return route != null?
+ context.getContextPath() + route.expand(getContext(param)) : null;
}
@SuppressWarnings("unchecked")
private Context getContext(Object param) {
- Context context = null;
+ Context context = new EmptyContext();
if (param != null) {
if (param instanceof Map) {
context = new HashMapContext(cleanMapCtx(param), true);
@@ -172,7 +158,7 @@
} else {
context = new ObjectContext(param,true);
}
- } else context = new EmptyContext();
+ }
return context;
}
Modified: incubator/abdera/java/trunk/server/src/test/java/org/apache/abdera/protocol/server/test/customer/CustomerAdapterTest.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/server/src/test/java/org/apache/abdera/protocol/server/test/customer/CustomerAdapterTest.java?rev=660609&r1=660608&r2=660609&view=diff
==============================================================================
--- incubator/abdera/java/trunk/server/src/test/java/org/apache/abdera/protocol/server/test/customer/CustomerAdapterTest.java (original)
+++ incubator/abdera/java/trunk/server/src/test/java/org/apache/abdera/protocol/server/test/customer/CustomerAdapterTest.java Tue May 27 10:07:47 2008
@@ -86,22 +86,6 @@
runTests("/foo/");
}
- @Test
- public void testCustomerProviderWithNonRootBase() throws Exception {
- setupAbdera("/:base/");
- initializeJetty("/");
-
- runTests("/base/");
- }
-
- @Test
- public void testCustomerProviderWithNonRootContextBaseAndBase() throws Exception {
- setupAbdera("/:base/");
- initializeJetty("/foo");
-
- runTests("/foo/base/");
- }
-
private void runTests(String base) throws IOException {
Abdera abdera = new Abdera();
Factory factory = abdera.getFactory();
@@ -158,7 +142,7 @@
res = client.post(colUri.toString() + "?test=foo", entry, opts);
assertEquals(201, res.getStatus());
- prettyPrint(abdera, res.getDocument());
+ //prettyPrint(abdera, res.getDocument());
IRI location = res.getLocation();
assertEquals(base + "customers/1001-Dan_Diephouse", location.toString());
@@ -170,7 +154,7 @@
// prettyPrint(abdera, res.getDocument());
org.apache.abdera.model.Document<Entry> entry_doc = res.getDocument();
- prettyPrint(abdera, entry_doc);
+ //prettyPrint(abdera, entry_doc);
entry = entry_doc.getRoot();
assertEquals(uri + "customers/1001-Dan_Diephouse", entry_doc.getRoot().getEditLinkResolvedHref().toString());
Modified: incubator/abdera/java/trunk/server/src/test/java/org/apache/abdera/protocol/server/test/route/RouteTest.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/server/src/test/java/org/apache/abdera/protocol/server/test/route/RouteTest.java?rev=660609&r1=660608&r2=660609&view=diff
==============================================================================
--- incubator/abdera/java/trunk/server/src/test/java/org/apache/abdera/protocol/server/test/route/RouteTest.java (original)
+++ incubator/abdera/java/trunk/server/src/test/java/org/apache/abdera/protocol/server/test/route/RouteTest.java Tue May 27 10:07:47 2008
@@ -177,37 +177,36 @@
}
@Test
+ @SuppressWarnings("serial")
public void testUrlFor() throws Exception {
- RouteManager manager = new RouteManager().addRoute(new Route("entry", "/base/:collection/:entry"));
-
- Target targetMock = createMock(Target.class);
- expect(targetMock.getParameter("collection")).andReturn("entries");
- expect(targetMock.getParameter("entry")).andReturn("123");
- replay(targetMock);
- RequestContext contextMock = createMock(RequestContext.class);
- expect(contextMock.getContextPath()).andReturn("/app");
- expect(contextMock.getTarget()).andReturn(targetMock).times(2);
- replay(contextMock);
-
- assertEquals("/app/base/entries/123", manager.urlFor(contextMock, "entry", null));
+ Map<String, String> context = new HashMap<String, String>() {{
+ put("entry", "123");
+ }};
+ runTestUrlFor("/app/base/123", context);
}
@Test
@SuppressWarnings("serial")
- public void testUrlForNotAddQueryParams() throws Exception {
- RouteManager manager = new RouteManager().addRoute("entry", "/base/:entry");
-
- Target targetMock = createMock(Target.class);
- expect(targetMock.getParameter("entry")).andReturn(null);
- replay(targetMock);
- RequestContext contextMock = createMock(RequestContext.class);
- expect(contextMock.getContextPath()).andReturn("/app");
- expect(contextMock.getTarget()).andReturn(targetMock).times(2);
- replay(contextMock);
-
+ public void testUrlForSupportsParamsWithColon() throws Exception {
Map<String, String> context = new HashMap<String, String>() {{
put(":entry", null);
}};
- assertEquals("/app/base/", manager.urlFor(contextMock, "entry", context));
+ runTestUrlFor("/app/base/", context);
}
+
+ @Test
+ @SuppressWarnings("serial")
+ public void testUrlForEmptyContext() throws Exception {
+ runTestUrlFor("/app/base/", null);
+ }
+
+ private void runTestUrlFor(String expected, Map<String, String> context) {
+ RouteManager manager = new RouteManager().addRoute(new Route("entry", "/base/:entry"));
+
+ RequestContext request = createMock(RequestContext.class);
+ expect(request.getContextPath()).andReturn("/app");
+ replay(request);
+
+ assertEquals(expected, manager.urlFor(request, "entry", context));
+ }
}