in src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JspIncludeTest.java [64:144]
public void setUp() throws Exception {
H.setUp();
// Create the test nodes under a path that's specific to this class to
// allow collisions
final String url = HttpTest.HTTP_BASE_URL + "/" + getClass().getSimpleName() + "/" + System.currentTimeMillis()
+ SlingPostConstants.DEFAULT_CREATE_SUFFIX;
final Map<String, String> props = new HashMap<String, String>();
// Create two test nodes and store their paths
testTextA = "Text A " + System.currentTimeMillis();
props.put("text", testTextA);
nodeUrlA = H.getTestClient().createNode(url, props);
String pathToInclude = nodeUrlA.substring(HttpTest.HTTP_BASE_URL.length());
// Node B stores the path of A, so that the test script can
// include A when rendering B
testTextB = "Text B " + System.currentTimeMillis();
props.put("text", testTextB);
props.put("pathToInclude", pathToInclude);
nodeUrlB = H.getTestClient().createNode(url, props);
// Node E is like B but with an extension on the include path
props.put("pathToInclude", pathToInclude + ".html");
nodeUrlE = H.getTestClient().createNode(url, props);
// Node F is used for the max calls detection test
props.put("testMaxCalls", "true");
nodeUrlF = H.getTestClient().createNode(url, props);
// Node C is used for the infinite loop detection test
props.remove("pathToInclude");
props.remove("testMaxCalls");
props.put("testInfiniteLoop", "true");
nodeUrlC = H.getTestClient().createNode(url, props);
// Node D is used for the "force resource type" test
forcedResourceType = getClass().getSimpleName() + "/" + System.currentTimeMillis();
props.remove("testInfiniteLoop");
props.put("forceResourceType", forcedResourceType);
props.put("pathToInclude", pathToInclude);
nodeUrlD = H.getTestClient().createNode(url, props);
// Node G is used for the basic "call" test
props.remove("forceResourceType");
props.remove("pathToInclude");
props.put("testCallScript", "called-test.jsp");
nodeUrlG = H.getTestClient().createNode(url, props);
// Node I is used for the "var" test
props.remove("forceResourceType");
props.remove("testCallScript");
props.put("testVarInclude", "true");
props.put("pathToInclude", pathToInclude);
props.put("VAR_INCLUDE", "VALUE");
nodeUrlI = H.getTestClient().createNode(url, props);
// Script for forced resource type
H.setScriptPath("/apps/" + forcedResourceType);
H.getTestClient().mkdirs(HttpTest.WEBDAV_BASE_URL, H.getScriptPath());
toDelete.add(H.uploadTestScript(H.getScriptPath(), "include-forced.jsp", "html.jsp"));
// The main rendering script goes under /apps in the repository
H.setScriptPath("/apps/nt/unstructured");
H.getTestClient().mkdirs(HttpTest.WEBDAV_BASE_URL, H.getScriptPath());
toDelete.add(H.uploadTestScript(H.getScriptPath(), "include-test.jsp", "html.jsp"));
toDelete.add(H.uploadTestScript(H.getScriptPath(), "called-test.jsp", "called-test.jsp"));
// Node H is used for "call" test where the called script is inherited from the supertype
String nodeHResourceType = getClass().getSimpleName() + "/" + System.currentTimeMillis();
String nodeHSuperResourceType = getClass().getSimpleName() + "/super" + System.currentTimeMillis();
props.put("sling:resourceType", nodeHResourceType);
props.put("sling:resourceSuperType", nodeHSuperResourceType);
nodeUrlH = H.getTestClient().createNode(url, props);
H.setScriptPath("/apps/" + nodeHResourceType);
H.getTestClient().mkdirs(HttpTest.WEBDAV_BASE_URL, H.getScriptPath());
toDelete.add(H.uploadTestScript(H.getScriptPath(), "calling-test.jsp", "html.jsp"));
H.setScriptPath("/apps/" + nodeHSuperResourceType);
H.getTestClient().mkdirs(HttpTest.WEBDAV_BASE_URL, H.getScriptPath());
toDelete.add(H.uploadTestScript(H.getScriptPath(), "called-test.jsp", "called-test.jsp"));
}