Class HttpTestBase
- java.lang.Object
-
- junit.framework.Assert
-
- junit.framework.TestCase
-
- org.apache.sling.commons.testing.integration.HttpTestBase
-
- All Implemented Interfaces:
junit.framework.Test
- Direct Known Subclasses:
HttpTest
public class HttpTestBase extends junit.framework.TestCase
Base class for HTTP-based Sling Launchpad integration tests
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
HttpTestBase.TestNode
Class that creates a test node under the given parentPath, and stores useful values for testing.
-
Field Summary
-
Constructor Summary
Constructors Constructor Description HttpTestBase()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description org.apache.commons.httpclient.HttpMethod
assertHttpStatus(String urlString, int expectedStatusCode)
Verify that given URL returns expectedStatusCodeorg.apache.commons.httpclient.HttpMethod
assertHttpStatus(String urlString, int expectedStatusCode, String assertMessage)
Verify that given URL returns expectedStatusCodevoid
assertJavascript(String expectedOutput, String jsonData, String code)
void
assertJavascript(String expectedOutput, String jsonData, String code, String testInfo)
Evaluate given code using given jsonData as the "data" objectorg.apache.commons.httpclient.HttpMethod
assertPostStatus(String url, int expectedStatusCode, List<org.apache.commons.httpclient.NameValuePair> postParams, String assertMessage)
Execute a POST request and check statusString
executeScript(String localFilename)
Upload script, execute with no parameters and return contentString
executeScript(String localFilename, List<org.apache.commons.httpclient.NameValuePair> params)
Upload script, execute with given parameters (optional) and return contentString
getContent(String url, String expectedContentType)
retrieve the contents of given URL and assert its content type (default to HTTP GET method)String
getContent(String url, String expectedContentType, List<org.apache.commons.httpclient.NameValuePair> params)
retrieve the contents of given URL and assert its content type (default to HTTP GET method)String
getContent(String url, String expectedContentType, List<org.apache.commons.httpclient.NameValuePair> params, int expectedStatusCode)
retrieve the contents of given URL and assert its content type (default to HTTP GET method)String
getContent(String url, String expectedContentType, List<org.apache.commons.httpclient.NameValuePair> params, int expectedStatusCode, String httpMethod)
retrieve the contents of given URL and assert its content typeorg.apache.commons.httpclient.Credentials
getDefaultCredentials()
Generate default credentials used for HTTP requests.static String
getResponseBodyAsStream(org.apache.commons.httpclient.HttpMethodBase m, int maxLength)
Return m's response body as a string, optionally limiting the length that we readboolean
isBundleVersionAtLeast(String bundleSymbolicName, String version)
Returns true if the bundle version deployed on the Sling instance is present and at least of the specified versionstatic String
removeEndingSlash(String str)
void
setReadinessContentType(String extension, String contentTypePrefix)
Set the extension and content-type prefix to use for GET requests that check Sling readinessprotected void
setUp()
protected boolean
slingServerReady()
Return true if able to create and retrieve a node on serverprotected void
tearDown()
String
uploadTestScript(String scriptPath, String localFilename, String filenameOnServer)
upload rendering test script, and return its URL for future deletionprotected void
waitForSlingStartup()
On the server side, initialization of Sling bundles is done asynchronously once the webapp is started.-
Methods inherited from class junit.framework.TestCase
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, countTestCases, createResult, fail, fail, failNotEquals, failNotSame, failSame, format, getName, run, run, runBare, runTest, setName, toString
-
-
-
-
Field Detail
-
PROPERTY_SKIP_STARTUP_CHECK
public static final String PROPERTY_SKIP_STARTUP_CHECK
If this system property is set, the startup check is skipped.- See Also:
- Constant Field Values
-
HTTP_URL
public static final String HTTP_URL
-
HTTP_BASE_URL
public static final String HTTP_BASE_URL
-
WEBDAV_BASE_URL
public static final String WEBDAV_BASE_URL
-
SERVLET_CONTEXT
public static final String SERVLET_CONTEXT
-
READINESS_MEDIA_TYPE_PROP
public static final String READINESS_MEDIA_TYPE_PROP
- See Also:
- Constant Field Values
-
DEFAULT_READINESS_MEDIA_TYPE
public static final String DEFAULT_READINESS_MEDIA_TYPE
- See Also:
- Constant Field Values
-
READY_URL_PROP_PREFIX
public static final String READY_URL_PROP_PREFIX
- See Also:
- Constant Field Values
-
MAX_READY_URL_INDEX
public static final int MAX_READY_URL_INDEX
- See Also:
- Constant Field Values
-
TEST_PATH
public static final String TEST_PATH
base path for test files- See Also:
- Constant Field Values
-
HTTP_METHOD_GET
public static final String HTTP_METHOD_GET
- See Also:
- Constant Field Values
-
HTTP_METHOD_POST
public static final String HTTP_METHOD_POST
- See Also:
- Constant Field Values
-
CONTENT_TYPE_HTML
public static final String CONTENT_TYPE_HTML
- See Also:
- Constant Field Values
-
CONTENT_TYPE_XML
public static final String CONTENT_TYPE_XML
- See Also:
- Constant Field Values
-
CONTENT_TYPE_PLAIN
public static final String CONTENT_TYPE_PLAIN
- See Also:
- Constant Field Values
-
CONTENT_TYPE_JSON
public static final String CONTENT_TYPE_JSON
- See Also:
- Constant Field Values
-
CONTENT_TYPE_JS
public static final String CONTENT_TYPE_JS
- See Also:
- Constant Field Values
-
CONTENT_TYPE_CSS
public static final String CONTENT_TYPE_CSS
- See Also:
- Constant Field Values
-
SLING_RESOURCE_TYPE
public static final String SLING_RESOURCE_TYPE
- See Also:
- Constant Field Values
-
SLING_POST_SERVLET_CREATE_SUFFIX
public static final String SLING_POST_SERVLET_CREATE_SUFFIX
- See Also:
- Constant Field Values
-
DEFAULT_EXT
public static final String DEFAULT_EXT
- See Also:
- Constant Field Values
-
EXECUTE_RESOURCE_TYPE
public static final String EXECUTE_RESOURCE_TYPE
-
READY_TIMEOUT_SECONDS
public static final int READY_TIMEOUT_SECONDS
-
testClient
protected SlingIntegrationTestClient testClient
-
httpClient
protected org.apache.commons.httpclient.HttpClient httpClient
-
CONTENT_TYPE_DONTCARE
public static final String CONTENT_TYPE_DONTCARE
Means "don't care about Content-Type" in getContent(...) methods- See Also:
- Constant Field Values
-
-
Method Detail
-
setUp
protected void setUp() throws Exception
- Overrides:
setUp
in classjunit.framework.TestCase
- Throws:
Exception
-
getDefaultCredentials
public org.apache.commons.httpclient.Credentials getDefaultCredentials()
Generate default credentials used for HTTP requests.
-
tearDown
protected void tearDown() throws Exception
- Overrides:
tearDown
in classjunit.framework.TestCase
- Throws:
Exception
-
waitForSlingStartup
protected void waitForSlingStartup() throws Exception
On the server side, initialization of Sling bundles is done asynchronously once the webapp is started. This method checks that everything's ready on the server side, by calling an URL that requires the SlingPostServlet and the JCR repository to work correctly.- Throws:
Exception
-
slingServerReady
protected boolean slingServerReady() throws Exception
Return true if able to create and retrieve a node on server- Throws:
Exception
-
assertHttpStatus
public org.apache.commons.httpclient.HttpMethod assertHttpStatus(String urlString, int expectedStatusCode, String assertMessage) throws IOException
Verify that given URL returns expectedStatusCode- Returns:
- the HttpMethod executed
- Throws:
IOException
-
assertHttpStatus
public org.apache.commons.httpclient.HttpMethod assertHttpStatus(String urlString, int expectedStatusCode) throws IOException
Verify that given URL returns expectedStatusCode- Returns:
- the HttpMethod executed
- Throws:
IOException
-
assertPostStatus
public org.apache.commons.httpclient.HttpMethod assertPostStatus(String url, int expectedStatusCode, List<org.apache.commons.httpclient.NameValuePair> postParams, String assertMessage) throws IOException
Execute a POST request and check status- Returns:
- the HttpMethod executed
- Throws:
IOException
-
getContent
public String getContent(String url, String expectedContentType) throws IOException
retrieve the contents of given URL and assert its content type (default to HTTP GET method)- Throws:
IOException
-
getContent
public String getContent(String url, String expectedContentType, List<org.apache.commons.httpclient.NameValuePair> params) throws IOException
retrieve the contents of given URL and assert its content type (default to HTTP GET method)- Throws:
IOException
-
getContent
public String getContent(String url, String expectedContentType, List<org.apache.commons.httpclient.NameValuePair> params, int expectedStatusCode) throws IOException
retrieve the contents of given URL and assert its content type (default to HTTP GET method)- Parameters:
expectedContentType
- use CONTENT_TYPE_DONTCARE if must not be checked- Throws:
IOException
org.apache.commons.httpclient.HttpException
-
getContent
public String getContent(String url, String expectedContentType, List<org.apache.commons.httpclient.NameValuePair> params, int expectedStatusCode, String httpMethod) throws IOException
retrieve the contents of given URL and assert its content type- Parameters:
expectedContentType
- use CONTENT_TYPE_DONTCARE if must not be checkedhttpMethod
- supports just GET and POST methods- Throws:
IOException
org.apache.commons.httpclient.HttpException
-
uploadTestScript
public String uploadTestScript(String scriptPath, String localFilename, String filenameOnServer) throws IOException
upload rendering test script, and return its URL for future deletion- Throws:
IOException
-
executeScript
public String executeScript(String localFilename) throws Exception
Upload script, execute with no parameters and return content- Throws:
Exception
-
executeScript
public String executeScript(String localFilename, List<org.apache.commons.httpclient.NameValuePair> params) throws Exception
Upload script, execute with given parameters (optional) and return content- Throws:
Exception
-
assertJavascript
public void assertJavascript(String expectedOutput, String jsonData, String code) throws IOException
- Throws:
IOException
-
assertJavascript
public void assertJavascript(String expectedOutput, String jsonData, String code, String testInfo) throws IOException
Evaluate given code using given jsonData as the "data" object- Throws:
IOException
-
getResponseBodyAsStream
public static String getResponseBodyAsStream(org.apache.commons.httpclient.HttpMethodBase m, int maxLength) throws IOException
Return m's response body as a string, optionally limiting the length that we read- Parameters:
maxLength
- if 0, no limit- Throws:
IOException
-
setReadinessContentType
public final void setReadinessContentType(String extension, String contentTypePrefix)
Set the extension and content-type prefix to use for GET requests that check Sling readiness
-
isBundleVersionAtLeast
public boolean isBundleVersionAtLeast(String bundleSymbolicName, String version) throws IOException
Returns true if the bundle version deployed on the Sling instance is present and at least of the specified version- Parameters:
bundleSymbolicName
- the bundle name to checkversion
- the minimal version of the bundle that should be deployed- Returns:
- true if the bundle is deployed with the specified version, false if it is not deployed or the version it too old
- Throws:
IOException
-
-