package com.github.mavenplugins.doctest;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
@Controller
@RequestMapping("/cross-request")
public class CrossRequestController {
@RequestMapping("/setHeader")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void setHeader(HttpServletResponse response) {
response.addHeader("X-Header", "X-Header-Value");
}
@RequestMapping("/withHeader/{header}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void withHeader(HttpServletRequest request, @PathVariable("header") String headerValue) {
if (!request.getHeader("X-Header").equals("X-Header-Value") || !headerValue.equals("X-Header-Value")) {
throw new BadRequestException();
}
}
@RequestMapping("/setCookie")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void setCookie(HttpServletResponse response) {
response.addCookie(new Cookie("X-Cookie", "X-Cookie-Value"));
}
@RequestMapping("/withCookie/{cookie}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void withCookie(HttpServletRequest request, @PathVariable("cookie") String cookieValue) {
Cookie cookie = null;
for (Cookie tmp : request.getCookies()) {
if (tmp.getName().equals("X-Cookie")) {
cookie = tmp;
break;
}
}
if (cookie == null || !cookie.getValue().equals("X-Cookie-Value") || !cookieValue.equals("X-Cookie-Value")) {
throw new BadRequestException();
}
}
@RequestMapping("/getContent")
public User getContent(HttpServletResponse response) {
User user = new User();
user.setFirstName("X-FirstName");
user.setLastName("X-LastName");
return user;
}
@RequestMapping("/withContent/{firstName}/{lastName}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void withContent(HttpServletRequest request, @PathVariable("firstName") String firstName,
@PathVariable("lastName") String lastName) {
if (!firstName.equals("X-FirstName") || !lastName.equals("X-LastName")) {
throw new BadRequestException();
}
}
}