/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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.sling.launchpad.webapp.integrationtest;

import java.io.IOException;

import org.apache.sling.commons.testing.integration.HttpTestBase;

/** A GET to *.html and *.json must work even if there is no Node
 *  at the specified path (SLING-344)
 */
public class GetStarTest extends HttpTestBase {
    private final String random = getClass().getSimpleName() + String.valueOf(System.currentTimeMillis());

    public void testGetStarHtml() throws IOException {
        getContent(HTTP_BASE_URL + "/*.html", CONTENT_TYPE_HTML);
        getContent(HTTP_BASE_URL + "/" + random + "/*.html", CONTENT_TYPE_HTML);
        getContent(HTTP_BASE_URL + "/" + random + "/" + random + "/*.html", CONTENT_TYPE_HTML);
        getContent(HTTP_BASE_URL + "/" + random + "/*.someselector.html", CONTENT_TYPE_HTML);
    }

    public void testGetStarJson() throws IOException {
        getContent(HTTP_BASE_URL + "/*.json", CONTENT_TYPE_JSON);
        getContent(HTTP_BASE_URL + "/" + random + "/*.json", CONTENT_TYPE_JSON);
        getContent(HTTP_BASE_URL + "/" + random + "/*.12.json", CONTENT_TYPE_JSON);
    }

    public void testGetStarWithScript() throws IOException {
        final String scriptPath = "/apps/" + random;
        testClient.mkdirs(WEBDAV_BASE_URL, scriptPath);
        urlsToDelete.add(WEBDAV_BASE_URL + scriptPath);
        final String fakeNodePath = HTTP_BASE_URL + "/sling-test-pbrt/" + random + "/something/*.html";

        {
            final String content = getContent(fakeNodePath, CONTENT_TYPE_HTML);
            assertTrue("Without script, default renderer marker must be present (" + content + ")",
                    content.contains("Resource dumped by HtmlRendererServlet"));
        }

        final String urlToDelete = uploadTestScript(scriptPath, "rendering-test.esp", "html.esp");
        try {
            final String content = getContent(fakeNodePath, CONTENT_TYPE_HTML);
            assertTrue("With script, test script marker must be present (" + content + ")",
                    content.contains("ESP template"));
        } finally {
            testClient.delete(urlToDelete);
        }

    }

}

@@ -889,75 +889,8 @@
 n;%0A%0A
-import org.apache.sling.commons.testing.integration.HttpTestBase;%0A%0A
 /** 
@@ -1030,12 +1030,17 @@
 nds 
-Http
+Rendering
 Test
@@ -2289,137 +2289,27 @@
 sert
-True(%22Without script, default renderer marker must be present (%22 + content + %22)%22,%0A                    content.contains(%22Resource 
+Contains(content, %22
 dump
@@ -2335,17 +2335,16 @@
 ervlet%22)
-)
 ;%0A      
@@ -2563,119 +2563,26 @@
 sert
-True(%22With script, test script marker must be present (%22 + content + %22)%22,%0A                    content.contains(
+Contains(content, 
 %22ESP
@@ -2592,17 +2592,16 @@
 mplate%22)
-)
 ;%0A      

simplify tests using assertContains()