package chapter2; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class ProductReviewTests { @Test public void testAddNewReview() throws Exception { WebDriver selenium = new FirefoxDriver(); selenium.get("http://awful-valentine.com/"); selenium.findElement(By.cssSelector(".special-item a[href*=\"our-love-is-special\"].more-info")) .click(); assertEquals("http://awful-valentine.com/our-love-is-special/", selenium.getCurrentUrl()); assertEquals("Our love is special!!", selenium.findElement(By.className("category-title")).getText()); selenium.findElement(By.id("author")).sendKeys("Dima"); selenium.findElement(By.id("email")).sendKeys("[email protected]"); selenium.findElement(By.id("url")).sendKeys("http://awful-valentine.com"); selenium.findElement(By.cssSelector("a[title='5']")).click(); selenium.findElement(By.id("comment")).clear(); selenium.findElement(By.id("comment")) .sendKeys("This is a comment for product " + System.getProperty("user.name")); selenium.findElement(By.id("submit")).click(); if (!selenium.getCurrentUrl().contains("#")) { System.out.println("Something went wrong with creation of the test"); System.exit(1); } String[] splitString = selenium.getCurrentUrl().split("#"); String reviewId = splitString[1]; WebElement review = selenium.findElement(By.id(reviewId)); WebElement metaInfo = review.findElement(By.className("comment-author-metainfo")); String name = metaInfo.findElement(By.className("url")).getText(); String comment = review.findElement(By.className("comment-content")).getText();// assertEquals("Dima", name); assertEquals("This is a comment for product " + System.getProperty("user.name"), comment); selenium.quit(); } @Test public void testAddingADuplicateReview() throws Exception { WebDriver selenium = new FirefoxDriver(); selenium.get("http://awful-valentine.com/"); selenium.findElement(By.cssSelector(".special-item a[href*=\"our-love-is-special\"].more-info")) .click(); assertEquals("http://awful-valentine.com/our-love-is-special/", selenium.getCurrentUrl()); assertEquals("Our love is special!!", selenium.findElement(By.className("category-title")).getText()); selenium.findElement(By.id("author")).sendKeys("Dima"); selenium.findElement(By.id("email")).sendKeys("[email protected]"); selenium.findElement(By.id("url")).sendKeys("http://awful-valentine.com"); selenium.findElement(By.cssSelector("a[title='5']")).click(); selenium.findElement(By.id("comment")).clear(); selenium.findElement(By.id("comment")) .sendKeys("This is a comment for product " + System.getProperty("user.name")); selenium.findElement(By.id("submit")).click(); String error = selenium.findElement(By.id("error-page")).getText(); assertEquals("Duplicate comment detected; it looks as though you\u2019ve already said that!", error); selenium.quit(); } }