Package org.jvnet.hudson.test
Class HudsonTestCase.WebClient
- java.lang.Object
-
- org.htmlunit.WebClient
-
- org.jvnet.hudson.test.HudsonTestCase.WebClient
-
- All Implemented Interfaces:
Serializable,AutoCloseable
- Enclosing class:
- HudsonTestCase
public class HudsonTestCase.WebClient extends org.htmlunit.WebClientExtendsWebClientand provide convenience methods for accessing Hudson.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description WebClient()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description org.htmlunit.WebRequestaddCrumb(org.htmlunit.WebRequest req)Adds a security crumb to the request.voidassertFails(String url, int statusCode)Verify that the server rejects an attempt to load the given page.URLcreateCrumbedUrl(String relativePath)Creates a URL with crumb parameters relative to {getContextPath()org.htmlunit.html.HtmlPageeval(Runnable requestHandler)Makes an HTTP request, process it with the given request handler, and returns the response.<V> VexecuteOnServer(Callable<V> c)Executes the given closure on the server, by the servlet request handling thread, in the context of an HTTP request.StringgetContextPath()Returns the URL of the webapp top page.org.htmlunit.html.HtmlPagegetPage(hudson.model.Item item)org.htmlunit.html.HtmlPagegetPage(hudson.model.Item item, String relative)org.htmlunit.html.HtmlPagegetPage(hudson.model.Node item)org.htmlunit.html.HtmlPagegetPage(hudson.model.Node item, String relative)org.htmlunit.html.HtmlPagegetPage(hudson.model.Run r)Short forgetPage(r,""), to access the top page of a build.org.htmlunit.html.HtmlPagegetPage(hudson.model.Run r, String relative)Accesses a page insideRun.org.htmlunit.html.HtmlPagegetPage(hudson.model.View view)org.htmlunit.html.HtmlPagegetPage(hudson.model.View view, String relative)org.htmlunit.PagegetPage(String url)Deprecated.This method expects a full URL.org.htmlunit.html.HtmlPagegoTo(String relative)Requests a page within Jenkins.org.htmlunit.PagegoTo(String relative, String expectedContentType)org.htmlunit.xml.XmlPagegoToXml(String path)Loads a page as XML.HudsonTestCase.WebClientlogin(String username)Logs in to Hudson, by using the user name as the password.HudsonTestCase.WebClientlogin(String username, String password)Logs in to Jenkins.org.htmlunit.html.HtmlPagesearch(String q)-
Methods inherited from class org.htmlunit.WebClient
addCookie, addRequestHeader, addWebWindowListener, close, containsWebWindow, deregisterWebWindow, download, expandUrl, getActiveXObjectMap, getAjaxController, getAlertHandler, getAppletConfirmHandler, getAttachmentHandler, getBrowserVersion, getCache, getClipboardHandler, getConfirmHandler, getCookieManager, getCookies, getCredentialsProvider, getCssErrorHandler, getCurrentWindow, getExecutor, getFrameContentHandler, getHTMLParserListener, getIncorrectnessListener, getInternals, getJavaScriptEngine, getJavaScriptErrorListener, getJavaScriptTimeout, getMSXMLActiveXObjectFactory, getOnbeforeunloadHandler, getOptions, getPage, getPage, getPage, getPageCreator, getPrintHandler, getPromptHandler, getRefreshHandler, getScriptPreProcessor, getStatusHandler, getStorageHolder, getTopLevelWindows, getWebConnection, getWebConsole, getWebStartHandler, getWebWindowByName, getWebWindows, guessContentType, initialize, initializeEmptyWindow, isJavaScriptEnabled, isJavaScriptEngineEnabled, loadDownloadedResponses, loadHtmlCodeIntoCurrentWindow, loadWebResponse, loadWebResponseInto, loadWebResponseInto, loadXHtmlCodeIntoCurrentWindow, openDialogWindow, openTargetWindow, openWindow, openWindow, printContentIfNecessary, registerWebWindow, removeRequestHeader, removeWebWindowListener, reset, setActiveXObjectMap, setAjaxController, setAlertHandler, setAppletConfirmHandler, setAttachmentHandler, setCache, setClipboardHandler, setConfirmHandler, setCookieManager, setCredentialsProvider, setCssErrorHandler, setCurrentWindow, setExecutor, setFrameContentHandler, setHTMLParserListener, setIncorrectnessListener, setJavaScriptEngine, setJavaScriptErrorListener, setJavaScriptTimeout, setOnbeforeunloadHandler, setPageCreator, setPrintHandler, setPromptHandler, setRefreshHandler, setScriptPreProcessor, setStatusHandler, setWebConnection, setWebStartHandler, throwFailingHttpStatusCodeExceptionIfNecessary, waitForBackgroundJavaScript, waitForBackgroundJavaScriptStartingBefore
-
-
-
-
Method Detail
-
login
public HudsonTestCase.WebClient login(String username, String password) throws Exception
Logs in to Jenkins.- Throws:
Exception
-
login
public HudsonTestCase.WebClient login(String username) throws Exception
Logs in to Hudson, by using the user name as the password.See
HudsonTestCase.configureUserRealm()for how the container is set up with the user names and passwords. All the test accounts have the same user name and password.- Throws:
Exception
-
executeOnServer
public <V> V executeOnServer(Callable<V> c) throws Exception
Executes the given closure on the server, by the servlet request handling thread, in the context of an HTTP request.In
HudsonTestCase, a thread that's executing the test code is different from the thread that carries out HTTP requests made throughHudsonTestCase.WebClient. But sometimes you want to make assertions and other calls with side-effect from within the request handling thread.This method allows you to do just that. It is useful for testing some methods that require
StaplerRequestandStaplerResponse, or getting the credential of the current user (viaJenkins.getAuthentication(), and so on.- Parameters:
c- The closure to be executed on the server.- Returns:
- The return value from the closure.
- Throws:
Exception- If a closure throws any exception, that exception will be carried forward.
-
search
public org.htmlunit.html.HtmlPage search(String q) throws IOException, SAXException
- Throws:
IOExceptionSAXException
-
getPage
public org.htmlunit.html.HtmlPage getPage(hudson.model.Run r) throws IOException, SAXExceptionShort forgetPage(r,""), to access the top page of a build.- Throws:
IOExceptionSAXException
-
getPage
public org.htmlunit.html.HtmlPage getPage(hudson.model.Run r, String relative) throws IOException, SAXExceptionAccesses a page insideRun.- Parameters:
relative- Relative URL within the build URL, like "changes". Doesn't start with '/'. Can be empty.- Throws:
IOExceptionSAXException
-
getPage
public org.htmlunit.html.HtmlPage getPage(hudson.model.Item item) throws IOException, SAXException- Throws:
IOExceptionSAXException
-
getPage
public org.htmlunit.html.HtmlPage getPage(hudson.model.Item item, String relative) throws IOException, SAXException- Throws:
IOExceptionSAXException
-
getPage
public org.htmlunit.html.HtmlPage getPage(hudson.model.Node item) throws IOException, SAXException- Throws:
IOExceptionSAXException
-
getPage
public org.htmlunit.html.HtmlPage getPage(hudson.model.Node item, String relative) throws IOException, SAXException- Throws:
IOExceptionSAXException
-
getPage
public org.htmlunit.html.HtmlPage getPage(hudson.model.View view) throws IOException, SAXException- Throws:
IOExceptionSAXException
-
getPage
public org.htmlunit.html.HtmlPage getPage(hudson.model.View view, String relative) throws IOException, SAXException- Throws:
IOExceptionSAXException
-
getPage
@Deprecated public org.htmlunit.Page getPage(String url) throws IOException, org.htmlunit.FailingHttpStatusCodeException
Deprecated.This method expects a full URL. This method is marked as deprecated to warn you that you probably should be usinggoTo(String)method, which accepts a relative path within the Hudson being tested. (IOW, if you really need to hit a website on the internet, there's nothing wrong with using this method.)- Overrides:
getPagein classorg.htmlunit.WebClient- Throws:
IOExceptionorg.htmlunit.FailingHttpStatusCodeException
-
goTo
public org.htmlunit.html.HtmlPage goTo(String relative) throws IOException, SAXException
Requests a page within Jenkins.- Parameters:
relative- Relative path within Jenkins. Starts without '/'. For example, "job/test/" to go to a job top page.- Throws:
IOExceptionSAXException
-
goTo
public org.htmlunit.Page goTo(String relative, String expectedContentType) throws IOException, SAXException
- Throws:
IOExceptionSAXException
-
goToXml
public org.htmlunit.xml.XmlPage goToXml(String path) throws IOException, SAXException
Loads a page as XML. Useful for testing Hudson's xml api, in concert with assertXPath(DomNode page, String xpath)- Parameters:
path- the path part of the url to visit- Returns:
- the XmlPage found at that url
- Throws:
IOExceptionSAXException
-
assertFails
public void assertFails(String url, int statusCode) throws Exception
Verify that the server rejects an attempt to load the given page.- Parameters:
url- a URL path (relative to Jenkins root)statusCode- the expected failure code (such asHttpURLConnection.HTTP_FORBIDDEN)- Throws:
Exception- Since:
- 1.502
-
getContextPath
public String getContextPath() throws IOException
Returns the URL of the webapp top page. URL ends with '/'.- Throws:
IOException
-
addCrumb
public org.htmlunit.WebRequest addCrumb(org.htmlunit.WebRequest req)
Adds a security crumb to the request.
-
createCrumbedUrl
public URL createCrumbedUrl(String relativePath) throws IOException
Creates a URL with crumb parameters relative to {getContextPath()- Throws:
IOException
-
eval
public org.htmlunit.html.HtmlPage eval(Runnable requestHandler) throws IOException, SAXException
Makes an HTTP request, process it with the given request handler, and returns the response.- Throws:
IOExceptionSAXException
-
-