public void testRedirectPreservesPOSTParameters() throws InterruptedException
{
String test = "Test string " + System.currentTimeMillis();
final String space = "Main";
final String page = "POSTTest";
LoginPage loginPage = this.vp.login();
loginPage.loginAsAdmin();
// start editing a page
WikiEditPage editPage = new WikiEditPage();
editPage.switchToEdit(space, page);
editPage.setTitle(test);
editPage.setContent(test);
// emulate expired session: delete the cookies
getDriver().manage().deleteAllCookies();
// try to save
editPage.clickSaveAndView();
// we should have been redirected to login
String wantUrl = getUtil().getURL("XWiki", "XWikiLogin", "login");
if (wantUrl.indexOf('?') > 0) {
// strip parameters
wantUrl = wantUrl.substring(0, wantUrl.indexOf('?'));
}
Assert.assertTrue(getDriver().getCurrentUrl().startsWith(wantUrl));
loginPage.loginAsAdmin();
// we should have been redirected back to view, and the page should have been saved
Assert.assertTrue(getDriver().getCurrentUrl().startsWith(getUtil().getURL(space, page)));
editPage.switchToEdit(space, page);
Assert.assertEquals(test, editPage.getTitle());
Assert.assertEquals(test, editPage.getContent());