use of org.apache.sling.launchpad.testservices.exported.FakeSlingHttpServletRequest in project sling by apache.
the class ResourceResolverTest method testResolveRemovedVanityPath.
@Test
public void testResolveRemovedVanityPath() throws Exception {
String path = ResourceUtil.normalize(ResourceUtil.getParent(rootPath) + "/" + vanity[0] + ".print.html");
HttpServletRequest request = new FakeSlingHttpServletRequest(path);
Resource res = resResolver.resolve(request, path);
assertNotNull(res);
assertEquals(rootPath, res.getPath());
assertEquals(rootNode.getPrimaryNodeType().getName(), res.getResourceType());
assertEquals(".print.html", res.getResourceMetadata().getResolutionPathInfo());
assertNotNull(res.adaptTo(Node.class));
assertTrue(rootNode.isSame(res.adaptTo(Node.class)));
//remove vanityPath property
rootNode.getProperty("sling:vanityPath").remove();
saveMappings(session);
res = resResolver.resolve(request, path);
assertNotNull(res);
assertTrue(res instanceof NonExistingResource);
assertEquals("/" + vanity[0] + ".print.html", res.getPath());
//restore vanityPath
rootNode.setProperty("sling:vanityPath", vanity);
saveMappings(session);
//create new child with vanity path
Node childNode = maybeCreateNode(rootNode, "rootChild", "nt:unstructured");
childNode.setProperty("sling:vanityPath", "childVanity");
childNode.addMixin("sling:VanityPath");
saveMappings(session);
path = ResourceUtil.normalize(ResourceUtil.getParent(rootPath) + "/childVanity.print.html");
request = new FakeSlingHttpServletRequest(path);
res = resResolver.resolve(request, path);
assertNotNull(res);
assertEquals(childNode.getPath(), res.getPath());
assertEquals(childNode.getPrimaryNodeType().getName(), res.getResourceType());
assertEquals(".print.html", res.getResourceMetadata().getResolutionPathInfo());
assertNotNull(res.adaptTo(Node.class));
assertTrue(childNode.isSame(res.adaptTo(Node.class)));
//remove node with vanity path
childNode.remove();
saveMappings(session);
res = resResolver.resolve(request, path);
assertNotNull(res);
assertTrue(res instanceof NonExistingResource);
assertEquals("/childVanity.print.html", res.getPath());
}
use of org.apache.sling.launchpad.testservices.exported.FakeSlingHttpServletRequest in project sling by apache.
the class ResourceResolverTest method testResolveVirtualHostHttp8080Root.
@Test
public void testResolveVirtualHostHttp8080Root() throws Exception {
HttpServletRequest request = new FakeSlingHttpServletRequest(null, "virtual.host.com", 8080, rootPath);
Node virtualhost80 = mapRoot.getNode("map/http").addNode("virtual.host.com.8080", "sling:Mapping");
virtualhost80.setProperty(PROP_REDIRECT_INTERNAL, "/");
try {
saveMappings(session);
final Resource res0 = resResolver.resolve(request, "/playground.html");
assertNotNull(res0);
assertEquals("/playground.html", res0.getPath());
final Resource res1 = resResolver.resolve(request, "/playground/en.html");
assertNotNull(res1);
assertEquals("/playground/en.html", res1.getPath());
final String mapped00 = resResolver.map(res0.getPath());
assertEquals("http://virtual.host.com:8080/playground.html", mapped00);
final String mapped01 = resResolver.map(request, res0.getPath());
assertEquals("/playground.html", mapped01);
final String mapped10 = resResolver.map(res1.getPath());
assertEquals("http://virtual.host.com:8080/playground/en.html", mapped10);
final String mapped11 = resResolver.map(request, res1.getPath());
assertEquals("/playground/en.html", mapped11);
} finally {
virtualhost80.remove();
session.save();
}
}
use of org.apache.sling.launchpad.testservices.exported.FakeSlingHttpServletRequest in project sling by apache.
the class ResourceResolverTest method testResolveResourceInternalRedirectDepthFirst.
@Test
public void testResolveResourceInternalRedirectDepthFirst() throws Exception {
HttpServletRequest request = new FakeSlingHttpServletRequest("https", null, -1, rootPath);
// map anything
Node localhost443 = mapRoot.getNode("map/https/localhost.443");
localhost443.setProperty(PROP_REDIRECT_INTERNAL, "/content2");
// map only ../virtual
Node toContent = localhost443.addNode("virtual", "sling:Mapping");
toContent.setProperty("sling:match", "virtual$");
toContent.setProperty(PROP_REDIRECT_INTERNAL, "/content2/virtual.html");
try {
saveMappings(session);
Resource res = resResolver.resolve(request, "/virtual");
assertNotNull(res);
assertEquals("/content2/virtual.html", res.getPath());
res = resResolver.resolve(request, "/virtual.html");
assertNotNull(res);
assertEquals("/content2/virtual.html", res.getPath());
res = resResolver.resolve(request, "/virtual/child.html");
assertNotNull(res);
assertEquals("/content2/virtual/child.html", res.getPath());
} finally {
localhost443.getProperty(PROP_REDIRECT_INTERNAL).remove();
toContent.remove();
session.save();
}
}
use of org.apache.sling.launchpad.testservices.exported.FakeSlingHttpServletRequest in project sling by apache.
the class ResourceResolverTest method testResolveResourceInternalRedirectExact.
@Test
public void testResolveResourceInternalRedirectExact() throws Exception {
HttpServletRequest request = new FakeSlingHttpServletRequest("https", null, -1, rootPath);
Node localhost443 = mapRoot.getNode("map/https/localhost.443");
Node toContent = localhost443.addNode("virtual", "sling:Mapping");
toContent.setProperty("sling:match", "virtual$");
toContent.setProperty(PROP_REDIRECT_INTERNAL, "/content/virtual.html");
try {
saveMappings(session);
Resource res = resResolver.resolve(request, "/virtual");
assertNotNull(res);
assertEquals("/content/virtual.html", res.getPath());
res = resResolver.resolve(request, "/virtual.html");
assertNotNull(res);
assertEquals("/virtual.html", res.getPath());
res = resResolver.resolve(request, "/virtual/child.html");
assertNotNull(res);
assertEquals("/virtual/child.html", res.getPath());
String url = resResolver.map(null, "/content/virtual.html");
assertNotNull(url);
assertEquals("https://localhost/virtual", url);
url = resResolver.map(request, "/content/virtual.html");
assertNotNull(url);
assertEquals("/virtual", url);
} finally {
toContent.remove();
session.save();
}
}
use of org.apache.sling.launchpad.testservices.exported.FakeSlingHttpServletRequest in project sling by apache.
the class ResourceResolverTest method testResolveVanityPathWithUpdate.
@Test
public void testResolveVanityPathWithUpdate() throws Exception {
String path = ResourceUtil.normalize(ResourceUtil.getParent(rootPath) + "/" + vanity[2] + ".print.html");
HttpServletRequest request = new FakeSlingHttpServletRequest(path);
Resource res = resResolver.resolve(request, path);
assertNotNull(res);
assertEquals(rootPath, res.getPath());
assertEquals(rootNode.getPrimaryNodeType().getName(), res.getResourceType());
assertEquals(".print.html", res.getResourceMetadata().getResolutionPathInfo());
assertNotNull(res.adaptTo(Node.class));
assertTrue(rootNode.isSame(res.adaptTo(Node.class)));
path = ResourceUtil.normalize(ResourceUtil.getParent(rootPath) + "/" + vanity[2] + ".print.html/suffix.pdf");
request = new FakeSlingHttpServletRequest(path);
res = resResolver.resolve(request, path);
assertNotNull(res);
assertEquals(rootPath, res.getPath());
assertEquals(rootNode.getPrimaryNodeType().getName(), res.getResourceType());
assertEquals(".print.html/suffix.pdf", res.getResourceMetadata().getResolutionPathInfo());
assertNotNull(res.adaptTo(Node.class));
assertTrue(rootNode.isSame(res.adaptTo(Node.class)));
//update vanityPath
String[] vanityPathUpdated = new String[] { "testVanity", "testV", "testVanityUpdated" };
rootNode.setProperty("sling:vanityPath", vanityPathUpdated);
saveMappings(session);
path = ResourceUtil.normalize(ResourceUtil.getParent(rootPath) + "/" + vanityPathUpdated[2] + ".print.html");
request = new FakeSlingHttpServletRequest(path);
res = resResolver.resolve(request, path);
assertNotNull(res);
assertEquals(rootPath, res.getPath());
assertEquals(rootNode.getPrimaryNodeType().getName(), res.getResourceType());
assertEquals(".print.html", res.getResourceMetadata().getResolutionPathInfo());
assertNotNull(res.adaptTo(Node.class));
assertTrue(rootNode.isSame(res.adaptTo(Node.class)));
path = ResourceUtil.normalize(ResourceUtil.getParent(rootPath) + "/" + vanityPathUpdated[2] + ".print.html/suffix.pdf");
request = new FakeSlingHttpServletRequest(path);
res = resResolver.resolve(request, path);
assertNotNull(res);
assertEquals(rootPath, res.getPath());
assertEquals(rootNode.getPrimaryNodeType().getName(), res.getResourceType());
assertEquals(".print.html/suffix.pdf", res.getResourceMetadata().getResolutionPathInfo());
assertNotNull(res.adaptTo(Node.class));
assertTrue(rootNode.isSame(res.adaptTo(Node.class)));
path = ResourceUtil.normalize(ResourceUtil.getParent(rootPath) + "/" + vanity[2] + ".print.html");
request = new FakeSlingHttpServletRequest(path);
res = resResolver.resolve(request, path);
assertNotNull(res);
assertTrue(res instanceof NonExistingResource);
assertEquals("/" + vanity[2] + ".print.html", res.getPath());
}
Aggregations