Author: ymartel Date: 2012-06-15 16:45:42 +0200 (Fri, 15 Jun 2012) New Revision: 3479 Url: http://chorem.org/repositories/revision/pollen/3479 Log: refs #606 : add tests for free text poll creation with bad number of choices Modified: trunk/pollen-ui-struts2/src/test/java/org/chorem/pollen/ui/its/CreateFreeTextPollSIT.java Modified: trunk/pollen-ui-struts2/src/test/java/org/chorem/pollen/ui/its/CreateFreeTextPollSIT.java =================================================================== --- trunk/pollen-ui-struts2/src/test/java/org/chorem/pollen/ui/its/CreateFreeTextPollSIT.java 2012-06-15 07:30:44 UTC (rev 3478) +++ trunk/pollen-ui-struts2/src/test/java/org/chorem/pollen/ui/its/CreateFreeTextPollSIT.java 2012-06-15 14:45:42 UTC (rev 3479) @@ -387,4 +387,94 @@ } + /** + * This test create a free text poll with an invalid email. + * When submit, an error text should be displayed : email should be valid + * + * @throws Exception + */ + @Test + public void createFreeTextPollWithInvalidMaxVotedChoices() throws Exception { + + // Go on create poll page + gotoUrl(fixtures.createPollURL()); + + // Set title + WebElement titleElement = findElement(By.name("poll.title")); + Assert.assertEquals("input", titleElement.getTagName()); + Assert.assertTrue(titleElement.isDisplayed()); + String pollTitle = "My Poll"; + titleElement.sendKeys(pollTitle); + + // Set first choice + WebElement choiceOneElement = findElement(By.name("textChoice_0.name")); + Assert.assertEquals("input", choiceOneElement.getTagName()); + Assert.assertTrue(choiceOneElement.isDisplayed()); + String choiceOne = "Choix numero un"; + choiceOneElement.sendKeys(choiceOne); + + // Go to option panel : click on it + WebElement optionsClick = findElement(By.xpath("//a[@href=\"#toptions\"]")); + optionsClick.click(); + + // Get the maxChoice element : should be disable while limitChoice is not selected + WebElement maxChoiceElement = findElement(By.name("maxChoices")); + Assert.assertEquals("input", maxChoiceElement.getTagName()); + Assert.assertTrue(maxChoiceElement.isDisplayed()); + // Get the checkbox and check it to set number of max choice after + WebElement limitChoiceElement = findElement(By.name("limitChoice")); + Assert.assertEquals("input", limitChoiceElement.getTagName()); + Assert.assertTrue(limitChoiceElement.isEnabled()); + limitChoiceElement.click(); + // Set a negative number of max choice + maxChoiceElement = findElement(By.name("maxChoices")); + Assert.assertTrue(maxChoiceElement.isEnabled()); + maxChoiceElement.clear(); + maxChoiceElement.sendKeys("-1"); + + // Submit form + WebElement submit = findElement(By.name("action:save")); + submit.click(); + + // No choices, should stay on create poll page + Assert.assertTrue(driver.getCurrentUrl().startsWith(fixtures.createPollURL())); + + // Check an error message has been displayed + WebElement dateError = findElement(By.className("errorMessage")); + Assert.assertNotNull(dateError); + + // Go on general tab and check that Title and and choice fields values are not lost + WebElement generalClick = findElement(By.xpath("//a[@href=\"#tgeneral\"]")); + generalClick.click(); + + titleElement = findElement(By.name("poll.title")); + Assert.assertTrue(titleElement.isDisplayed()); + Assert.assertEquals(pollTitle, titleElement.getAttribute("value")); + + choiceOneElement = findElement(By.name("textChoice_0.name")); + Assert.assertTrue(choiceOneElement.isDisplayed()); + Assert.assertEquals(choiceOne, choiceOneElement.getAttribute("value")); + + // Second part: try to set "0" for max choice + + // Go back to option panel : click on it + optionsClick = findElement(By.xpath("//a[@href=\"#toptions\"]")); + optionsClick.click(); + + // Set a negative number of max choice + maxChoiceElement = findElement(By.name("maxChoices")); + Assert.assertEquals("input", maxChoiceElement.getTagName()); + Assert.assertTrue(maxChoiceElement.isEnabled()); + maxChoiceElement.clear(); + maxChoiceElement.sendKeys("0"); + + // Submit form + submit = findElement(By.name("action:save")); + submit.click(); + + // No choices, should stay on create poll page + Assert.assertTrue(driver.getCurrentUrl().startsWith(fixtures.createPollURL())); + + } + }