/* * Copyright 2014 eXo Platform SAS * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.juzu.tutorial.juzcret.step7; import juzu.test.AbstractWebTestCase; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.drone.api.annotation.Drone; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; import java.util.HashSet; import java.util.List; import java.util.Set; public class JuZcretTestCase extends AbstractWebTestCase { @Deployment(testable = false) public static WebArchive createDeployment() { return createPortletDeployment("org.juzu.tutorial.juzcret.step7"); } @Drone WebDriver driver; @Test public void testRender() throws Exception { driver.get(getPortletURL().toString()); WebElement body = driver.findElement(By.tagName("body")); assertTrue(body.getText().indexOf("JuZcret Portlet") != -1); System.out.println(driver.getPageSource()); } @Test public void testSecret() throws Exception { driver.get(getPortletURL().toString()); WebElement body = driver.findElement(By.tagName("body")); assertFalse(body.getText().contains("test secret text")); // add secret form WebElement shareBtn = driver.findElement(By.cssSelector(".secret-wall-heading a")); driver.get(shareBtn.getAttribute("href")); // input WebElement secretInput = driver.findElement(By.tagName("textarea")); secretInput.sendKeys("test secret text"); // submit WebElement submitBtn = driver.findElement(By.tagName("button")); submitBtn.click(); // wait for redirecting to index page body = new WebDriverWait(driver, 10).until(new ExpectedCondition<WebElement>() { public WebElement apply(WebDriver drv) { return drv.findElement(By.tagName("body")); } }); assertTrue(body.getText().contains("test secret text")); } @Test public void testAsset() throws Exception { driver.get(getPortletURL().toString()); List<WebElement> scripts = driver.findElements(By.tagName("script")); Set<String> srcScripts = new HashSet<String>(); for (WebElement elem : scripts) { srcScripts.add(elem.getAttribute("src")); } assertTrue(srcScripts.contains("http://localhost:8080/juzu/assets/org/juzu/tutorial/juzcret/step7/assets/jquery/1.10.2/jquery.js")); assertTrue(srcScripts.contains("http://localhost:8080/juzu/assets/juzu/impl/plugin/ajax/script.js")); assertTrue(srcScripts.contains("http://localhost:8080/juzu/assets/org/juzu/tutorial/juzcret/step7/assets/javascripts/secret.js")); WebElement style = driver.findElement(By.tagName("link")); assertEquals("http://localhost:8080/juzu/assets/org/juzu/tutorial/juzcret/step7/assets/styles/juzcret.css", style.getAttribute("href")); } @Test public void testLike() throws Exception { driver.get(getPortletURL().toString()); // like WebElement likeBtn = driver.findElement(By.cssSelector(".btn-like")); likeBtn.click(); // wait By selector = By.cssSelector(".btn-like .numb"); ExpectedCondition<Boolean> condition = ExpectedConditions.textToBePresentInElement(selector, "1"); assertTrue(new WebDriverWait(driver, 10).until(condition)); } @Test public void testComment() throws Exception { driver.get(getPortletURL().toString()); WebElement body = driver.findElement(By.tagName("body")); assertFalse(body.getText().contains("test comment")); // input WebElement commentInput = driver.findElement(By.cssSelector(".secret-add-comment")); commentInput.sendKeys("test comment"); // submit WebElement submitBtn = driver.findElement(By.cssSelector(".btn-comment")); submitBtn.click(); // wait ExpectedCondition<Boolean> condition = ExpectedConditions.textToBePresentInElement(By.cssSelector(".secr-comments-list"), "test comment"); assertTrue(new WebDriverWait(driver, 10).until(condition)); } }