r1627 - in trunk/src: main/java/cc/kune/core/client/groups/newgroup main/java/cc/kune/core/client/sitebar test/java/cc/kune/selenium test/java/cc/kune/selenium/login test/java/cc/kune/selenium/spaces
Author: vjrj_ Date: 2011-11-24 04:35:38 +0100 (Thu, 24 Nov 2011) New Revision: 1627 Added: trunk/src/test/java/cc/kune/selenium/spaces/NewGroupPageObject.java trunk/src/test/java/cc/kune/selenium/spaces/NewGroupSeleniumTests.java Modified: trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java trunk/src/test/java/cc/kune/selenium/SeleniumConf.java trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java trunk/src/test/java/cc/kune/selenium/spaces/SitePageObject.java Log: NEW - # 127: Generate some screencast while doing automate testing http://kune.ourproject.org/issues/ticket/127 Modified: trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java 2011-11-24 01:57:56 UTC (rev 1626) +++ trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java 2011-11-24 03:35:38 UTC (rev 1627) @@ -139,6 +139,7 @@ publicDescField.setTabIndex(3); publicDescField.setFieldLabel(i18n.t("Public description")); publicDescField.setName(PUBLICDESC_FIELD); + publicDescField.setId(PUBLICDESC_FIELD); publicDescField.setWidth(DefaultForm.BIG_FIELD_WIDTH); publicDescField.setAllowBlank(false); publicDescField.setMinLength(10); @@ -198,6 +199,8 @@ tag.setTabIndex(4); tag.setFieldLabel(i18n.t("Group tags")); tag.setName(TAGS_FIELD); + // FIXME if we us this for several tags, we should use different ids + tag.setId(TAGS_FIELD); tag.setWidth(DefaultForm.BIG_FIELD_WIDTH); tag.setAllowBlank(false); Tooltip.to(tag, i18n.t("type some keyword that define your group")); Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java 2011-11-24 01:57:56 UTC (rev 1626) +++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java 2011-11-24 03:35:38 UTC (rev 1627) @@ -30,7 +30,6 @@ import com.google.inject.Inject; public class SitebarNewGroupLink extends ButtonDescriptor { - public static class SitebarNewGroupAction extends AbstractExtendedAction { private final StateManager stateManager; @@ -40,6 +39,7 @@ super(); this.stateManager = stateManager; putValue(Action.NAME, i18n.t("Create New Group")); + putValue(Action.TOOLTIP, i18n.t("Create a new group for your initiative or organization " + "(NGO, collective, academic group...)")); } @@ -47,15 +47,16 @@ @Override public void actionPerformed(final ActionEvent event) { stateManager.gotoHistoryToken(SiteTokens.NEWGROUP); - // stateManager.gotoHistoryTokenButRedirectToCurrent(SiteTokens.NEWGROUP); } } + public static final String NEW_GROUP_BTN_ID = "k-site-newgroup-btn"; + @Inject public SitebarNewGroupLink(final SitebarNewGroupAction action, final SitebarActions sitebarActions) { super(action); - setStyles("k-no-backimage, k-btn-sitebar, k-fl, k-noborder, k-nobackcolor"); - setParent(sitebarActions.getRightToolbar()); + withId(NEW_GROUP_BTN_ID).withStyles("k-no-backimage, k-btn-sitebar, k-fl, k-noborder, k-nobackcolor"); + withParent(sitebarActions.getRightToolbar()); } } Modified: trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java =================================================================== --- trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java 2011-11-24 01:57:56 UTC (rev 1626) +++ trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java 2011-11-24 03:35:38 UTC (rev 1627) @@ -42,12 +42,14 @@ import cc.kune.core.client.state.TokenUtils; import cc.kune.core.client.sub.SubtitlesWidget; import cc.kune.core.shared.domain.utils.StateToken; +import cc.kune.core.shared.dto.GroupType; import cc.kune.selenium.chat.ChatPageObject; import cc.kune.selenium.general.EntityHeaderPageObject; import cc.kune.selenium.login.LoginPageObject; import cc.kune.selenium.login.RegisterPageObject; import cc.kune.selenium.spaces.GroupSpacePageObject; import cc.kune.selenium.spaces.HomeSpacePageObject; +import cc.kune.selenium.spaces.NewGroupPageObject; import cc.kune.selenium.spaces.SitePageObject; import cc.kune.selenium.spaces.UserSpacePageObject; @@ -63,11 +65,12 @@ private final String baseUrl; protected final ChatPageObject chat; protected final EntityHeaderPageObject entityHeader; - protected final GroupSpacePageObject groupSpace; + protected GroupSpacePageObject groupSpace; protected final HomeSpacePageObject homeSpace; private final Injector injector; protected LoginPageObject login; private final ResourceBundle messages; + protected NewGroupPageObject newGroup; protected RegisterPageObject register; protected final SitePageObject site; protected UserSpacePageObject userSpace; @@ -76,7 +79,9 @@ public KuneSeleniumDefaults() { baseUrl = "http://" + SeleniumConf.SITE.getDomain() + "/" + SeleniumConf.SITE.getParams() + "#"; injector = INJECTOR; + final ElementLocatorFactory locator = injector.getInstance(ElementLocatorFactory.class); webdriver = injector.getInstance(WebDriver.class); + login = injector.getInstance(LoginPageObject.class); register = injector.getInstance(RegisterPageObject.class); entityHeader = injector.getInstance(EntityHeaderPageObject.class); @@ -85,8 +90,8 @@ homeSpace = injector.getInstance(HomeSpacePageObject.class); userSpace = injector.getInstance(UserSpacePageObject.class); groupSpace = injector.getInstance(GroupSpacePageObject.class); - messages = injector.getInstance(ResourceBundle.class); - final ElementLocatorFactory locator = injector.getInstance(ElementLocatorFactory.class); + newGroup = injector.getInstance(NewGroupPageObject.class); + PageFactory.initElements(locator, login); PageFactory.initElements(locator, register); PageFactory.initElements(locator, entityHeader); @@ -95,6 +100,9 @@ PageFactory.initElements(locator, homeSpace); PageFactory.initElements(locator, userSpace); PageFactory.initElements(locator, groupSpace); + PageFactory.initElements(locator, newGroup); + + messages = injector.getInstance(ResourceBundle.class); } public void answerOnNextPrompt(final String answer) { @@ -182,6 +190,13 @@ webdriver.get(baseUrl); } + @DataProvider(name = "newGroups") + public Object[][] newGroups() { + return new Object[][] { { "grp0", "Ecologist Group", GroupType.PROJECT }, + { "grp1", "Chomsky Fan Club", GroupType.ORGANIZATION }, { "grp2", "吗台湾", GroupType.CLOSED }, + { "grp3", "روبا", GroupType.COMMUNITY } }; + } + public void open(final String url) { webdriver.get(url); } Modified: trunk/src/test/java/cc/kune/selenium/SeleniumConf.java =================================================================== --- trunk/src/test/java/cc/kune/selenium/SeleniumConf.java 2011-11-24 01:57:56 UTC (rev 1626) +++ trunk/src/test/java/cc/kune/selenium/SeleniumConf.java 2011-11-24 03:35:38 UTC (rev 1627) @@ -30,8 +30,8 @@ } public enum Site { - demo("kune.beta.iepala.es"), eurosur("beta.eurosur.org"), kunecc("kune.cc"), localhost("localhost", - "&log_level=INFO&gwt.codesvr=127.0.0.1:9997"); + demo("kune.beta.iepala.es"), eurosur("beta.eurosur.org"), kunecc("kune.cc"), localhost( + "localhost:8888", "&log_level=INFO&gwt.codesvr=127.0.0.1:9997"); private String domain; private String params; @@ -57,7 +57,7 @@ public static final Driver DRIVER = Driver.firefox; /* Configure this for use other lang, site, or driver */ public static final Lang LANG = Lang.es; - public static final Site SITE = Site.eurosur; + public static final Site SITE = Site.localhost; public static final int TIMEOUT = 25; SeleniumConf() { Modified: trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java =================================================================== --- trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java 2011-11-24 01:57:56 UTC (rev 1626) +++ trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java 2011-11-24 03:35:38 UTC (rev 1627) @@ -53,7 +53,7 @@ // home space showTitleSlide(t("Home space (your welcome page)"), t("Here you can see a summary of your activity in this site")); - site.homeBtn().click(); + site.homeSpaceBtn.click(); sleep(2000); homeSpace.getSndStats().click(); sleep(2000); @@ -62,8 +62,8 @@ // user space showTitleSlide(t("User space (your Inbox)"), t("contents in which you participate")); - showTooltip(site.userBtn()); - site.userBtn().click(); + showTooltip(site.userSpaceBtn); + site.userSpaceBtn.click(); showMsg(t("You can see this like an advanced email system...")); userSpace.getFirstWave().click(); sleep(2000); @@ -88,8 +88,8 @@ // group space showTitleSlide(t("Your personal public space"), t("here you can have your blog, etc")); sleep(500); - site.groupBtn().click(); - site.groupBtn().click(); + site.groupSpaceBtn.click(); + site.groupSpaceBtn.click(); showMsg(t("Let's start adding some buddie to our social network")); sleep(1000); groupSpace.addBuddieBtn().click(); @@ -124,7 +124,7 @@ chat.getSend(jids).click(); showMsg(t("And you can chat event while going back/forward with your browser")); - site.homeBtn().click(); + site.homeSpaceBtn.click(); sleep(2000); chat.getTalkBox(jids).sendKeys(t("la la la")); chat.getSend(jids).click(); Added: trunk/src/test/java/cc/kune/selenium/spaces/NewGroupPageObject.java =================================================================== --- trunk/src/test/java/cc/kune/selenium/spaces/NewGroupPageObject.java (rev 0) +++ trunk/src/test/java/cc/kune/selenium/spaces/NewGroupPageObject.java 2011-11-24 03:35:38 UTC (rev 1627) @@ -0,0 +1,50 @@ +/* + * + * 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.spaces; + +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import cc.kune.core.client.groups.newgroup.NewGroupPanel; +import cc.kune.selenium.PageObject; +import cc.kune.selenium.SeleniumConstants; + +public class NewGroupPageObject extends PageObject { + + @FindBy(id = NewGroupPanel.CLOSED_GROUP_TYPE_ID) + public WebElement closedType; + @FindBy(id = NewGroupPanel.COMM_GROUP_TYPE_ID) + public WebElement communityType; + @FindBy(id = NewGroupPanel.LONGNAME_FIELD + SeleniumConstants.INPUT) + public WebElement longName; + @FindBy(id = NewGroupPanel.ORG_GROUP_TYPE_ID) + public WebElement orgType; + @FindBy(id = NewGroupPanel.PROJ_GROUP_TYPE_ID) + public WebElement projectType; + @FindBy(id = NewGroupPanel.PUBLICDESC_FIELD + SeleniumConstants.INPUT) + public WebElement publicDescription; + @FindBy(id = SeleniumConstants.GWTDEV + NewGroupPanel.REGISTER_BUTTON) + public WebElement registerBtn; + @FindBy(id = NewGroupPanel.SHORTNAME_FIELD + SeleniumConstants.INPUT) + public WebElement shortName; + @FindBy(id = NewGroupPanel.TAGS_FIELD + SeleniumConstants.INPUT) + public WebElement tags; + +} Added: trunk/src/test/java/cc/kune/selenium/spaces/NewGroupSeleniumTests.java =================================================================== --- trunk/src/test/java/cc/kune/selenium/spaces/NewGroupSeleniumTests.java (rev 0) +++ trunk/src/test/java/cc/kune/selenium/spaces/NewGroupSeleniumTests.java 2011-11-24 03:35:38 UTC (rev 1627) @@ -0,0 +1,72 @@ +/* + * + * 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.spaces; + +import org.testng.annotations.Test; + +import cc.kune.common.client.errors.UIException; +import cc.kune.core.shared.dto.GroupType; +import cc.kune.selenium.KuneSeleniumTest; +import cc.kune.selenium.SeleniumConstants; +import cc.kune.selenium.SeleniumUtils; + +public class NewGroupSeleniumTests extends KuneSeleniumTest { + + @Test(dataProvider = "newGroups") + public void basicSignIn(final String shortname, final String longname, final GroupType groupType) { + SeleniumUtils.fastSpeed(true); + login.assertIsDisconnected(); + + login.signIn(SeleniumConstants.USER_SHORNAME, SeleniumConstants.USER_PASSWD); + login.assertIsConnectedAs(SeleniumConstants.USER_SHORNAME); + site.groupSpaceBtn.click(); + site.newGroupBtn.click(); + + final String prefix = getTempString(); + + newGroup.shortName.sendKeys(shortname + prefix); + final String longNameTranslated = t(longname) + " " + prefix; + newGroup.longName.sendKeys(longNameTranslated); + newGroup.publicDescription.sendKeys(t("This is only a test group")); + newGroup.tags.sendKeys("tag1 tag2"); + switch (groupType) { + case PROJECT: + newGroup.projectType.click(); + break; + case ORGANIZATION: + newGroup.orgType.click(); + break; + case CLOSED: + newGroup.closedType.click(); + break; + case COMMUNITY: + newGroup.closedType.click(); + break; + default: + throw new UIException("New group types?"); + } + newGroup.registerBtn.click(); + + entityHeader.waitForEntityTitle(longNameTranslated); + + login.assertIsDisconnected(); + } + +} Modified: trunk/src/test/java/cc/kune/selenium/spaces/SitePageObject.java =================================================================== --- trunk/src/test/java/cc/kune/selenium/spaces/SitePageObject.java 2011-11-24 01:57:56 UTC (rev 1626) +++ trunk/src/test/java/cc/kune/selenium/spaces/SitePageObject.java 2011-11-24 03:35:38 UTC (rev 1627) @@ -23,6 +23,7 @@ import org.openqa.selenium.support.FindBy; import cc.kune.core.client.notify.confirm.UserConfirmPanel; +import cc.kune.core.client.sitebar.SitebarNewGroupLink; import cc.kune.core.client.sitebar.search.SitebarSearchPanel; import cc.kune.core.client.sitebar.spaces.SpaceSelectorPresenter.SpaceSelectorView; import cc.kune.selenium.PageObject; @@ -35,41 +36,15 @@ @FindBy(id = SeleniumConstants.GWTDEV + UserConfirmPanel.OK_ID) public WebElement confirmationOk; @FindBy(id = SeleniumConstants.GWTDEV + SpaceSelectorView.GROUP_SPACE_ID) - protected WebElement groupSpaceBtn; + public WebElement groupSpaceBtn; @FindBy(id = SeleniumConstants.GWTDEV + SpaceSelectorView.HOME_SPACE_ID) - protected WebElement homeSpaceBtn; + public WebElement homeSpaceBtn; + @FindBy(id = SeleniumConstants.GWTDEV + SitebarNewGroupLink.NEW_GROUP_BTN_ID) + public WebElement newGroupBtn; @FindBy(id = SeleniumConstants.GWTDEV + SpaceSelectorView.PUBLIC_SPACE_ID) - protected WebElement publicSpaceBtn; + public WebElement publicSpaceBtn; @FindBy(id = SeleniumConstants.GWTDEV + SitebarSearchPanel.SITE_SEARCH_TEXTBOX) public WebElement searchTextBox; @FindBy(id = SeleniumConstants.GWTDEV + SpaceSelectorView.USER_SPACE_ID) - protected WebElement userSpaceBtn; - - public SitePageObject() { - } - - public WebElement getConfirmationCancel() { - return confirmationCancel; - } - - public WebElement getConfirmationOk() { - return confirmationOk; - } - - public WebElement groupBtn() { - return groupSpaceBtn; - } - - public WebElement homeBtn() { - return homeSpaceBtn; - } - - public WebElement publicBtn() { - return publicSpaceBtn; - } - - public WebElement userBtn() { - return userSpaceBtn; - } - + public WebElement userSpaceBtn; }
participants (1)
-
Vicente J. Ruiz Jurado