package net.jsunit.interceptor; import com.opensymphony.webwork.ServletActionContext; import com.opensymphony.xwork.Action; import net.jsunit.action.BrowserResultAware; import net.jsunit.model.BrowserResult; import net.jsunit.model.BrowserResultWriter; import net.jsunit.utility.StringUtility; import javax.servlet.http.HttpServletRequest; public class BrowserResultInterceptor extends JsUnitInterceptor { protected void execute(Action targetAction) { HttpServletRequest request = ServletActionContext.getRequest(); BrowserResult result = build(request); BrowserResultAware aware = (BrowserResultAware) targetAction; aware.setBrowserResult(result); } public BrowserResult build(HttpServletRequest request) { BrowserResult result = new BrowserResult(); String testId = request.getParameter(BrowserResultWriter.ID); if (!StringUtility.isEmpty(testId)) result.setId(testId); result.setRemoteAddress(request.getRemoteAddr()); result.setUserAgent(request.getParameter(BrowserResultWriter.USER_AGENT)); result.setBaseURL(request.getParameter(BrowserResultWriter.URL)); String time = request.getParameter(BrowserResultWriter.TIME); if (!StringUtility.isEmpty(time)) result.setTime(Double.parseDouble(time)); result.setJsUnitVersion(request.getParameter(BrowserResultWriter.JSUNIT_VERSION)); result.setTestCaseStrings(request.getParameterValues(BrowserResultWriter.TEST_CASES)); return result; } }