[kune-commits] r1687 - in trunk: img/screenshots script src/main/java/cc/kune/barters/client src/main/java/cc/kune/blogs/client src/main/java/cc/kune/chat/client src/main/java/cc/kune/chat/client/actions src/main/java/cc/kune/common/client/ui/dialogs src/main/java/cc/kune/core/client/ui/dialogs/tabbed src/main/java/cc/kune/docs/client src/main/java/cc/kune/events/client src/main/java/cc/kune/gspace/client/actions src/main/java/cc/kune/gspace/client/options src/main/java/cc/kune/gspace/client/options/general src/main/java/cc/kune/gspace/client/options/license src/main/java/cc/kune/gspace/client/options/logo src/main/java/cc/kune/gspace/client/options/style src/main/java/cc/kune/gspace/client/options/tools src/main/java/cc/kune/gspace/client/viewers src/main/java/cc/kune/gspace/client/viewers/items src/main/java/cc/kune/lists/client src/main/java/cc/kune/lists/client/actions src/main/java/cc/kune/tasks/client src/main/java/cc/kune/wiki/client src/main/resources src/test/java/cc/kune/selenium src/test/java/cc/kune/selenium/chat src/test/java/cc/kune/selenium/login src/test/java/cc/kune/selenium/spaces

Vicente J. Ruiz Jurado vjrj_ at ourproject.org
Tue Feb 14 00:24:18 CET 2012


Author: vjrj_
Date: 2012-02-14 00:24:16 +0100 (Tue, 14 Feb 2012)
New Revision: 1687

Added:
   trunk/img/screenshots/kune-calendar.png
   trunk/img/screenshots/kune-chat.png
   trunk/img/screenshots/kune-groupOptions.png
   trunk/img/screenshots/kune-newlist.png
   trunk/img/screenshots/kune-socialNetOptions.png
   trunk/img/screenshots/kune-tasks.png
Modified:
   trunk/img/screenshots/kune-home-stats.png
   trunk/img/screenshots/kune-inbox.png
   trunk/img/screenshots/kune-newgroup.png
   trunk/img/screenshots/kune-register.png
   trunk/img/screenshots/kune-social-net.png
   trunk/script/recordScreenCast.sh
   trunk/src/main/java/cc/kune/barters/client/BartersClientTool.java
   trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java
   trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java
   trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomBtn.java
   trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java
   trunk/src/main/java/cc/kune/core/client/ui/dialogs/tabbed/AbstractTabbedDialogPanel.java
   trunk/src/main/java/cc/kune/core/client/ui/dialogs/tabbed/TabTitleGenerator.java
   trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java
   trunk/src/main/java/cc/kune/events/client/EventsClientTool.java
   trunk/src/main/java/cc/kune/gspace/client/actions/ContentViewerOptionsMenu.java
   trunk/src/main/java/cc/kune/gspace/client/actions/GiveUsFeedbackBtn.java
   trunk/src/main/java/cc/kune/gspace/client/actions/GoParentContainerBtn.java
   trunk/src/main/java/cc/kune/gspace/client/actions/NewContainerBtn.java
   trunk/src/main/java/cc/kune/gspace/client/actions/NewContentBtn.java
   trunk/src/main/java/cc/kune/gspace/client/actions/NewMenuProvider.java
   trunk/src/main/java/cc/kune/gspace/client/options/GroupOptionsPanel.java
   trunk/src/main/java/cc/kune/gspace/client/options/UserOptionsPanel.java
   trunk/src/main/java/cc/kune/gspace/client/options/general/EntityOptGeneralPanel.java
   trunk/src/main/java/cc/kune/gspace/client/options/license/EntityOptDefLicensePanel.java
   trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPanel.java
   trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePanel.java
   trunk/src/main/java/cc/kune/gspace/client/options/tools/EntityOptToolsPanel.java
   trunk/src/main/java/cc/kune/gspace/client/viewers/ContentTitleWidget.java
   trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsTablePanel.java
   trunk/src/main/java/cc/kune/gspace/client/viewers/items/FolderItemWidget.java
   trunk/src/main/java/cc/kune/lists/client/ListsClientTool.java
   trunk/src/main/java/cc/kune/lists/client/actions/NewListAction.java
   trunk/src/main/java/cc/kune/lists/client/actions/NewListBtn.java
   trunk/src/main/java/cc/kune/lists/client/actions/NewListPostAction.java
   trunk/src/main/java/cc/kune/lists/client/actions/NewListPostIconBtn.java
   trunk/src/main/java/cc/kune/lists/client/actions/SubscribeToListBtn.java
   trunk/src/main/java/cc/kune/tasks/client/TasksClientTool.java
   trunk/src/main/java/cc/kune/wiki/client/WikiClientTool.java
   trunk/src/main/resources/TestConstants_en.properties
   trunk/src/main/resources/TestConstants_es.properties
   trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java
   trunk/src/test/java/cc/kune/selenium/KuneSeleniumTest.java
   trunk/src/test/java/cc/kune/selenium/SeleniumConf.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/chat/ChatPageObject.java
   trunk/src/test/java/cc/kune/selenium/login/ScreenCastsViaSeleniumTests.java
   trunk/src/test/java/cc/kune/selenium/spaces/GroupSpacePageObject.java
   trunk/src/test/java/cc/kune/selenium/spaces/NewGroupPageObject.java
   trunk/src/test/java/cc/kune/selenium/spaces/NewGroupSeleniumTests.java
Log:
NEW - # 127: Generate some screencast while doing automate testing 
http://kune.ourproject.org/issues/ticket/127

Added: trunk/img/screenshots/kune-calendar.png
===================================================================
(Binary files differ)


Property changes on: trunk/img/screenshots/kune-calendar.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/img/screenshots/kune-chat.png
===================================================================
(Binary files differ)


Property changes on: trunk/img/screenshots/kune-chat.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/img/screenshots/kune-groupOptions.png
===================================================================
(Binary files differ)


Property changes on: trunk/img/screenshots/kune-groupOptions.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/img/screenshots/kune-home-stats.png
===================================================================
(Binary files differ)

Modified: trunk/img/screenshots/kune-inbox.png
===================================================================
(Binary files differ)

Modified: trunk/img/screenshots/kune-newgroup.png
===================================================================
(Binary files differ)

Added: trunk/img/screenshots/kune-newlist.png
===================================================================
(Binary files differ)


Property changes on: trunk/img/screenshots/kune-newlist.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/img/screenshots/kune-register.png
===================================================================
(Binary files differ)

Modified: trunk/img/screenshots/kune-social-net.png
===================================================================
(Binary files differ)

Added: trunk/img/screenshots/kune-socialNetOptions.png
===================================================================
(Binary files differ)


Property changes on: trunk/img/screenshots/kune-socialNetOptions.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/img/screenshots/kune-tasks.png
===================================================================
(Binary files differ)


Property changes on: trunk/img/screenshots/kune-tasks.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/script/recordScreenCast.sh
===================================================================
--- trunk/script/recordScreenCast.sh	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/script/recordScreenCast.sh	2012-02-13 23:24:16 UTC (rev 1687)
@@ -16,5 +16,5 @@
 
 if [[ $? -eq 0 ]]
 then
-  recordmydesktop -x 0 -y 83 --width $RWIDTH --height $RHEIGHT --fps 25 --no-sound -o doc/screencasts/kune-screencast.ogv
+  recordmydesktop -x 0 -y 83 --width $RWIDTH --height $RHEIGHT --fps 25 --no-sound -o docs/screencasts/kune-screencast.ogv
 fi

Modified: trunk/src/main/java/cc/kune/barters/client/BartersClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/barters/client/BartersClientTool.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/barters/client/BartersClientTool.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -35,6 +35,7 @@
 public class BartersClientTool extends FoldableAbstractClientTool {
 
   private static final String THERE_ISN_T_ANY_BARTER = "There isn't any barter. ";
+  private final IconicResources icons;
 
   @Inject
   public BartersClientTool(final I18nTranslationService i18n, final ToolSelector toolSelector,
@@ -45,6 +46,7 @@
         i18n.t("barters"),
         i18n.t("A decentralized way to offer (or ask for) services and goods to your groups or to anyone. Bartering means the exchange of goods by the agreement of two people"),
         icons.barters(), toolSelector, cntCapRegistry, i18n, navResources);
+    this.icons = icons;
 
     // registerAclEditableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
     registerAuthorableTypes(TYPE_BARTER);
@@ -65,7 +67,7 @@
 
   private void registerIcons() {
     registerContentTypeIcon(TYPE_FOLDER, navResources.folder());
-    registerContentTypeIcon(TYPE_ROOT, navResources.folder());
+    registerContentTypeIcon(TYPE_ROOT, icons.barters());
     registerContentTypeIcon(TYPE_BARTER, navResources.barter());
     registerEmptyMessages(TYPE_FOLDER, i18n.t(THERE_ISN_T_ANY_BARTER + "You can create some here"));
     registerEmptyMessages(TYPE_ROOT, i18n.t(THERE_ISN_T_ANY_BARTER));

Modified: trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -36,6 +36,8 @@
 
 public class BlogsClientTool extends FoldableAbstractClientTool {
 
+  private final IconicResources icons;
+
   @Inject
   public BlogsClientTool(final I18nTranslationService i18n, final ToolSelector toolSelector,
       final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources,
@@ -45,6 +47,7 @@
         i18n.t(BlogsConstants.ROOT_NAME),
         i18n.t("Blogs are a chronological list of posts (ordered by date) about a specific topic. Each post can be commented by the visitors"),
         icons.blogs(), toolSelector, cntCapRegistry, i18n, navResources);
+    this.icons = icons;
 
     // registerAclEditableTypes();
     registerAuthorableTypes(TYPE_POST, TYPE_UPLOADEDFILE);
@@ -64,7 +67,7 @@
   }
 
   private void registerIcons() {
-    registerContentTypeIcon(TYPE_ROOT, navResources.blog());
+    registerContentTypeIcon(TYPE_ROOT, icons.blogs());
     registerContentTypeIcon(TYPE_BLOG, navResources.blog());
     registerContentTypeIcon(TYPE_POST, navResources.post());
     registerUploadTypesAndMimes(TYPE_UPLOADEDFILE);

Modified: trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -21,6 +21,7 @@
 
 import static cc.kune.chat.shared.ChatConstants.NAME;
 import static cc.kune.chat.shared.ChatConstants.TYPE_ROOM;
+import static cc.kune.chat.shared.ChatConstants.TYPE_ROOT;
 import cc.kune.chat.client.resources.ChatResources;
 import cc.kune.common.shared.utils.TextUtils;
 import cc.kune.core.client.i18n.I18nUITranslationService;
@@ -34,6 +35,7 @@
 
 public class ChatClientTool extends FoldableAbstractClientTool {
 
+  private final IconicResources icons;
   private final ChatResources res;
 
   @Inject
@@ -48,6 +50,7 @@
             "A 'room' where you can have a group-chat with many users at once. Rooms can be public or private. Users can be from [%s] or other sites (compatible with gmail chat)",
             i18n.getSiteCommonName()), icons.chats(), toolSelector, cntCapRegistry, i18n, navResources);
     this.res = res;
+    this.icons = icons;
     registerIcons();
   }
 
@@ -57,6 +60,7 @@
   }
 
   private void registerIcons() {
+    registerContentTypeIcon(TYPE_ROOT, icons.chats());
     registerContentTypeIcon(TYPE_ROOM, res.groupChat());
     final String emptyMsg = i18n.tWithNT("See the archive of old conversations"
         + TextUtils.IN_DEVELOPMENT_P, "with Brackets");

Modified: trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomBtn.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomBtn.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -27,10 +27,13 @@
 
 public class OpenRoomBtn extends ButtonDescriptor {
 
+  public static final String ID = "k-open-room";
+
   @Inject
   public OpenRoomBtn(final I18nTranslationService i18n, final OpenChatAction action,
       final NavResources res) {
     super(action);
-    this.withText(i18n.t("Enter to this room")).withIcon(res.room()).withStyles("k-def-docbtn, k-fl");
+    withText(i18n.t("Enter to this room")).withIcon(res.room()).withStyles("k-def-docbtn, k-fl");
+    withId(ID);
   }
 }
\ No newline at end of file

Modified: trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -134,6 +134,8 @@
 
   }
 
+  public static final String CLOSE_ID = "-close";
+
   private HandlerRegistration closeClickHandler;
   private String height;
   private final PopupTopPanel popup;
@@ -143,6 +145,7 @@
     popup = new PopupTopPanel(builder.autohide, builder.modal);
     popup.add(this);
     popup.ensureDebugId(builder.dialogId);
+    closeBtn.ensureDebugId(builder.dialogId + CLOSE_ID);
     super.getTitleText().setText(builder.title, builder.direction);
     if (TextUtils.notEmpty(builder.icon)) {
       super.setTitleIcon(builder.icon);

Modified: trunk/src/main/java/cc/kune/core/client/ui/dialogs/tabbed/AbstractTabbedDialogPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/ui/dialogs/tabbed/AbstractTabbedDialogPanel.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/core/client/ui/dialogs/tabbed/AbstractTabbedDialogPanel.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -134,8 +134,8 @@
 
   private void createDialog() {
     final Builder builder = new BasicTopDialog.Builder(dialogId, autohide, modal, direction).autoscroll(
-        true).icon(iconCls).firstButtonId(firstBtnId).firstButtonTitle(firstBtnTitle).sndButtonId(
-        dialogId).sndButtonTitle(sndBtnTitle).sndButtonId(sndBtnId).title(title);
+        true).icon(iconCls).firstButtonId(firstBtnId).firstButtonTitle(firstBtnTitle).sndButtonTitle(
+        sndBtnTitle).sndButtonId(sndBtnId).title(title);
     if (width != NO_SIZE) {
       builder.width(String.valueOf(width + 20) + "px");
     }

Modified: trunk/src/main/java/cc/kune/core/client/ui/dialogs/tabbed/TabTitleGenerator.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/ui/dialogs/tabbed/TabTitleGenerator.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/core/client/ui/dialogs/tabbed/TabTitleGenerator.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -32,14 +32,17 @@
     return TextUtils.ellipsis(title, maxLength);
   }
 
-  public static IconLabel generate(final ImageResource res, final String title) {
-    final IconLabel tabTitle = new IconLabel(res, title);
+  public static IconLabel generate(final ImageResource res, final String title, final int maxLength,
+      final String id) {
+    final IconLabel tabTitle = new IconLabel(res, format(title, maxLength));
+    setTooltip(title, maxLength, tabTitle);
+    tabTitle.ensureDebugId(id);
     return tabTitle;
   }
 
-  public static IconLabel generate(final ImageResource res, final String title, final int maxLength) {
-    final IconLabel tabTitle = new IconLabel(res, format(title, maxLength));
-    setTooltip(title, maxLength, tabTitle);
+  public static IconLabel generate(final ImageResource res, final String title, final String id) {
+    final IconLabel tabTitle = new IconLabel(res, title);
+    tabTitle.ensureDebugId(id);
     return tabTitle;
   }
 

Modified: trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -37,6 +37,7 @@
 public class DocsClientTool extends FoldableAbstractClientTool {
 
   private static final String EMPTY_CREATE_SOME = "This folder is empty. You can create some document or folder here.";
+  private final IconicResources icons;
 
   @Inject
   public DocsClientTool(final I18nTranslationService i18n, final ToolSelector toolSelector,
@@ -47,6 +48,7 @@
         i18n.t(DocsConstants.ROOT_NAME),
         i18n.t("Here you can create or upload your personal, group or public documents. These documents can be edited and commented collaboratively and simultaneously. These docs can be static pages in your web page if you publish them"),
         icons.docs(), toolSelector, cntCapRegistry, i18n, navResources);
+    this.icons = icons;
 
     // registerAclEditableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
     registerAuthorableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
@@ -67,7 +69,7 @@
 
   private void registerIcons() {
     registerContentTypeIcon(TYPE_FOLDER, navResources.folder());
-    registerContentTypeIcon(TYPE_ROOT, navResources.folder());
+    registerContentTypeIcon(TYPE_ROOT, icons.docs());
     registerContentTypeIcon(TYPE_DOCUMENT, navResources.page());
     registerUploadTypesAndMimes(TYPE_UPLOADEDFILE);
     registerEmptyMessagesNotLogged(TYPE_FOLDER, i18n.t(EMPTY));

Modified: trunk/src/main/java/cc/kune/events/client/EventsClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/EventsClientTool.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/events/client/EventsClientTool.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -34,12 +34,15 @@
 
 public class EventsClientTool extends FoldableAbstractClientTool {
 
+  private final IconicResources icons;
+
   @Inject
   public EventsClientTool(final I18nTranslationService i18n, final ToolSelector toolSelector,
       final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources,
       final IconicResources icons) {
     super(NAME, i18n.t(ROOT_NAME), i18n.t("A calendar to schedule activities and events"),
         icons.events(), toolSelector, cntCapRegistry, i18n, navResources);
+    this.icons = icons;
 
     // registerAclEditableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
     registerAuthorableTypes(TYPE_MEETING);
@@ -60,7 +63,7 @@
   }
 
   private void registerIcons() {
-    registerContentTypeIcon(TYPE_ROOT, navResources.folder());
+    registerContentTypeIcon(TYPE_ROOT, icons.events());
     registerContentTypeIcon(TYPE_MEETING, navResources.calendar());
     registerEmptyMessages(TYPE_ROOT, i18n.t("There isn't any meeting, create one"));
     registerEmptyMessagesNotLogged(TYPE_ROOT, i18n.t("There isn't any meeting"));

Modified: trunk/src/main/java/cc/kune/gspace/client/actions/ContentViewerOptionsMenu.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/ContentViewerOptionsMenu.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/ContentViewerOptionsMenu.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -26,11 +26,14 @@
 
 public class ContentViewerOptionsMenu extends MenuDescriptor {
 
+  private static final String ID = "k-cnt-viewer-opt-menu";
+
   @Inject
   public ContentViewerOptionsMenu(final CoreResources res) {
     super();
     this.withIcon(res.arrowdownsitebar()).withStyles(
-        "k-def-docbtn, k-fr, k-noborder, k-no-backimage, k-nobackcolor");
+        "k-def-docbtn, k-fr, k-noborder, k-no-backimage, k-nobackcolor").withId(ID);
+
   }
 
 }

Modified: trunk/src/main/java/cc/kune/gspace/client/actions/GiveUsFeedbackBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/GiveUsFeedbackBtn.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/GiveUsFeedbackBtn.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -28,6 +28,8 @@
 
 public class GiveUsFeedbackBtn extends ButtonDescriptor {
 
+  public static final String ID = "k-give-feedback-btn";
+
   @Inject
   public GiveUsFeedbackBtn(final GiveUsFeedbackAction action, final I18nUITranslationService i18n,
       final NavResources res, final GSpaceArmor armor) {
@@ -37,6 +39,7 @@
     withToolTip(i18n.t("Write us with some feedback for help us to improve the services on [%s]",
         i18n.getSiteCommonName()));
     withStyles("k-noborder, k-nobackcolor, k-no-backimage, k-fl");
+    withId(ID);
     armor.getEntityFooterToolbar().add(this);
   }
 

Modified: trunk/src/main/java/cc/kune/gspace/client/actions/GoParentContainerBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/GoParentContainerBtn.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/GoParentContainerBtn.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -65,11 +65,14 @@
 
   }
 
+  public static final String GO_PARENT_ID = "k-goparent-btn-id";
+
   public GoParentContainerBtn(final I18nTranslationService i18n, final GoParentContainerAction action,
       final CoreResources res, final Session session, final String typeRoot) {
     super(action);
     this.withToolTip(i18n.t("Go up: Open the container folder")).withIcon(res.folderGoUp()).withStyles(
         "k-btn-min, k-fr");
+    this.withId(GO_PARENT_ID);
     final StateAbstractDTO state = session.getCurrentState();
     if (!session.isCurrentStateAContent()) {
       final StateContainerDTO stateContainer = (StateContainerDTO) state;

Modified: trunk/src/main/java/cc/kune/gspace/client/actions/NewContainerBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/NewContainerBtn.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/NewContainerBtn.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -82,6 +82,7 @@
 
   }
 
+  public static final String BTN_ID = "k-newctner-id";
   private static final String ID = "ctnernewid";
   private static final String NEW_NAME = "ctnernewname";
 
@@ -91,7 +92,9 @@
     super(action);
     // The name given to this new content
     action.putValue(NEW_NAME, newName);
+    // The type id of the container
     action.putValue(ID, id);
-    this.withText(title).withToolTip(tooltip).withIcon(icon).withStyles("k-def-docbtn, k-fl");
+    this.withText(title).withToolTip(tooltip).withIcon(icon).withStyles("k-def-docbtn, k-fl").withId(
+        BTN_ID);
   }
 }

Modified: trunk/src/main/java/cc/kune/gspace/client/actions/NewContentBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/NewContentBtn.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/NewContentBtn.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -26,6 +26,7 @@
 import com.google.gwt.resources.client.ImageResource;
 
 public abstract class NewContentBtn extends ButtonDescriptor {
+  public static final String BTN_ID = "k-newctn-id";
 
   public NewContentBtn(final I18nTranslationService i18n, final NewContentAction action,
       final ImageResource icon, final GlobalShortcutRegister shorcutReg, final String title,
@@ -33,6 +34,7 @@
     super(action);
     action.putValue(NewContentAction.NEW_NAME, newName);
     action.putValue(NewContentAction.ID, id);
-    this.withText(title).withToolTip(tooltip).withIcon(icon).withStyles("k-def-docbtn, k-fl");
+    this.withText(title).withToolTip(tooltip).withIcon(icon).withStyles("k-def-docbtn, k-fl").withId(
+        BTN_ID);
   }
 }

Modified: trunk/src/main/java/cc/kune/gspace/client/actions/NewMenuProvider.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/NewMenuProvider.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/NewMenuProvider.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -31,10 +31,12 @@
  */
 public abstract class NewMenuProvider implements Provider<MenuDescriptor> {
 
+  public static final String MENU_ID = "k-newmenu-id";
   private final AbstractNewMenu menu;
 
   public NewMenuProvider(final AbstractNewMenu menu) {
     this.menu = menu;
+    menu.setId(MENU_ID);
   }
 
   @Override

Modified: trunk/src/main/java/cc/kune/gspace/client/options/GroupOptionsPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/GroupOptionsPanel.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/gspace/client/options/GroupOptionsPanel.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -32,14 +32,15 @@
 public class GroupOptionsPanel extends AbstractTabbedDialogPanel implements GroupOptionsView {
 
   public static final String GROUP_OP_PANEL_ID = "k-gop-diagpan";
+  public static final String GROUP_OP_PANEL_ID_CLOSE = GROUP_OP_PANEL_ID + "-close";
   public static final String GROUP_OPTIONS_ERROR_ID = "k-gop-err-mess";
   private final EntityHeader entityHeader;
 
   @Inject
   public GroupOptionsPanel(final EntityHeader entityHeader, final I18nTranslationService i18n,
       final NotifyLevelImages images, final GroupOptionsCollection entityOptionsGroup) {
-    super(GROUP_OP_PANEL_ID, "", false, false, images, GROUP_OPTIONS_ERROR_ID, i18n.t("Close"), null,
-        null, null, entityOptionsGroup, i18n.getDirection());
+    super(GROUP_OP_PANEL_ID, "", false, false, images, GROUP_OPTIONS_ERROR_ID, i18n.t("Close"),
+        GROUP_OP_PANEL_ID_CLOSE, null, null, entityOptionsGroup, i18n.getDirection());
     this.entityHeader = entityHeader;
     super.setIconCls("k-options-icon");
     super.setTitle(i18n.t(CoreMessages.GROUP_OPTIONS_DIALOG_TITLE));

Modified: trunk/src/main/java/cc/kune/gspace/client/options/UserOptionsPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/UserOptionsPanel.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/gspace/client/options/UserOptionsPanel.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -31,13 +31,14 @@
 public class UserOptionsPanel extends AbstractTabbedDialogPanel implements UserOptionsView {
 
   public static final String USER_OP_PANEL_ID = "k-uop-diagpan";
+  public static final String USER_OP_PANEL_ID_CLOSE = USER_OP_PANEL_ID + "-close";
   public static final String USER_OPTIONS_ERROR_ID = "k-uop-err-mess";
 
   @Inject
   public UserOptionsPanel(final EntityHeader entityHeader, final I18nTranslationService i18n,
       final NotifyLevelImages images, final UserOptionsCollection userOptionsGroup) {
-    super(USER_OP_PANEL_ID, "", false, images, USER_OPTIONS_ERROR_ID, i18n.t("Close"), null, null, null,
-        userOptionsGroup, i18n.getDirection());
+    super(USER_OP_PANEL_ID, "", false, images, USER_OPTIONS_ERROR_ID, i18n.t("Close"),
+        USER_OP_PANEL_ID_CLOSE, null, null, userOptionsGroup, i18n.getDirection());
     super.setIconCls("k-options-icon");
     super.setTitle(i18n.t(CoreMessages.USER_OPTIONS_DIALOG_TITLE));
   }

Modified: trunk/src/main/java/cc/kune/gspace/client/options/general/EntityOptGeneralPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/general/EntityOptGeneralPanel.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/gspace/client/options/general/EntityOptGeneralPanel.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -37,6 +37,7 @@
 import com.google.gwt.user.client.ui.Widget;
 
 public class EntityOptGeneralPanel extends DefaultForm implements EntityOptGeneralView {
+  public static final String TAB_ID = "k-eodlp-gen-id";
   private final MaskWidget maskWidget;
   private final IconLabel tabTitle;
 
@@ -44,7 +45,7 @@
       final String introMessage) {
     this.maskWidget = maskWidget;
 
-    tabTitle = TabTitleGenerator.generate(img, title, MAX_TABTITLE_LENGTH);
+    tabTitle = TabTitleGenerator.generate(img, title, MAX_TABTITLE_LENGTH, TAB_ID);
     super.setWidth(EntityOptionsView.WIDTH);
     super.setFrame(true);
     super.getFormPanel().setLabelWidth(100);

Modified: trunk/src/main/java/cc/kune/gspace/client/options/license/EntityOptDefLicensePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/license/EntityOptDefLicensePanel.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/gspace/client/options/license/EntityOptDefLicensePanel.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -39,12 +39,13 @@
 
 public class EntityOptDefLicensePanel extends Composite implements EntityOptDefLicenseView {
 
+  public static final String TAB_ID = "k-eodlp-lic-id";
   private final Button change;
   private final Image licenseImage;
   private final IconLabel tabTitle;
 
   public EntityOptDefLicensePanel(final I18nTranslationService i18n, final CoreResources res) {
-    tabTitle = TabTitleGenerator.generate(res.copyleft(), i18n.t("License"), MAX_TABTITLE_LENGTH);
+    tabTitle = TabTitleGenerator.generate(res.copyleft(), i18n.t("License"), MAX_TABTITLE_LENGTH, TAB_ID);
     final FlowPanel flow = new FlowPanel();
     final Label intro = new Label();
     intro.setWordWrap(true);

Modified: trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPanel.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPanel.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -42,6 +42,7 @@
 
   public static final String ICON_UPLD_SERVLET = GWT.getModuleBaseURL()
       + "servlets/EntityLogoUploadManager";
+  public static final String TAB_ID = "k-eodlp-logo-id";
   private final I18nTranslationService i18n;
   private final IconLabel tabTitle;
   private final EntityUploaderForm uploader;
@@ -50,7 +51,7 @@
       final String panelId, final String buttonId, final String inputId, final NavResources res) {
     super();
     this.i18n = i18n;
-    tabTitle = TabTitleGenerator.generate(res.picture(), "");
+    tabTitle = TabTitleGenerator.generate(res.picture(), "", TAB_ID);
     uploader = new EntityUploaderForm(ICON_UPLD_SERVLET, i18n.t("Choose"));
 
     initWidget(uploader);

Modified: trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePanel.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePanel.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -46,6 +46,7 @@
 
   public static final String ICON_UPLD_SERVLET = GWT.getModuleBaseURL()
       + "servlets/EntityBackgroundUploadManager";
+  public static final String TAB_ID = "k-eodlp-style-id";
   private final Label backgroundLabel;
   private final Image backImage;
   private final String changeImage;
@@ -60,7 +61,8 @@
   public EntityOptStylePanel(final I18nTranslationService i18n, final CoreResources res,
       final GSpaceThemeSelectorPanel styleSelector) {
     this.i18n = i18n;
-    tabTitle = TabTitleGenerator.generate(res.themeChoose(), i18n.t("Style"), MAX_TABTITLE_LENGTH);
+    tabTitle = TabTitleGenerator.generate(res.themeChoose(), i18n.t("Style"), MAX_TABTITLE_LENGTH,
+        TAB_ID);
     // super.setHeight(String.valueOf(EntityOptionsView.HEIGHT) + "px");
     super.setWidth(String.valueOf(EntityOptionsView.WIDTH_WOUT_MARGIN) + "px");
 

Modified: trunk/src/main/java/cc/kune/gspace/client/options/tools/EntityOptToolsPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/tools/EntityOptToolsPanel.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/gspace/client/options/tools/EntityOptToolsPanel.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -42,6 +42,7 @@
 import com.google.gwt.user.client.ui.Widget;
 
 public class EntityOptToolsPanel extends DefaultForm implements EntityOptToolsView {
+  public static final String TAB_ID = "k-eodlp-tools-id";
   private final HashMap<String, CheckBox> fields;
   private final I18nTranslationService i18n;
   private final MaskWidget maskWidget;
@@ -50,7 +51,8 @@
   public EntityOptToolsPanel(final I18nTranslationService i18n, final CoreResources res,
       final MaskWidget maskWidget) {
     this.maskWidget = maskWidget;
-    tabTitle = TabTitleGenerator.generate(res.kunePreferences(), i18n.t("Tools"), MAX_TABTITLE_LENGTH);
+    tabTitle = TabTitleGenerator.generate(res.kunePreferences(), i18n.t("Tools"), MAX_TABTITLE_LENGTH,
+        TAB_ID);
     this.i18n = i18n;
     // super.setHeight(EntityOptionsView.HEIGHT);
     super.setWidth(EntityOptionsView.WIDTH);

Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/ContentTitleWidget.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/ContentTitleWidget.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/ContentTitleWidget.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -34,6 +34,7 @@
 import com.google.gwt.user.client.ui.InsertPanel.ForIsWidget;
 
 public class ContentTitleWidget extends Composite {
+  public static final String ID = "k-cnt-title-id";
   private final EditableLabel editableTitle;
   private final GSpaceArmor gsArmor;
   private final I18nTranslationService i18n;
@@ -51,6 +52,7 @@
     flow.add(titleIcon);
     flow.add(editableTitle);
     initWidget(flow);
+    ensureDebugId(ID);
   }
 
   public void edit() {

Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsTablePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsTablePanel.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsTablePanel.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -60,6 +60,8 @@
   interface FolderViewerAsTablePanelUiBinder extends UiBinder<Widget, FolderViewerAsTablePanel> {
   }
 
+  public static final String ITEM_ID = "k-fvat-item-";
+
   private static FolderViewerAsTablePanelUiBinder uiBinder = GWT.create(FolderViewerAsTablePanelUiBinder.class);
 
   @UiField
@@ -86,7 +88,7 @@
       final DoubleClickHandler doubleClickHandler) {
     final int rowCount = flex.getRowCount();
     final FolderItemWidget itemWidget = new FolderItemWidget((ImageResource) item.getIcon(),
-        item.getText(), item.getStateToken());
+        item.getText(), item.getStateToken(), ITEM_ID + (flex.getRowCount() + 1));
     final ActionSimplePanel toolbar = new ActionSimplePanel(guiProvider, i18n);
     final long modifiedOn = item.getModififiedOn();
     if (modifiedOn != FolderViewerView.NO_DATE) {

Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/items/FolderItemWidget.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/items/FolderItemWidget.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/items/FolderItemWidget.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -49,6 +49,8 @@
   interface FolderItemWidgetUiBinder extends UiBinder<Widget, FolderItemWidget> {
   }
 
+  public static final String MENU_ID = "-menu";
+
   private static FolderItemWidgetUiBinder uiBinder = GWT.create(FolderItemWidgetUiBinder.class);
 
   @UiField
@@ -66,11 +68,14 @@
 
   private final StateToken token;
 
-  public FolderItemWidget(final ImageResource iconResource, final String title, final StateToken token) {
+  public FolderItemWidget(final ImageResource iconResource, final String title, final StateToken token,
+      final String id) {
     this.token = token;
     initWidget(uiBinder.createAndBindUi(this));
     this.title.setText(title);
     icon.setResource(iconResource);
+    this.ensureDebugId(id);
+    menu.ensureDebugId(id + MENU_ID);
   }
 
   private void clearFocusStyles() {

Modified: trunk/src/main/java/cc/kune/lists/client/ListsClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/ListsClientTool.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/lists/client/ListsClientTool.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -35,6 +35,8 @@
 
 public class ListsClientTool extends FoldableAbstractClientTool {
 
+  private final IconicResources icons;
+
   @Inject
   public ListsClientTool(final I18nTranslationService i18n, final ToolSelector toolSelector,
       final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources,
@@ -44,6 +46,7 @@
         i18n.t(ROOT_NAME),
         i18n.t("Lists behave like a mailing list or a forum. You can subscribe and discuss about specific topics"),
         icons.lists(), toolSelector, cntCapRegistry, i18n, navResources);
+    this.icons = icons;
 
     // registerAclEditableTypes();
     registerAuthorableTypes(TYPE_POST);
@@ -63,7 +66,7 @@
   }
 
   private void registerIcons() {
-    registerContentTypeIcon(TYPE_ROOT, navResources.list());
+    registerContentTypeIcon(TYPE_ROOT, icons.lists());
     registerContentTypeIcon(TYPE_LIST, navResources.list());
     registerContentTypeIcon(TYPE_POST, navResources.email());
     final String noWave = i18n.t("There is nothing posted yet. Post something");

Modified: trunk/src/main/java/cc/kune/lists/client/actions/NewListAction.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/NewListAction.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/lists/client/actions/NewListAction.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -43,10 +43,10 @@
 
 @Singleton
 public class NewListAction extends RolAction {
-  private static final String CANCEL_ID = "k-nla-cancel";
-  private static final String CREATE_ID = "k-nla-create";
-  private static final String ID = "k-nla-dialog";
-  private static final String TEXTBOX_ID = "k-nla-textbox";
+  public static final String CANCEL_ID = "k-nla-cancel";
+  public static final String CREATE_ID = "k-nla-create";
+  public static final String ID = "k-nla-dialog";
+  public static final String TEXTBOX_ID = "k-nla-textbox";
 
   private final ContentCache cache;
   private final FolderViewerPresenter folderViewer;

Modified: trunk/src/main/java/cc/kune/lists/client/actions/NewListBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/NewListBtn.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/lists/client/actions/NewListBtn.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -22,16 +22,18 @@
 import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
 import cc.kune.common.shared.i18n.I18nTranslationService;
 import cc.kune.core.client.resources.nav.NavResources;
+import cc.kune.gspace.client.actions.NewContainerBtn;
 
 import com.google.inject.Inject;
 
 public class NewListBtn extends ButtonDescriptor {
+  // Why not to use NewContainerBtn?
 
   @Inject
   public NewListBtn(final I18nTranslationService i18n, final NewListAction action, final NavResources res) {
     super(action);
     withText(i18n.t("New list")).withToolTip(i18n.t("Create a new list")).withIcon(res.listadd()).withStyles(
-        "k-def-docbtn, k-fl");
+        "k-def-docbtn, k-fl").withId(NewContainerBtn.BTN_ID);
   }
 
 }

Modified: trunk/src/main/java/cc/kune/lists/client/actions/NewListPostAction.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/NewListPostAction.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/lists/client/actions/NewListPostAction.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -46,10 +46,10 @@
 
 @Singleton
 public class NewListPostAction extends RolAction {
-  private static final String CANCEL_ID = "k-nlistpa-cancel";
-  private static final String CREATE_ID = "k-nlistpa-create";
-  private static final String ID = "k-nlistpa-dialog";
-  private static final String TEXTBOX_ID = "k-nlistpa-textbox";
+  public static final String CANCEL_ID = "k-nlistpa-cancel";
+  public static final String CREATE_ID = "k-nlistpa-create";
+  public static final String ID = "k-nlistpa-dialog";
+  public static final String TEXTBOX_ID = "k-nlistpa-textbox";
 
   private final ContentCache cache;
   private final FolderViewerPresenter folderViewer;

Modified: trunk/src/main/java/cc/kune/lists/client/actions/NewListPostIconBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/NewListPostIconBtn.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/lists/client/actions/NewListPostIconBtn.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -23,17 +23,19 @@
 import cc.kune.common.client.shortcuts.GlobalShortcutRegister;
 import cc.kune.common.shared.i18n.I18nTranslationService;
 import cc.kune.core.client.resources.nav.NavResources;
+import cc.kune.gspace.client.actions.NewContentBtn;
 
 import com.google.inject.Inject;
 
 public class NewListPostIconBtn extends ButtonDescriptor {
+  // FIXME why not to use NewContentBtn?
 
   @Inject
   public NewListPostIconBtn(final I18nTranslationService i18n, final NewListPostAction action,
       final NavResources res, final GlobalShortcutRegister shorcutReg) {
     super(action);
     this.withText(i18n.t("New post")).withToolTip(i18n.t("Create a new post")).withIcon(res.newemail()).withStyles(
-        "k-def-docbtn, k-fl");
+        "k-def-docbtn, k-fl").withId(NewContentBtn.BTN_ID);
   }
 
 }

Modified: trunk/src/main/java/cc/kune/lists/client/actions/SubscribeToListBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/SubscribeToListBtn.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/lists/client/actions/SubscribeToListBtn.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -28,6 +28,8 @@
 
 public class SubscribeToListBtn extends ButtonDescriptor {
 
+  public static final String ID = "k-list-subs";
+
   @Inject
   public SubscribeToListBtn(final I18nTranslationService i18n, final SubscriteToListAction action,
       final Session session, final CoreResources res) {
@@ -46,5 +48,6 @@
       withIcon(res.remove());
       withToolTip(i18n.t("Unsubscribe to this list"));
     }
+    withId(ID);
   }
 }

Modified: trunk/src/main/java/cc/kune/tasks/client/TasksClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/tasks/client/TasksClientTool.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/tasks/client/TasksClientTool.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -37,6 +37,7 @@
 public class TasksClientTool extends FoldableAbstractClientTool {
 
   private static final String NO_TASK = "There isn't any task";
+  private final IconicResources icons;
 
   @Inject
   public TasksClientTool(final I18nTranslationService i18n, final ToolSelector toolSelector,
@@ -47,6 +48,7 @@
         i18n.t(ROOT_NAME),
         i18n.t("A collaborative TO-DO list for the group. Any group-member can participate in any proposed task, add others to a task, comment them, add info, etc"),
         icons.tasks(), toolSelector, cntCapRegistry, i18n, navResources);
+    this.icons = icons;
 
     // registerAclEditableTypes();
     registerAuthorableTypes(TYPE_TASK);
@@ -66,7 +68,7 @@
   }
 
   private void registerIcons() {
-    registerContentTypeIcon(TYPE_ROOT, navResources.taskfolder());
+    registerContentTypeIcon(TYPE_ROOT, icons.tasks());
     registerContentTypeIcon(TYPE_FOLDER, navResources.taskfolder());
     registerContentTypeIcon(TYPE_TASK, navResources.task());
     registerContentTypeIcon(TYPE_TASK, ContentStatus.inTheDustbin, navResources.taskdone());

Modified: trunk/src/main/java/cc/kune/wiki/client/WikiClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/wiki/client/WikiClientTool.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/java/cc/kune/wiki/client/WikiClientTool.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -36,6 +36,7 @@
 public class WikiClientTool extends FoldableAbstractClientTool {
 
   private static final String EMPTY_FOLDER = "This folder is empty, create some wikipage or folder";
+  private final IconicResources icons;
 
   @Inject
   public WikiClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
@@ -47,6 +48,7 @@
         i18n.t(
             "Wiki-pages are Documents that can be edited by any visitor (in [%s]), instead of only by the group. This accelerates updating and construction",
             i18n.getSiteCommonName()), icons.wikis(), toolSelector, cntCapRegistry, i18n, navResources);
+    this.icons = icons;
 
     registerAuthorableTypes(TYPE_WIKIPAGE, TYPE_UPLOADEDFILE);
     registerDragableTypes(TYPE_WIKIPAGE, TYPE_FOLDER, TYPE_UPLOADEDFILE);
@@ -66,7 +68,7 @@
 
   private void registerIcons() {
     registerContentTypeIcon(TYPE_FOLDER, navResources.folder());
-    registerContentTypeIcon(TYPE_ROOT, navResources.folder());
+    registerContentTypeIcon(TYPE_ROOT, icons.wikis());
     registerContentTypeIcon(TYPE_WIKIPAGE, navResources.wikipage());
     registerUploadTypesAndMimes(TYPE_UPLOADEDFILE);
     registerEmptyMessages(TYPE_FOLDER, i18n.t(EMPTY_FOLDER));

Modified: trunk/src/main/resources/TestConstants_en.properties
===================================================================
--- trunk/src/main/resources/TestConstants_en.properties	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/resources/TestConstants_en.properties	2012-02-13 23:24:16 UTC (rev 1687)
@@ -23,7 +23,7 @@
 homeSpaceYourWelcomePage = Home space (your welcome page)
 hereYouCanSeeASummaryOfYourActivityInThisSite = Here you can see a summary of the activity in this site
 congratulationsForYourReport = Congratulations for your report\n\n
-hiThereJustToSayThatILike = Hi there, Just to say that I like
+hiThereJustToSayThatILike = Hi there, Just to say that I like\n
 aLotYourLastReport = a lot your last report\n\n
 bestJane = Best\n\nJane\n
 andYouCanChatEventWhileGoingBackForwardWithYourBrowser = And you can chat event while going back/forward with your browser
@@ -39,4 +39,19 @@
 andYesFeedbackWelcome = and yes, feedback welcome
 yourPersonalPublicSpace = Your personal public space
 hereYouCanHaveYourBlogEtc = here you can have your blog, etc
-letSStartAddingSomeBuddieToOurSocialNetwork = Let's start adding some buddie to our social network
\ No newline at end of file
+letSStartAddingSomeBuddieToOurSocialNetwork = Let's start adding some buddie to our social network
+groupSpaceCollaborationSpace = Group space (collaboration space)
+hereYouCanCreateGroupsAndCollaborateWithinThem = Here you can create groups and collaborate within them
+letSCreateANewGroup = Let's create a new group
+groupSpaceCollaborationSpaceIii = Group space (collaboration space) III
+letSSeeTheDifferentToolsYouHaveAvailable = Let's see the different tools you have available
+yellowSummarineEnvironmentalGroup = Yellow Summarine Environmental Group
+theYellowSummarineEnvironmentalGroupIsAnArgentineBasedEnvironmentalDirectActionGroupCurrentlyWeAreFo = The Yellow Summarine Environmental Group is an Argentine-Based environmental direct action group. Currently we are focusing or activities in the environmental impact of mining.
+environmentalArgentinaAction = environmental, Argentina, action
+letSSeeTheGroupPreferences = Let's see the group preferences
+aboutUs = About us\n
+archive = Archive\n
+news = News
+welcomeToThisList = Welcome to this list
+allNewContentsAreShownAlsoInYourInbox = All new contents are shown also in your Inbox
+andMoreOptionsForYourContacts = And more options for your contacts

Modified: trunk/src/main/resources/TestConstants_es.properties
===================================================================
--- trunk/src/main/resources/TestConstants_es.properties	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/main/resources/TestConstants_es.properties	2012-02-13 23:24:16 UTC (rev 1687)
@@ -17,8 +17,8 @@
 homeSpaceYourWelcomePage = Espacio Inicial (tu página de bienvenida)
 hereYouCanSeeASummaryOfYourActivityInThisSite = Aquí puedes ver un resumen de la actividad en este sitio
 congratulationsForYourReport = Enhorabuena por tu informe\n\n
-hiThereJustToSayThatILike = Muy buenas,\n\nSolo quería decir que me gustó
-aLotYourLastReport = \smucho tu informe\n\n
+hiThereJustToSayThatILike = Muy buenas,\n\nSolo quería decir que me gustó\n
+aLotYourLastReport = mucho tu informe\n\n
 bestJane = Atentamente\n\nRuth\n
 andYouCanChatEventWhileGoingBackForwardWithYourBrowser = Y puedes chatear mientras le das atrás y adelante al historial tu navegador
 laLaLa = la la la
@@ -33,4 +33,20 @@
 andYesFeedbackWelcome = y sí, tu feedback es muy bienvenido
 yourPersonalPublicSpace = Tu espacio público personal
 hereYouCanHaveYourBlogEtc = aquí puedes tener tu blog, etc
-letSStartAddingSomeBuddieToOurSocialNetwork = Empecemos añadiendo algún/a colega (un contacto) a nuestra red social
\ No newline at end of file
+letSStartAddingSomeBuddieToOurSocialNetwork = Empecemos añadiendo algún/a colega (un contacto) a nuestra red social
+groupSpaceCollaborationSpace = Espacio grupal (espacio colaborativo)
+hereYouCanCreateGroupsAndCollaborateWithinThem = Aquí puedes crear grupos y colaborar en ellos
+letSCreateANewGroup = Creemos un nuevo grupo
+groupSpaceCollaborationSpaceIi = Espacio grupal (espacio colaborativo) II
+groupSpaceCollaborationSpaceIii = Espacio grupal (espacio colaborativo) III
+letSSeeTheDifferentToolsYouHaveAvailable = Veamos las diferentes herramientas disponibles
+yellowSummarineEnvironmentalGroup = Grupo Ecologista Yellow Summarine
+theYellowSummarineEnvironmentalGroupIsAnArgentineBasedEnvironmentalDirectActionGroupCurrentlyWeAreFo = The Yellow Summarine Environmental Group is an Argentine-Based environmental direct action group. Currently we are focusing or activities in the environmental impact of mining.
+environmentalArgentinaAction = ecología, Argentina, acción
+letSSeeTheGroupPreferences = Veamos las preferencias de grupo
+aboutUs = Sobre nosotr at s\n
+archive = Archivo\n
+news = Noticias
+welcomeToThisList = Bienvenid@ a esta lista
+allNewContentsAreShownAlsoInYourInbox = Todos los nuevos contenidos se muestran también en tu Carpeta de Entrada
+andMoreOptionsForYourContacts = Y más opciones para tus contactos
\ No newline at end of file

Modified: trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -73,6 +73,7 @@
   protected NewGroupPageObject newGroup;
   protected RegisterPageObject register;
   protected final SitePageObject site;
+  private WebElement subtitlePopup;
   protected UserSpacePageObject userSpace;
   private final WebDriver webdriver;
 
@@ -173,6 +174,13 @@
     webdriver.get(url);
   }
 
+  public String getCurrentHistoryToken() {
+    final String currentUrl = webdriver.getCurrentUrl();
+    LOG.info(String.format("Current url: %s", currentUrl));
+    final String[] splitted = currentUrl.split("#");
+    return splitted.length > 1 ? splitted[1] : "";
+  }
+
   public String getPageSource() {
     return webdriver.getPageSource();
   }
@@ -192,9 +200,10 @@
 
   @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 } };
+    return new Object[][] { { "grp1", "吗台湾", "吗台湾 吗台湾 吗台湾 吗台湾", "吗 台湾", GroupType.CLOSED },
+        { "grp2", "Chomsky Fan Club", "Some chomsky fan club", "chomsky", GroupType.ORGANIZATION },
+        { "grp3", "روبا", "روبا روبا روبا روبا", "روبا", GroupType.COMMUNITY },
+        { "grp0", "Ecologist Group", "Melbourne eco feminist group", "eco feminism", GroupType.PROJECT } };
   }
 
   public void open(final String url) {
@@ -213,6 +222,26 @@
     // js.executeScript("window.resizeTo(806,707); window.moveTo(0,0);");
   }
 
+  /**
+   * Send keys but in a slow way (word by word)
+   * 
+   * @param element
+   *          the element
+   * @param strings
+   *          the strings
+   */
+  public void sendKeys(final WebElement element, final String... strings) {
+    for (final String s : strings) {
+      final String[] splitted = s.split(" ");
+      for (int i = 0; i < splitted.length; i++) {
+        element.sendKeys(splitted[i]);
+        if (i < splitted.length - 1) {
+          element.sendKeys(" ");
+        }
+      }
+    }
+  }
+
   public void showCursor(final int x, final int y) {
     SeleniumUtils.showCursor(webdriver, x, y);
   }
@@ -226,17 +255,22 @@
   }
 
   public void showTitleSlide(final String title) {
-    showTitleSlide(title, "", "");
+    showTitleSlide(title, "", getCurrentHistoryToken());
   }
 
   public void showTitleSlide(final String title, final String description) {
-    showTitleSlide(title, description, "");
+    showTitleSlide(title, description, getCurrentHistoryToken());
   }
 
   public void showTitleSlide(final String title, final String description, final String token) {
     gotoToken(TokenUtils.subtitle(title, description, token));
     sleep(4000);
-    webdriver.findElement(By.id(SeleniumConstants.GWTDEV + SubtitlesWidget.SUBTITLE_MANAGER_ID)).click();
+    if (subtitlePopup == null) {
+      subtitlePopup = webdriver.findElement(By.id(SeleniumConstants.GWTDEV
+          + SubtitlesWidget.SUBTITLE_MANAGER_ID));
+    }
+    subtitlePopup.click();
+    // SeleniumUtils.moveMouseToAndClick(webdriver, subtitlePopup, 100, 100);
   }
 
   public void showTooltip(final WebElement element) {

Modified: trunk/src/test/java/cc/kune/selenium/KuneSeleniumTest.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/KuneSeleniumTest.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/test/java/cc/kune/selenium/KuneSeleniumTest.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -23,6 +23,8 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+import cc.kune.core.shared.dto.GroupType;
+
 /**
  * Shared behaviour in selenium tests
  */
@@ -34,6 +36,125 @@
     return value;
   }
 
+  public void groupCreation(final String shortname, final String longname, final String description,
+      final String tags, final GroupType groupType, final String sufix) {
+
+    site.groupSpaceBtn.click();
+    showTitleSlide(t("Group space (collaboration space)"),
+        t("Here you can create groups and collaborate within them"));
+    // showMsg(t("Let's create a new group"));
+    // sleep(<1000);
+    site.newGroupBtn.click();
+
+    newGroup.create(sufix, shortname, longname, description, tags, groupType);
+
+    entityHeader.waitForEntityTitle(longname);
+    sleep(1000);
+
+    showTitleSlide(t("Group space (collaboration space) II "), t("Let's see the group preferences"));
+
+    groupSpace.groupOptions.click();
+    sleep(1000);
+    groupSpace.groupOptionsTools.click();
+    sleep(1000);
+    doScreenshot("groupOptions");
+    groupSpace.groupOptionsLicense.click();
+    sleep(2000);
+    groupSpace.groupOptionsClose.click();
+
+    groupSpace.socialNetOptions.click();
+    doScreenshot("socialNetOptions");
+    sleep(3000);
+
+    showTitleSlide(t("Group space (collaboration space) III "),
+        t("Let's see the different tools you have available"));
+
+    showTooltip(groupSpace.firstFolderItem);
+    sleep(1500);
+    groupSpace.openFirtsContent();
+
+    groupSpace.entityTitle.click();
+    sendKeys(groupSpace.entityTitleTextarea, t("About us\n"));
+    sleep(2000);
+
+    groupSpace.goParentBtn.click();
+    groupSpace.newContainerBtn.click();
+    groupSpace.entityTitle.click();
+    groupSpace.entityTitleTextarea.sendKeys(t("Archive\n"));
+    sleep(1000);
+    groupSpace.goParentBtn.click();
+    groupSpace.newMenuBtn.click();
+    sleep(2000);
+    // FIXME move content?
+
+    groupSpace.blogTool.click();
+    groupSpace.openFirtsContent();
+    sleep(2000);
+    groupSpace.newContentBtn.click();
+    sleep(1000);
+    groupSpace.goParentBtn.click();
+
+    groupSpace.chatTool.click();
+    showTooltip(groupSpace.chatTool);
+    sleep(2000);
+    groupSpace.openFirtsContent();
+    sleep(2000);
+    groupSpace.openRoomBtn.click();
+    sleep(2000);
+    chat.chatIcon.click();
+
+    groupSpace.listTool.click();
+    showTooltip(groupSpace.listTool);
+    sleep(2000);
+    groupSpace.newContainerBtn.click();
+    sleep(1000);
+    groupSpace.newListText.sendKeys(t("News"));
+    sleep(1000);
+    groupSpace.newListCreateBtn.click();
+    sleep(1000);
+    groupSpace.listSubscribeBtn.click();
+    sleep(2000);
+    doScreenshot("newlist");
+
+    groupSpace.newContentBtn.click();
+    sleep(1000);
+    groupSpace.newListPostText.sendKeys(t("Welcome to this list"));
+    sleep(1000);
+    groupSpace.newListPostCreateBtn.click();
+    sleep(1000);
+    groupSpace.goParentBtn.click();
+    // sleep(2000);
+
+    site.userSpaceBtn.click();
+    showMsg(t("All new contents are shown also in your Inbox"));
+    sleep(2000);
+    // userSpace.getFirstWave().click();
+    // sleep(1000);
+    site.groupSpaceBtn.click();
+
+    groupSpace.eventTool.click();
+    showTooltip(groupSpace.eventTool);
+    sleep(2000);
+    doScreenshot("calendar");
+    // groupSpace.openFirtsContent();
+    // sleep(2000);
+
+    groupSpace.taskTool.click();
+    showTooltip(groupSpace.taskTool);
+    sleep(2000);
+    groupSpace.openFirtsContent();
+    sleep(2000);
+    doScreenshot("tasks");
+    groupSpace.openFirtsContent();
+    sleep(2000);
+
+    groupSpace.wikiTool.click();
+    showTooltip(groupSpace.wikiTool);
+    sleep(2000);
+    groupSpace.openFirtsContent();
+    sleep(3000);
+  }
+
   protected void login() {
     login("admin", "easyeasy");
   }

Modified: trunk/src/test/java/cc/kune/selenium/SeleniumConf.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/SeleniumConf.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/test/java/cc/kune/selenium/SeleniumConf.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -56,8 +56,8 @@
 
   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 Lang LANG = Lang.en;
+  public static final Site SITE = Site.kunecc;
   public static final int TIMEOUT = 25;
 
   SeleniumConf() {

Modified: trunk/src/test/java/cc/kune/selenium/SeleniumModule.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/SeleniumModule.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/test/java/cc/kune/selenium/SeleniumModule.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -104,9 +104,14 @@
   private FirefoxDriver creatFirefoxDriver() {
     // http://code.google.com/p/selenium/wiki/FirefoxDriver
     System.setProperty("webdriver.firefox.useExisting", "true");
+
     final ProfilesIni allProfiles = new ProfilesIni();
     final FirefoxProfile profile = allProfiles.getProfile(SeleniumConstants.FIREFOX_PROFILE_NAME);
     // final FirefoxProfile profile = allProfiles.getProfile("76tp2vh0.ff5");
+
+    // http://code.google.com/p/selenium/wiki/AdvancedUserInteractions#Mouse
+    // profile.setEnableNativeEvents(true);
+
     final FirefoxDriver driver = new FirefoxDriver(profile);
     return driver;
   }

Modified: trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -31,6 +31,7 @@
 import org.openqa.selenium.TakesScreenshot;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.WebElement;
+import org.openqa.selenium.interactions.Action;
 import org.openqa.selenium.interactions.Actions;
 import org.testng.Assert;
 
@@ -51,6 +52,15 @@
     }
   }
 
+  public static void doubleClick(final WebDriver webdriver, final WebElement element) {
+    SeleniumUtils.moveMouseTo(webdriver, element);
+    sleep(300);
+    SeleniumUtils.hightlight(element, webdriver);
+    final Actions builder = new Actions(webdriver);
+    final Action doubleClick = builder.doubleClick(element).build();
+    doubleClick.perform();
+  }
+
   public static void fastSpeed(final boolean fastSpeed) {
     SeleniumUtils.fastSpeed = fastSpeed;
   }
@@ -82,17 +92,38 @@
   }
 
   public static void moveMouseTo(final WebDriver webdriver, final WebElement element) {
+    SeleniumUtils.showCursor(webdriver, element);
+    final Actions builder = new Actions(webdriver);
+    final Action action = builder.moveToElement(element).build();
+    action.perform();
+  }
+
+  public static void moveMouseTo(final WebDriver webdriver, final WebElement element, final int xOffset,
+      final int yOffset) {
+    showCursor(webdriver, element, xOffset, yOffset);
     final Actions actions = new Actions(webdriver);
-    actions.moveToElement(element);
+    actions.moveToElement(element, xOffset, yOffset);
+    final Action action = actions.build();
+    action.perform();
   }
 
+  public static void moveMouseToAndClick(final WebDriver webdriver, final WebElement element,
+      final int xOffset, final int yOffset) {
+    // showCursor(webdriver, element, xOffset, yOffset);
+    final Actions actions = new Actions(webdriver);
+    actions.moveToElement(element, xOffset, yOffset);
+    actions.click();
+    final Action action = actions.build();
+    action.perform();
+  }
+
   public static void showCursor(final WebDriver webdriver) {
     jsExec(webdriver).executeScript("kshowCursor();");
   }
 
   public static void showCursor(final WebDriver webdriver, final int x, final int y) {
     // LOG.info("Mover cursor to x: " + x + ", y: " + y);
-    jsExec(webdriver).executeScript("kmove(" + x + "," + y + ");");
+    jsExec(webdriver).executeScript("kmove(" + (x + 15) + "," + (y + 3) + ");");
   }
 
   public static void showCursor(final WebDriver webdriver, final WebElement element) {
@@ -100,6 +131,12 @@
     showCursor(webdriver, location.getX(), location.getY());
   }
 
+  public static void showCursor(final WebDriver webdriver, final WebElement element, final int xOffset,
+      final int yOffset) {
+    final Point location = element.getLocation();
+    SeleniumUtils.showCursor(webdriver, location.getX() + xOffset, location.getY() + yOffset);
+  }
+
   public static void showMsg(final WebDriver webdriver, final String header, final String msg) {
     final String opts = TextUtils.notEmpty(header) ? "header: '" + header + "'," : "";
     // sticky: true,

Modified: trunk/src/test/java/cc/kune/selenium/chat/ChatPageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/chat/ChatPageObject.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/test/java/cc/kune/selenium/chat/ChatPageObject.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -36,7 +36,7 @@
   @FindBy(id = SeleniumConstants.GWTDEV + "OpenChatWidget-addToRoster" + SeleniumConstants.INPUT)
   private WebElement addToRoster;
   @FindBy(id = SeleniumConstants.GWTDEV + ChatClient.CHAT_CLIENT_ICON_ID)
-  private WebElement chatIcon;
+  public WebElement chatIcon;
   @FindBy(xpath = "//div[14]/div/div/div/div/div/table/tbody/tr/td[2]/div")
   private WebElement closeChat;
   @FindBy(id = "//div[3]/div/div[3]/div/div/div/div[2]/div/div/div/div/div/div")

Modified: trunk/src/test/java/cc/kune/selenium/login/ScreenCastsViaSeleniumTests.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/ScreenCastsViaSeleniumTests.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/test/java/cc/kune/selenium/login/ScreenCastsViaSeleniumTests.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -22,9 +22,14 @@
 import org.openqa.selenium.Keys;
 import org.testng.annotations.Test;
 
+import cc.kune.core.client.state.SiteTokens;
+import cc.kune.core.shared.dto.GroupType;
 import cc.kune.selenium.KuneSeleniumTest;
+import cc.kune.selenium.SeleniumConf;
 import cc.kune.selenium.SeleniumUtils;
 
+import com.calclab.emite.core.client.xmpp.stanzas.XmppURI;
+
 public class ScreenCastsViaSeleniumTests extends KuneSeleniumTest {
 
   @Test(dataProvider = "correctregister")
@@ -35,18 +40,19 @@
     final String email = t(emailUntrans);
     SeleniumUtils.fastSpeed(false);
     // 15 chars, the limit, so we don't use shortName
-    final String prefix = getTempString();
+    final String sufix = getTempString();
     showTitleSlide(t("User registration"), t("to get full access to this site tools/contents"));
     login.createOne();
-    register.fillRegisterForm(shortName + prefix, longName + prefix, passwd, prefix + email, false, true);
+    register.fillRegisterForm(shortName + sufix, longName + sufix, passwd, sufix + email, false, true);
     sleep(1000);
-    login.assertIsConnectedAs(prefix);
-    entityHeader.waitForEntityTitle(longName + prefix);
+    login.assertIsConnectedAs(sufix);
+    entityHeader.waitForEntityTitle(longName + sufix);
     register.getWelcomeMsg().click();
 
     // home space
     showTitleSlide(t("Home space (your welcome page)"),
         t("Here you can see a summary of your activity in this site"));
+    sleep(1000);
     site.homeSpaceBtn.click();
     sleep(2000);
     homeSpace.getSndStats().click();
@@ -57,6 +63,7 @@
 
     // user space
     showTitleSlide(t("User space (your Inbox)"), t("contents in which you participate"));
+    sleep(1000);
     showTooltip(site.userSpaceBtn);
     site.userSpaceBtn.click();
     showMsg(t("You can see this like an advanced email system..."));
@@ -102,68 +109,62 @@
     // groupSpace.firstAvatarOfGroup().click();
     sleep(2000);
 
-    /*
-     * showTitleSlide(t("Chat with your buddies"),
-     * t("compatible with gmail and similars"), SiteTokens.WAVE_INBOX); //
-     * showTooltip(chat.icon()); chat.show(); sleep(2000);
-     * 
-     * final XmppURI jid = XmppURI.jid(SeleniumConstants.USER_SHORNAME + "@" +
-     * SeleniumConf.SITE.getDomain()); final String jids = jid.toString();
-     * chat.getRosterItem("", jids).click();
-     * 
-     * chat.openChat(jid);
-     * 
-     * chat.getPage(jids).click();
-     * chat.getTalkBox(jids).sendKeys(t("Helloo... ;)"));
-     * chat.getSend(jids).click();
-     * chat.getTalkBox(jids).sendKeys(t("I'm just testing"));
-     * chat.getSend(jids).click(); doScreenshot("chat");
-     * 
-     * showMsg(t("And you can chat event while going back/forward with your browser"
-     * )); site.homeSpaceBtn.click(); sleep(2000);
-     * chat.getTalkBox(jids).sendKeys(t("la la la"));
-     * chat.getSend(jids).click(); showMsg(t("Browser history back"));
-     * browserBack(); sleep(2000);
-     * chat.getTalkBox(jids).sendKeys(t("I can continue chat smoothly ;)"));
-     * chat.getSend(jids).click(); sleep(2000);
-     * showMsg(t("Browser history forward")); browserForward(); sleep(1000);
-     * showMsg(t("And more options for your contacts")); chat.getItemMenu("",
-     * jids).click(); chat.getTalkBox(jids).sendKeys(t("goodbye!"));
-     * chat.getSend(jids).click(); sleep(1000);
-     * chat.getTalkBox(jids).sendKeys(Keys.chord(Keys.ALT, "C")); //
-     * chat.close();
-     */
+    // Chat space
+    showTitleSlide(t("Chat with your buddies"), t("compatible with gmail and similars"),
+        SiteTokens.WAVE_INBOX); //
+    showTooltip(chat.icon());
+    chat.show();
+    sleep(2000);
 
-    // group space
-    showTitleSlide(t("Group space (collaboration space)"),
-        t("Here you can create groups and collaborate within them"));
-    site.groupSpaceBtn.click();
-    site.groupSpaceBtn.click();
-    showMsg(t("Let's create a new group"));
-    site.newGroupBtn.click();
-    newGroup.shortName.sendKeys("yseg" + prefix);
-    newGroup.longName.sendKeys(t("Yellow Summarine Environmental Group ") + prefix);
-    newGroup.publicDescription.sendKeys(t("The Yellow Summarine Environmental Group is an Argentine-Based environmental"
-        + " direct action group. Currently we are focusing or activities in the environmental impact of mining."));
-    newGroup.tags.sendKeys(t("environmental, Argentina, action"));
-    newGroup.projectType.click();
-    showTooltip(newGroup.projectType);
-    doScreenshot("newgroup");
-    newGroup.registerBtn.click();
+    final XmppURI jid = XmppURI.jid("luther" + "@" + SeleniumConf.SITE.getDomain());
+    final String jids = jid.toString();
+    // chat.getRosterItem("", jids).click();
+
+    chat.openChat(jid);
+
+    chat.getPage(jids).click();
+    chat.getTalkBox(jids).sendKeys(t("Helloo... ;)"));
+    chat.getSend(jids).click();
+    chat.getTalkBox(jids).sendKeys(t("I'm just testing"));
+    chat.getSend(jids).click();
+
+    showMsg(t("And you can chat event while going back/forward with your browser"));
+    site.homeSpaceBtn.click();
     sleep(2000);
-    showTitleSlide(t("Group space (collaboration space) III "),
-        t("Let's see the diferent tools you have available"));
-    groupSpace.blogTool.click();
+    chat.getTalkBox(jids).sendKeys(t("la la la"));
+    chat.getSend(jids).click();
+    showMsg(t("Browser history back"));
+    browserBack();
     sleep(2000);
-    groupSpace.wikiTool.click();
+    chat.getTalkBox(jids).sendKeys(t("I can continue chat smoothly ;)"));
+    chat.getSend(jids).click();
     sleep(2000);
-    groupSpace.listTool.click();
-    sleep(2000);
-    groupSpace.eventTool.click();
+    showMsg(t("Browser history forward"));
+    browserForward();
+    sleep(1000);
+    showMsg(t("And more options for your contacts"));
+    chat.getItemMenu("", jids).click();
+    chat.getTalkBox(jids).sendKeys(t("goodbye!"));
+    doScreenshot("chat");
 
-    showTitleSlide(t("Group space (collaboration space) II"),
-        t("but also you can have your personal space (with blogs, etc)"));
+    chat.getSend(jids).click();
+    sleep(1000);
+    // Doesn't works
+    // chat.getTalkBox(jids).sendKeys(Keys.chord(Keys.ALT, "C")); //
+    // chat.close();
+    // workaround:
+    chat.chatIcon.click();
 
+    // group space
+
+    final String shortname = "yseg";
+    final String longname = t("Yellow Summarine Environmental Group ");
+    final String description = t("The Yellow Summarine Environmental Group is an Argentine-Based environmental"
+        + " direct action group. Currently we are focusing or activities in the environmental impact of mining.");
+    final String tags = t("environmental, Argentina, action");
+
+    groupCreation(shortname, longname, description, tags, GroupType.PROJECT, sufix);
+
     login.logout();
 
     showTitleSlide(t("Thank you"), t("and yes, feedback welcome"));

Modified: trunk/src/test/java/cc/kune/selenium/spaces/GroupSpacePageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/spaces/GroupSpacePageObject.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/test/java/cc/kune/selenium/spaces/GroupSpacePageObject.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -23,6 +23,7 @@
 import org.openqa.selenium.support.FindBy;
 
 import cc.kune.blogs.shared.BlogsConstants;
+import cc.kune.chat.client.actions.OpenRoomBtn;
 import cc.kune.chat.shared.ChatConstants;
 import cc.kune.core.client.sitebar.search.EntitySearchPanel;
 import cc.kune.core.client.sn.actions.AddEntityToThisGroupAction;
@@ -30,10 +31,26 @@
 import cc.kune.core.client.sn.actions.registry.UserSNConfActions;
 import cc.kune.docs.shared.DocsConstants;
 import cc.kune.events.shared.EventsConstants;
+import cc.kune.gspace.client.actions.GoParentContainerBtn;
+import cc.kune.gspace.client.actions.NewContainerBtn;
+import cc.kune.gspace.client.actions.NewContentBtn;
+import cc.kune.gspace.client.actions.NewMenuProvider;
+import cc.kune.gspace.client.options.GroupOptionsPanel;
+import cc.kune.gspace.client.options.GroupOptionsPresenter;
+import cc.kune.gspace.client.options.license.EntityOptDefLicensePanel;
+import cc.kune.gspace.client.options.logo.EntityOptLogoPanel;
+import cc.kune.gspace.client.options.style.EntityOptStylePanel;
+import cc.kune.gspace.client.options.tools.EntityOptToolsPanel;
 import cc.kune.gspace.client.tool.selector.ToolSelectorItemPanel;
+import cc.kune.gspace.client.viewers.FolderViewerAsTablePanel;
+import cc.kune.gspace.client.viewers.items.FolderItemWidget;
+import cc.kune.lists.client.actions.NewListAction;
+import cc.kune.lists.client.actions.NewListPostAction;
+import cc.kune.lists.client.actions.SubscribeToListBtn;
 import cc.kune.lists.shared.ListsConstants;
 import cc.kune.selenium.PageObject;
 import cc.kune.selenium.SeleniumConstants;
+import cc.kune.selenium.SeleniumUtils;
 import cc.kune.tasks.shared.TasksConstants;
 import cc.kune.wiki.shared.WikiConstants;
 
@@ -45,27 +62,71 @@
   public WebElement addNewBuddieTextBox;
   @FindBy(id = SeleniumConstants.GWTDEV + AddEntityToThisGroupAction.ADD_NEW_MEMBER_TEXTBOX)
   public WebElement addNewMemberTextBox;
-  @FindBy(id = ToolSelectorItemPanel.TOOL_ID_PREFIX + BlogsConstants.NAME)
+  @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + BlogsConstants.NAME)
   public WebElement blogTool;
-  @FindBy(id = ToolSelectorItemPanel.TOOL_ID_PREFIX + ChatConstants.NAME)
+  @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + ChatConstants.NAME)
   public WebElement chatTool;
-  @FindBy(id = ToolSelectorItemPanel.TOOL_ID_PREFIX + DocsConstants.NAME)
+  @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + DocsConstants.NAME)
   public WebElement docTool;
-  @FindBy(id = ToolSelectorItemPanel.TOOL_ID_PREFIX + EventsConstants.NAME)
+  @FindBy(xpath = "//div[@id='gwt-debug-k-cnt-title-id']/div/span")
+  public WebElement entityTitle;
+  @FindBy(xpath = "//div[@id='gwt-debug-k-cnt-title-id']/div/input")
+  public WebElement entityTitleTextarea;
+  @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + EventsConstants.NAME)
   public WebElement eventTool;
   @FindBy(xpath = "//td/img")
   public WebElement firstAvatarOfGroup;
+  @FindBy(id = SeleniumConstants.GWTDEV + FolderViewerAsTablePanel.ITEM_ID + "1")
+  public WebElement firstFolderItem;
+  @FindBy(id = SeleniumConstants.GWTDEV + FolderViewerAsTablePanel.ITEM_ID + FolderItemWidget.MENU_ID)
+  public WebElement firstFolderItemMenu;
   @FindBy(xpath = "//td[2]/div/div/table/tbody/tr/td")
   public WebElement firstFromSuggestionBox;
-  @FindBy(id = ToolSelectorItemPanel.TOOL_ID_PREFIX + ListsConstants.NAME)
+  @FindBy(id = SeleniumConstants.GWTDEV + GoParentContainerBtn.GO_PARENT_ID)
+  public WebElement goParentBtn;
+  @FindBy(id = SeleniumConstants.GWTDEV + GroupOptionsPresenter.GROUP_OPTIONS_ICON)
+  public WebElement groupOptions;
+  @FindBy(id = SeleniumConstants.GWTDEV + GroupOptionsPanel.GROUP_OP_PANEL_ID_CLOSE)
+  public WebElement groupOptionsClose;
+  @FindBy(id = SeleniumConstants.GWTDEV + EntityOptDefLicensePanel.TAB_ID)
+  public WebElement groupOptionsLicense;
+  @FindBy(id = SeleniumConstants.GWTDEV + EntityOptLogoPanel.TAB_ID)
+  public WebElement groupOptionsLogo;
+  @FindBy(id = SeleniumConstants.GWTDEV + EntityOptStylePanel.TAB_ID)
+  public WebElement groupOptionsStyle;
+  @FindBy(id = SeleniumConstants.GWTDEV + EntityOptToolsPanel.TAB_ID)
+  public WebElement groupOptionsTools;
+  @FindBy(id = SeleniumConstants.GWTDEV + SubscribeToListBtn.ID)
+  public WebElement listSubscribeBtn;
+  @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + ListsConstants.NAME)
   public WebElement listTool;
+  @FindBy(id = SeleniumConstants.GWTDEV + NewContainerBtn.BTN_ID)
+  public WebElement newContainerBtn;
+  @FindBy(id = SeleniumConstants.GWTDEV + NewContentBtn.BTN_ID)
+  public WebElement newContentBtn;
+  @FindBy(id = SeleniumConstants.GWTDEV + NewListAction.CREATE_ID)
+  public WebElement newListCreateBtn;
+  @FindBy(id = SeleniumConstants.GWTDEV + NewListPostAction.CREATE_ID)
+  public WebElement newListPostCreateBtn;
+  @FindBy(id = NewListPostAction.TEXTBOX_ID + SeleniumConstants.INPUT)
+  public WebElement newListPostText;
+  @FindBy(id = NewListAction.TEXTBOX_ID + SeleniumConstants.INPUT)
+  public WebElement newListText;
+  @FindBy(id = SeleniumConstants.GWTDEV + NewMenuProvider.MENU_ID)
+  public WebElement newMenuBtn;
+  @FindBy(id = SeleniumConstants.GWTDEV + OpenRoomBtn.ID)
+  public WebElement openRoomBtn;
   @FindBy(id = SeleniumConstants.GWTDEV + EntitySearchPanel.OK_ID)
   public WebElement searchEntitiesOk;
   @FindBy(xpath = "//div[3]/div/button")
   public WebElement socialNetOptions;
-  @FindBy(id = ToolSelectorItemPanel.TOOL_ID_PREFIX + TasksConstants.NAME)
+  @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + TasksConstants.NAME)
   public WebElement taskTool;
-  @FindBy(id = ToolSelectorItemPanel.TOOL_ID_PREFIX + WikiConstants.NAME)
+  @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + WikiConstants.NAME)
   public WebElement wikiTool;
 
+  public void openFirtsContent() {
+    SeleniumUtils.doubleClick(getWebDriver(), firstFolderItem);
+  }
+
 }

Modified: trunk/src/test/java/cc/kune/selenium/spaces/NewGroupPageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/spaces/NewGroupPageObject.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/test/java/cc/kune/selenium/spaces/NewGroupPageObject.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -22,9 +22,12 @@
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.support.FindBy;
 
+import cc.kune.common.client.errors.UIException;
 import cc.kune.core.client.groups.newgroup.NewGroupPanel;
+import cc.kune.core.shared.dto.GroupType;
 import cc.kune.selenium.PageObject;
 import cc.kune.selenium.SeleniumConstants;
+import cc.kune.selenium.SeleniumUtils;
 
 public class NewGroupPageObject extends PageObject {
 
@@ -47,4 +50,34 @@
   @FindBy(id = NewGroupPanel.TAGS_FIELD + SeleniumConstants.INPUT)
   public WebElement tags;
 
+  public void create(final String sufix, final String shortname, final String longname,
+      final String description, final String tagsS, final GroupType groupType) {
+    shortName.sendKeys(shortname + sufix);
+    longName.sendKeys(longname + " " + sufix);
+    publicDescription.sendKeys(description);
+    tags.sendKeys(tagsS);
+
+    switch (groupType) {
+    case PROJECT:
+      projectType.click();
+      showTooltip(projectType);
+      break;
+    case ORGANIZATION:
+      orgType.click();
+      showTooltip(orgType);
+      break;
+    case CLOSED:
+      closedType.click();
+      showTooltip(closedType);
+      break;
+    case COMMUNITY:
+      closedType.click();
+      showTooltip(communityType);
+      break;
+    default:
+      throw new UIException("New group types?");
+    }
+    SeleniumUtils.doScreenshot(getWebDriver(), "newgroup");
+    registerBtn.click();
+  }
 }

Modified: trunk/src/test/java/cc/kune/selenium/spaces/NewGroupSeleniumTests.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/spaces/NewGroupSeleniumTests.java	2012-02-13 23:05:51 UTC (rev 1686)
+++ trunk/src/test/java/cc/kune/selenium/spaces/NewGroupSeleniumTests.java	2012-02-13 23:24:16 UTC (rev 1687)
@@ -21,7 +21,6 @@
 
 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;
@@ -30,41 +29,19 @@
 public class NewGroupSeleniumTests extends KuneSeleniumTest {
 
   @Test(dataProvider = "newGroups")
-  public void basicSignIn(final String shortname, final String longname, final GroupType groupType) {
-    SeleniumUtils.fastSpeed(true);
+  public void basicSignIn(final String shortname, final String longname, final String description,
+      final String tags, final GroupType groupType) {
+    SeleniumUtils.fastSpeed(false);
     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();
+    final String sufix = 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();
+    groupCreation(shortname, longname, description, tags, groupType, sufix);
 
-    entityHeader.waitForEntityTitle(longNameTranslated);
+    logout();
 
     login.assertIsDisconnected();
   }




More information about the kune-commits mailing list