我的联系表单页面的测试用例是确保它始终使用SSL分别位于安全上下文中。基本上,我想知道的是,我有request.secure = true;
以下回复中不包含任何有关此内容的信息,其标题为空:
@Test
public void shouldShowContactForm() {
Response response = GET("/contact");
// How can I ask the response, if the complete URL is in HTTPS?
}
即使我明确地设置了自己的请求,我也看不到正确的方法:
@Test
public void shouldShowContactFormInSSLContext() {
Request request = newRequest();
request.secure = true;
Response response = GET(request, "/contact");
// Is it now possible?
}
这是否是测试此问题的正确方法,或者我只是遗漏了有关请求/响应的重要信息?
答案 0 :(得分:2)
对于这个问题,我认为我过去为我的应用程序所做的是在我的所有控制器上都有一个@before拦截器,看起来像这样。
@Before
static void checkSSL(){
if(Play.mode.equals(Play.Mode.PROD)){
if(!request.secure) {
Router.ActionDefinition cashTicketDefinition = Router.reverse(request.controller + "." + request.actionMethod);
cashTicketDefinition.absolute();
String url = cashTicketDefinition.url.replaceFirst( "http:", "https:");
redirect(url, true);
}
}
}