/*
* Licensed 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.esigate.esi;
import java.io.IOException;
import junit.framework.TestCase;
import org.apache.commons.io.output.StringBuilderWriter;
import org.esigate.Driver;
import org.esigate.HttpErrorPage;
import org.esigate.MockRequestExecutor;
import org.esigate.http.IncomingRequest;
import org.esigate.impl.DriverRequest;
import org.esigate.test.TestUtils;
public abstract class AbstractElementTest extends TestCase {
private IncomingRequest.Builder requestBuilder;
private EsiRenderer tested;
private Driver provider;
@Override
protected void setUp() {
provider = MockRequestExecutor.createDriver();
tested = new EsiRenderer();
requestBuilder = TestUtils.createIncomingRequest();
}
protected String render(String page) throws HttpErrorPage, IOException {
IncomingRequest incomingRequest = requestBuilder.build();
DriverRequest request = new DriverRequest(incomingRequest, provider, page);
StringBuilderWriter out = new StringBuilderWriter();
tested.render(request, page, out);
return out.toString();
}
protected void incomingRequest(String uri) {
requestBuilder = TestUtils.createIncomingRequest(uri);
}
protected void addResource(String relUrl, String content) {
((MockRequestExecutor) provider.getRequestExecutor()).addResource(relUrl, content);
}
protected void setProvider(Driver provider) {
this.provider = provider;
}
protected IncomingRequest.Builder getRequestBuilder() {
return requestBuilder;
}
}