r1594 - in trunk: . src/main/webapp src/test/java/cc/kune/selenium src/test/java/cc/kune/selenium/login src/test/java/cc/kune/selenium/userspace
Author: vjrj_ Date: 2011-11-08 15:16:07 +0100 (Tue, 08 Nov 2011) New Revision: 1594 Added: trunk/src/test/java/cc/kune/selenium/userspace/ trunk/src/test/java/cc/kune/selenium/userspace/UserSpacePageObject.java Modified: trunk/TODO trunk/src/main/webapp/ws.html trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java trunk/src/test/java/cc/kune/selenium/PageObject.java trunk/src/test/java/cc/kune/selenium/SeleniumModule.java trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java Log: NEW - # 127: Generate some screencast while doing automate testing http://kune.ourproject.org/issues/ticket/127 Modified: trunk/TODO =================================================================== --- trunk/TODO 2011-11-08 04:15:12 UTC (rev 1593) +++ trunk/TODO 2011-11-08 14:16:07 UTC (rev 1594) @@ -19,6 +19,8 @@ http://gxt-multiupload-demo.appspot.com/ http://code.google.com/p/gxt-multi-upload/ http://code.google.com/p/gwtupload/ +** TODO improve session timeouts +http://stackoverflow.com/questions/1406287/jspservlethow-do-i-set-session-ti... ** TODO workaround websocket issues *** compatibilities | jetty M2 | new wesocket | socketio | Modified: trunk/src/main/webapp/ws.html =================================================================== --- trunk/src/main/webapp/ws.html 2011-11-08 04:15:12 UTC (rev 1593) +++ trunk/src/main/webapp/ws.html 2011-11-08 14:16:07 UTC (rev 1594) @@ -280,7 +280,7 @@ </head> <body> <div id="kcursor" - style="visibility: hidden; position: absolute; z-Index: 100001'; height: 0; width: 0"> + style="visibility: hidden; position: absolute; z-Index: 100001; height: 0; width: 0"> <img src="/others/cursor-orange.png"> </div> <script type="text/javascript"> @@ -295,8 +295,8 @@ var diff_x; var diff_y; function kmove(x, y) { - newx = x - 18 + 15; - newy = y - 7 + 15; + newx = x - 18 + 20; + newy = y - 7 + 17; kmoveit(); } Modified: trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java =================================================================== --- trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java 2011-11-08 04:15:12 UTC (rev 1593) +++ trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java 2011-11-08 14:16:07 UTC (rev 1594) @@ -10,11 +10,13 @@ @Override public void afterChangeValueOf(final WebElement element, final WebDriver driver) { + // SeleniumUtils.showCursor(driver); sleep(600); } @Override public void afterClickOn(final WebElement element, final WebDriver driver) { + // SeleniumUtils.showCursor(driver); slow(); } @@ -45,12 +47,14 @@ public void beforeChangeValueOf(final WebElement element, final WebDriver driver) { SeleniumUtils.hightlight(element, driver); sleep(300); + // SeleniumUtils.hideCursor(driver); } @Override public void beforeClickOn(final WebElement element, final WebDriver driver) { SeleniumUtils.hightlight(element, driver); slow(); + // SeleniumUtils.hideCursor(driver); } @Override Modified: trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java =================================================================== --- trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java 2011-11-08 04:15:12 UTC (rev 1593) +++ trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java 2011-11-08 14:16:07 UTC (rev 1594) @@ -46,6 +46,7 @@ import cc.kune.selenium.login.LoginPageObject; import cc.kune.selenium.login.RegisterPageObject; import cc.kune.selenium.tools.SeleniumConstants; +import cc.kune.selenium.userspace.UserSpacePageObject; import com.google.inject.Guice; import com.google.inject.Injector; @@ -55,7 +56,7 @@ public static final Injector INJECTOR = Guice.createInjector(new SeleniumModule()); private static final Log LOG = LogFactory.getLog(KuneSeleniumDefaults.class); - public static boolean mustCloseFinally = false; + public static boolean mustCloseFinally = true; private final String baseUrl; protected final ChatPageObject chat; protected final EntityHeaderPageObject entityHeader; @@ -64,13 +65,13 @@ private final ResourceBundle messages; protected RegisterPageObject register; protected final SpacesPageObject spaces; + protected UserSpacePageObject userSpace; private final WebDriver webdriver; public KuneSeleniumDefaults() { // baseUrl = "http://kune.beta.iepala.es/?locale=en#"; - // baseUrl = - // "http://127.0.0.1:8888/?locale=es&log_level=INFO&gwt.codesvr=127.0.0.1:9997#"; - baseUrl = "http://beta.eurosur.org/#"; + baseUrl = "http://127.0.0.1:8888/?locale=es&log_level=INFO&gwt.codesvr=127.0.0.1:9997#"; + // baseUrl = "http://beta.eurosur.org/#"; injector = INJECTOR; webdriver = injector.getInstance(WebDriver.class); login = injector.getInstance(LoginPageObject.class); @@ -78,6 +79,7 @@ entityHeader = injector.getInstance(EntityHeaderPageObject.class); spaces = injector.getInstance(SpacesPageObject.class); chat = injector.getInstance(ChatPageObject.class); + userSpace = injector.getInstance(UserSpacePageObject.class); messages = injector.getInstance(ResourceBundle.class); final ElementLocatorFactory locator = injector.getInstance(ElementLocatorFactory.class); PageFactory.initElements(locator, login); @@ -85,6 +87,7 @@ PageFactory.initElements(locator, entityHeader); PageFactory.initElements(locator, spaces); PageFactory.initElements(locator, chat); + PageFactory.initElements(locator, userSpace); } @BeforeMethod Modified: trunk/src/test/java/cc/kune/selenium/PageObject.java =================================================================== --- trunk/src/test/java/cc/kune/selenium/PageObject.java 2011-11-08 04:15:12 UTC (rev 1593) +++ trunk/src/test/java/cc/kune/selenium/PageObject.java 2011-11-08 14:16:07 UTC (rev 1594) @@ -198,7 +198,7 @@ public void waitFor(final WebElement element) { final String id = element.getAttribute("id"); - LOG.info("WAIT FOR: " + id); + // LOG.info("WAIT FOR: " + id); waitFor(id, new Runnable() { @Override public void run() { @@ -208,19 +208,19 @@ } protected void waitFor(final WebElement element, final String text) { - LOG.info("WAIT FOR: " + text); + // LOG.info("WAIT FOR: " + text); waitFor(text, new Runnable() { @Override public void run() { final String elText = element.getText(); - LOG.info("Element text: " + elText); + // LOG.info("Element text: " + elText); Assert.assertTrue(elText.contains(text)); } }); } protected void waitForId(final String id) { - LOG.info("WAIT FOR: " + id); + // LOG.info("WAIT FOR: " + id); waitFor(id, new Runnable() { @Override public void run() { @@ -230,12 +230,12 @@ } protected void waitForValue(final WebElement element, final String text) { - LOG.info("WAIT FOR: " + text); + // LOG.info("WAIT FOR: " + text); waitFor(text, new Runnable() { @Override public void run() { final String elValue = element.getText(); - LOG.info("Element value: " + elValue); + // LOG.info("Element value: " + elValue); Assert.assertTrue(elValue.contains(text)); } }); Modified: trunk/src/test/java/cc/kune/selenium/SeleniumModule.java =================================================================== --- trunk/src/test/java/cc/kune/selenium/SeleniumModule.java 2011-11-08 04:15:12 UTC (rev 1593) +++ trunk/src/test/java/cc/kune/selenium/SeleniumModule.java 2011-11-08 14:16:07 UTC (rev 1594) @@ -47,8 +47,8 @@ @Override protected void configure() { - final RemoteWebDriver driver = createChromeDriver(); - // final WebDriver driver = creatFirefoxDriver(); + // final RemoteWebDriver driver = createChromeDriver(); + final WebDriver driver = creatFirefoxDriver(); final EventFiringWebDriver wrap = new EventFiringWebDriver(driver); wrap.register(new CustomWebDriverEventListener()); Modified: trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java =================================================================== --- trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java 2011-11-08 04:15:12 UTC (rev 1593) +++ trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java 2011-11-08 14:16:07 UTC (rev 1594) @@ -13,22 +13,28 @@ public class SeleniumUtils { + private static boolean fastSpeed = true; private static final Log LOG = LogFactory.getLog(SeleniumUtils.class); + public static void fastSpeed(final boolean fastSpeed) { + SeleniumUtils.fastSpeed = fastSpeed; + } + public static void hideCursor(final WebDriver webdriver) { jsExec(webdriver).executeScript("khideCursor();"); } public static void hightlight(final WebElement element, final WebDriver webdriver) { - showCursor(webdriver, element); + SeleniumUtils.showCursor(webdriver, element); sleep(300); - final String script = "window.jQuery('#" + element.getAttribute("id") + "').addClass('k-outline');" - + "setTimeout('window.jQuery(\"#" + element.getAttribute("id") - + "\").removeClass(\"k-outline\")', 1200);"; - // Antes 700 - // LOG.info("High: " + script); - jsExec(webdriver).executeScript(script); - + if (TextUtils.notEmpty(element.getAttribute("id"))) { + final String script = "window.jQuery('#" + element.getAttribute("id") + + "').addClass('k-outline');" + "setTimeout('window.jQuery(\"#" + element.getAttribute("id") + + "\").removeClass(\"k-outline\")', 1200);"; + // Antes 700 + // LOG.info("High: " + script); + jsExec(webdriver).executeScript(script); + } } public static void initCursor(final WebDriver webdriver) { @@ -50,7 +56,7 @@ } public static void showCursor(final WebDriver webdriver, final int x, final int y) { - LOG.info("Mover cursor to x: " + x + ", y: " + y); + // LOG.info("Mover cursor to x: " + x + ", y: " + y); jsExec(webdriver).executeScript("kmove(" + x + "," + y + ");"); } @@ -74,7 +80,7 @@ public static void sleep(final int milliseconds) { try { - Thread.sleep(milliseconds); + Thread.sleep(fastSpeed ? milliseconds / 10 : milliseconds); } catch (final InterruptedException e) { Assert.fail("Exception in sleep method", e); } Modified: trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java =================================================================== --- trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java 2011-11-08 04:15:12 UTC (rev 1593) +++ trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java 2011-11-08 14:16:07 UTC (rev 1594) @@ -42,7 +42,6 @@ private WebElement user; public LoginPageObject() { - // i18n = new I18nHelper(LoginMessages.class); } public void createOne() { Modified: trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java =================================================================== --- trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java 2011-11-08 04:15:12 UTC (rev 1593) +++ trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java 2011-11-08 14:16:07 UTC (rev 1594) @@ -25,6 +25,17 @@ public class LoginSeleniumTests extends KuneSeleniumTest { + @Test(dataProvider = "correctlogin") + public void basicSignIn(final String user, final String passwd) { + login.assertIsDisconnected(); + showTitleSlide("User sign in", "to get full access to this site"); + login.signIn(user, passwd); + login.assertIsConnectedAs(user); + // userSpace.getWavePanel().click(); + login.logout(); + login.assertIsDisconnected(); + } + @Test public void high() { login.high(); @@ -44,16 +55,6 @@ login.assertIsDisconnected(); } - @Test(dataProvider = "correctlogin") - public void basicSignIn(final String user, final String passwd) { - login.assertIsDisconnected(); - showTitleSlide("User sign in", "to get full access to this site"); - login.signIn(user, passwd); - login.assertIsConnectedAs(user); - login.logout(); - login.assertIsDisconnected(); - } - @Test public void signInIncorrectPasswd() { login.assertIsDisconnected(); Modified: trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java =================================================================== --- trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java 2011-11-08 04:15:12 UTC (rev 1593) +++ trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java 2011-11-08 14:16:07 UTC (rev 1594) @@ -23,6 +23,7 @@ import cc.kune.core.client.state.SiteTokens; import cc.kune.selenium.KuneSeleniumTest; +import cc.kune.selenium.SeleniumUtils; import cc.kune.selenium.tools.SeleniumConstants; import com.calclab.emite.core.client.xmpp.stanzas.XmppURI; @@ -32,6 +33,7 @@ @Test(dataProvider = "correctregister") public void basicRegister(final String shortName, final String longName, final String passwd, final String email) { + SeleniumUtils.fastSpeed(false); // 15 chars, the limit, so we don't use shortName final String prefix = getTempString(); showTitleSlide(t("User registration"), t("to get full access to this site tools/contents")); @@ -46,6 +48,13 @@ showTitleSlide(t("User space (your Inbox)"), t("contents in which you participate")); showTooltip(spaces.userBtn()); spaces.userBtn().click(); + showMsg(t("You can see this like an advanced email system")); + userSpace.getFirstWave().click(); + sleep(2000); + userSpace.getNewWave().click(); + showMsg(t("You can compose personal messages")); + showMsg(t("But aslo create contents to publish later")); + sleep(3000); // chat showTitleSlide(t("Chat with your buddies"), t("compatible with gmail and similars"), Added: trunk/src/test/java/cc/kune/selenium/userspace/UserSpacePageObject.java =================================================================== --- trunk/src/test/java/cc/kune/selenium/userspace/UserSpacePageObject.java (rev 0) +++ trunk/src/test/java/cc/kune/selenium/userspace/UserSpacePageObject.java 2011-11-08 14:16:07 UTC (rev 1594) @@ -0,0 +1,51 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.selenium.userspace; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import cc.kune.selenium.PageObject; + +public class UserSpacePageObject extends PageObject { + + @FindBy(xpath = "//div[3]/div/div/span[2]") + private WebElement firstWave; + @FindBy(xpath = "//div[2]/div[2]/div[4]") + private WebElement newWave; + @FindBy(xpath = "") + private WebElement wavePanel; + + public UserSpacePageObject() { + } + + public WebElement getFirstWave() { + return findElement(By.xpath("//div[3]/div[4]/div")); + } + + public WebElement getNewWave() { + return findElement(By.xpath("//div[2]/div[2]/div[4]")); + } + + public WebElement getWavePanel() { + return wavePanel; + } +}
participants (1)
-
Vicente J. Ruiz Jurado