r1058 - in xwiki/trunk/src/test: . webunit webunit/suites webunit/suites/xwiki webunit/suites/xwiki/account webunit/suites/xwiki/adminLink webunit/suites/xwiki/control webunit/suites/xwiki/edit webunit/suites/xwiki/runner webunit/suites/xwiki/share webunit/suites/xwiki/userLink

Nguyen Thanh Huyen huyennt at users.forge.objectweb.org
Fri Apr 28 11:27:30 CEST 2006


Author: huyennt
Date: 2006-04-28 11:27:29 +0200 (Fri, 28 Apr 2006)
New Revision: 1058

Added:
   xwiki/trunk/src/test/webunit/
   xwiki/trunk/src/test/webunit/Instruction
   xwiki/trunk/src/test/webunit/suites/
   xwiki/trunk/src/test/webunit/suites/xwiki/
   xwiki/trunk/src/test/webunit/suites/xwiki/account/
   xwiki/trunk/src/test/webunit/suites/xwiki/account/XwikiCheckAccountSuite.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/account/XwikiCheckCreateAccountSuite.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/account/XwikiCheckLoginSuite.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/account/XwikiCheckLogoutSuite.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/
   xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiAdminCheckLinkMainPage.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkAdminPage.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkBlogPage.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkDocPage.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkEventCalendarPage.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkHomePage.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkKnowledgeBasePage.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkPhotoAlbumsPage.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkPresentationsPage.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkWhatNewPage.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/control/
   xwiki/trunk/src/test/webunit/suites/xwiki/control/XwikiTestCategories.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/edit/
   xwiki/trunk/src/test/webunit/suites/xwiki/edit/XwikiEditPageSuite.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/edit/XwikiNotAllowedEditSuite.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/runner/
   xwiki/trunk/src/test/webunit/suites/xwiki/runner/XwikiAdminCheckLinkSuites.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/runner/XwikiUserCheckLinkSuites.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/share/
   xwiki/trunk/src/test/webunit/suites/xwiki/share/XwikiCommonUnit.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/share/XwikiCreateAccountSuite.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/share/XwikiLoginSuite.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/share/XwikiLogoutSuite.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/userLink/
   xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkBlogPage.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkDocPage.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkEventCalendarPage.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkHomePage.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkKnowledgeBasePage.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkPhotoAlbumsPage.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkPresentationsPage.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkWhatNewPage.groovy
   xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiUserCheckLinkMainPage.groovy
Log:
Add webunit test to Xwiki 

Added: xwiki/trunk/src/test/webunit/Instruction
===================================================================
--- xwiki/trunk/src/test/webunit/Instruction	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/Instruction	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,27 @@
+Instruction to run web unit test:
+	1. 	Locate webunit-webui in tomcat.
+			Example: /home/exo/java/xwiki-tomcat/webapps/webunit-webui
+	2.	Build project and run tomcat
+	3. 	Then type this path: http://localhost:8080/webunit-webui/controller
+			in browse to run web unit test
+	4. 	Click on 'Config Test' button (2 people icon) and set:
+				Mark 3 checked boxes.
+				Interval: 0
+				URL: path lead to main page of Xwiki. Example: http://127.0.0.1:8080/xwiki/bin/view/Main/
+				Test Categories class: suites.xwiki.control.XwikiTestCategories
+				Groovy Script Location: directory contain test code. Example: /home/exo/java/projects/xwiki/src/test/webunit
+			Then click on 'Save'
+	5.	Click on 'Reload current page' button on browse to refesh 
+	6.	Click 'Select Suite' button (last blue icon) on test control so that test suites appear on the right screen
+	7.	Click on 'Select' link to choose a  suite then units of the suite will be listed on left screen
+	8. 	Click on 'Next Unit' button to run test one unit a time then see result of each step in the right
+			or click on 'Run' button to run all units then click on 'Suite Summary' button (lamp icon) to check results: a runnable 				unit is red and in Summary its status is OK and req=1
+
+
+Other:
+	1. Each test in a category (Account Suite, User Check Link Suite, Admin Check Link Suite, Edit Page Suite) can run alone.
+	2. User Check Link Suites calls other suites in User Check Link Suite and Admin Check Link Suites calls suites in Admin 
+		 Check Link Suite. My objective is to make these suites run automatic.
+	3. In left screen, the unit is marked '!!!' - it's only a comment, it's not an unit. After running, its status is TODO
+		 Because the unit cannot run well in webunit test. In the file, you will see the unit is commented out and there's a 	
+		 COMMENT above

Added: xwiki/trunk/src/test/webunit/suites/xwiki/account/XwikiCheckAccountSuite.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/account/XwikiCheckAccountSuite.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/account/XwikiCheckAccountSuite.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,24 @@
+package suites.xwiki.account ;
+
+import suites.xwiki.account.XwikiCheckCreateAccountSuite;
+import suites.xwiki.account.XwikiCheckLoginSuite;
+import suites.xwiki.account.XwikiCheckLogoutSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * May 21, 2004
+ * @author: Tuan Nguyen
+ * @email:   tuan08 at users.sourceforge.net
+ **/
+
+public class XwikiCheckAccountSuite extends WebUnitSuite {
+  public XwikiCheckAccountSuite() {
+    super("XwikiCheckAccountSuite",  "Create a new account, then login and logout") ;
+    addWebSuite(new XwikiCheckCreateAccountSuite()) ;
+    String[] roles = ["user"] ;
+    addWebSuite(new XwikiCheckLoginSuite("#{client.name}", "#{client.name}", roles)) ;
+    addWebSuite(new XwikiCheckLogoutSuite()) ;
+  }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/account/XwikiCheckCreateAccountSuite.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/account/XwikiCheckCreateAccountSuite.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/account/XwikiCheckCreateAccountSuite.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,86 @@
+/***************************************************************************
+ * Copyright 2001-2003 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.account ;
+
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * May 21, 2004
+ * @author: Tuan Nguyen
+ * @email:   tuan08 at users.sourceforge.net
+ * @version: $Id: NewAccountSuite.java,v 1.1 2004/10/11 23:27:29 tuan08 Exp $
+ **/
+
+public class XwikiCheckCreateAccountSuite extends WebUnitSuite {
+  static String DESC="Check create a new user account";
+  static String NAME="XwikiCheckCreateAccountSuite";
+    
+  public XwikiCheckCreateAccountSuite() {
+    super(NAME, DESC);    
+    addWebUnit(
+      	new NewSessionUnit("NewSession", "Create new session and go to the home page for the first time")
+    );    
+    addWebUnit(
+        new ClickLinkWithText("ClickRegister", "Click on 'Register'").
+        setTextLink("Register").
+        addValidator(new ExpectFormIdValidator("register"))
+    ) ;    
+    addWebUnit(
+      	new SubmitFormUnit("CreateBlankAccount", "All fields are blank").
+	    setFormId("register").
+	    setField("register_first_name", "").
+	    setField("register_last_name", "").
+	    setField("xwikiname", "").
+	    setField("register_email", "").
+	    setField("register_password", "").
+	    setField("register2_password", "").
+	    setField("register_company", "").
+	    setField("register_city", "").
+	    setField("register_country", "").
+	    setField("register_blog", "").
+	    setField("register_blogfeed", "").
+	    setField("register_comment", "").
+	    addValidator(new ExpectFormIdValidator("register"))
+    ) ;        
+    addWebUnit(
+  	    new SubmitFormUnit("CreateNotSamePasswordAccount", "Two password are not same").
+		setFormId("register").
+  	    setField("register_first_name", "#{client.name}").
+  	    setField("register_last_name", "#{client.name}").
+  	    setField("xwikiname", "#{client.name}").
+  	    setField("register_email", "user at localhost.net").
+  	    setField("register_password", "client.password1").
+  	    setField("register2_password", "client.password2").
+  	    setField("register_company", "#{client.name}").
+  	    setField("register_city", "#{client.name}").
+  	    setField("register_country", "#{client.name}").
+  	    setField("register_blog", "#{client.name}").
+  	    setField("register_blogfeed", "#{client.name}").
+  	    setField("register_comment", "#{client.name}").
+  	    addValidator(new ExpectFormIdValidator("register"))     
+    ) ;        
+
+  	addWebUnit(
+  	    new SubmitFormUnit("CreateValidAccount", "Create xwiki account").
+		setFormId("register").
+  	    setField("register_first_name", "#{client.name}").
+  	    setField("register_last_name", "#{client.name}").
+  	    setField("xwikiname", "#{client.name}").
+  	    setField("register_email", "user at localhost.net").
+  	    setField("register_password", "#{client.name}").
+  	    setField("register2_password", "#{client.name}").
+  	    setField("register_company", "#{client.name}").
+  	    setField("register_city", "#{client.name}").
+  	    setField("register_country", "#{client.name}").
+  	    setField("register_blog", "#{client.name}").
+  	    setField("register_blogfeed", "#{client.name}").
+  	    setField("register_comment", "#{client.name}").
+  	    addValidator(new ExpectFormIdValidator("newdoc"))
+  	    //addValidator(new ExpectTextValidator("The user '#{client.name}' has been correctly registered."))
+    ) ;    
+  }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/account/XwikiCheckLoginSuite.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/account/XwikiCheckLoginSuite.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/account/XwikiCheckLoginSuite.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,58 @@
+package suites.xwiki.account ;
+
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+/**
+ * May 21, 2004
+ * @author: Tuan Nguyen
+ * @email:   tuan08 at users.sourceforge.net
+ **/
+public class XwikiCheckLoginSuite extends WebUnitSuite {
+  public XwikiCheckLoginSuite() {
+    super("XwikiCheckLoginSuite",  "Check login by new account") ;
+    String[] roles = ["user", "admin"] ;
+    init("admin", "admin", roles) ;
+  }
+
+  public XwikiCheckLoginSuite(String userName, String password, String[] roles) {
+    super("XwikiCheckLoginSuite",  "Check login by new account") ;
+    init(userName, password, roles) ;
+  }
+
+  public void init(String userName, String password, String[] roles) {            
+    addWebUnit(
+        new NewSessionUnit("NewSession", "Create new session and go to the home page for the first time")
+    );
+	addWebUnit(
+        new ClickLinkWithText("ClickLogin", "Click on 'Log-in'").
+        setTextLink("Log-in").
+        addValidator(new ExpectFormIdValidator("loginForm"))
+    ) ;
+    //User not registered or invalid password
+    addWebUnit(
+        new SubmitFormUnit("InvalidAccount", "Login with user name ${userName} and password ${password}").
+        setFormId("loginForm").
+        setField(j_username:userName).
+        setField(j_password:"invalidPassword").
+        addValidator(new ExpectFormIdValidator("loginForm"))
+    );        
+    //Username and password is verified
+    addWebUnit(
+        new SubmitFormUnit("ValidAccount", "Login with user name ${userName} and password ${password}").
+        setFormId("loginForm").
+        setField(j_username:userName).
+        setField(j_password:password).
+        addValidator(new ExpectTextValidator("Hello"))
+    );
+/*
+		//what for???
+    for(role in roles) {
+      addWebUnit(
+        new AddRoleUnit("AddRole: ${role}", "Add user role to the web client").
+        setRoleToAdd(role)
+      );
+    }
+*/
+  }  
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/account/XwikiCheckLogoutSuite.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/account/XwikiCheckLogoutSuite.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/account/XwikiCheckLogoutSuite.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,31 @@
+package suites.xwiki.account ;
+
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * May 21, 2004
+ * @author: Tuan Nguyen
+ * @email:   tuan08 at users.sourceforge.net
+ **/
+
+public class XwikiCheckLogoutSuite extends WebUnitSuite {
+  public XwikiCheckLogoutSuite() {
+    super("XwikiCheckLogoutSuite",  "Log out current page") ;
+    String COMMENT = null;
+    COMMENT ="WebUnit cannot catch 'logout' text link even URL";
+	addWebUnit(
+	    new TODO("Cannot Logout",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+    addWebUnit(
+        new ClickLinkWithText("Log-out", "Click on 'Log-out'").
+        setTextLink("Log-out").
+	    addValidator(new ExpectNoTextValidator("Hello"))
+    ) ;
+    */
+  }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiAdminCheckLinkMainPage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiAdminCheckLinkMainPage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiAdminCheckLinkMainPage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,172 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.adminLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiLogoutSuite;
+import suites.xwiki.share.XwikiCommonUnit;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+
+public class XwikiAdminCheckLinkMainPage extends WebUnitSuite {
+  static String DESC = "Go to main page and click on links" ;
+  static String NAME = "XwikiAdminCheckLinkMainPage" ;
+  //String COMMENT = null;
+  
+  public XwikiAdminCheckLinkMainPage() {
+    super(NAME, DESC) ;
+    //click on Home tab
+    addWebUnit(
+        new ClickLinkWithText("GoToHome", "Link to Home page").
+        setTextLink("Home").
+        addValidator(new ExpectTextValidator("Welcome to your Wiki"))
+    ) ;
+	//click on Blog tab
+    addWebUnit(
+        new ClickLinkWithText("GoToBlog", "Link to Blog page").
+        setTextLink("Blog").
+        addValidator(new ExpectTextValidator("Latest Articles"))
+    ) ;
+	//click on Knowledge Base tab
+	addWebUnit(
+        new ClickLinkWithText("GoToKnowledgeBase", "Link to Knowledge Base page").
+        setTextLink("Knowledge Base").
+        addValidator(new ExpectTextValidator("Wiki Knowledge Base"))
+    ) ;
+	//click on What'sNew tab
+	addWebUnit(
+        new ClickLinkWithText("GoToWhat'sNew", "Link to What's New page").
+        setTextLink("What's New").
+        addValidator(new ExpectTextValidator("What's New"))
+    ) ;
+	//click on Search tab
+	addWebUnit(
+        new ClickLinkWithText("GoToSearch", "Link to Search page").
+        setTextLink("Search").
+        addValidator(new ExpectTextValidator("Search on this Wiki"))
+    ) ;
+	//click on Admin tab
+	addWebUnit(
+        new ClickLinkWithText("GoToAdmin", "Link to Admin page").
+        setTextLink("Admin").
+        addValidator(new ExpectTextValidator("Administration"))
+    ) ;
+	//click on Doc tab
+	addWebUnit(
+        new ClickLinkWithText("GoToDoc", "Link to Doc page").
+        setTextLink("Doc").
+        addValidator(new ExpectTextValidator("Documentation"))
+    ) ;
+	//click on Register tab
+	addWebUnit(
+        new ClickLinkWithText("GoToRegister", "Link to register page").
+        setTextLink("Register").
+        addValidator(new ExpectTextValidator("Information about you"))
+    ) ;
+	//click on Photo Albums link
+    addWebUnit(
+        new ClickLinkWithText("GoToPhotoAlbums", "Link to Photo Albums page").
+        setTextLink("Photo Albums").
+        addValidator(new ExpectTextValidator("Photo Albums"))
+    ) ;
+	//click on Event Calendar link
+    addWebUnit(
+        new ClickLinkWithText("GoToEventCalendar", "Link to Event Calendar page").
+        setTextLink("Event Calendar").
+        addValidator(new ExpectTextValidator("Event Calendar"))
+    ) ;
+	//click on Presentation link
+    addWebUnit(
+        new ClickLinkWithText("GoToPresentation", "Link to Presentation page").
+        setTextLink("Presentations").
+        addValidator(new ExpectTextValidator("Presentation"))
+    ) ;
+    //click on News link(note: if being in home page, there are more than one 'News' word on screen so cannot setTextLink)
+    addWebUnit(
+      new ClickURLLinkUnit("GoToNews", "Link to News page").
+      setURL("/xwiki/bin/view/Blog/Category?category=News").
+      addValidator(new ExpectTextValidator("Entries for category News"))
+    ) ;
+	//click on Personal link
+    addWebUnit(
+        new ClickLinkWithText("GoToPersonal", "Link to Personal page").
+        setTextLink("Personal").
+        addValidator(new ExpectTextValidator("Entries for category Personal"))
+    ) ;
+	//click on Other link
+    addWebUnit(
+        new ClickLinkWithText("GoToOther", "Link to Other page").
+        setTextLink("Other").
+        addValidator(new ExpectTextValidator("Entries for category Other"))
+    ) ;
+    //click on Edit This Page link
+    addWebUnit(
+        new ClickLinkWithText("ClickEditThisPage", "Click on 'Edit This Page'").
+        setTextLink("Edit This Page")
+        //addValidator(new ExpectFormValidator("edit"))
+    ) ;
+    addWebUnit(
+        new ClickURLLinkUnit("BackToHome", "Link to Home page").
+        setURL("/xwiki/bin/view/Main/")
+  	) ;
+	//click on Add Comment link
+    addWebUnit(
+        new ClickLinkWithText("ClickAddComment", "Click on 'Add comment'").
+        setTextLink("Add comment").
+        addValidator(new ExpectTextValidator("New Comment"))
+    ) ;
+	//click on Add an attachment link ()
+    addWebUnit(
+        new ClickLinkWithText("ClickAddAnAttachment", "Click on 'Add an attachment'").
+        setTextLink("Add an attachment").
+        addValidator(new ExpectTextValidator("Filename"))
+    ) ;
+	//click on History link (it connect to another window that has no base link so make it the latest)
+    addWebUnit(
+        new ClickLinkWithText("ClickHistory", "Click on 'History'").
+        setTextLink("History").
+        addValidator(new ExpectTextValidator("Document History"))
+    ) ;
+	//PDF link is not supported to test by WebUnit
+	//click on 'more actions' then on 'Code'
+    addWebUnit(
+        new ClickLinkWithText("ClickMoreActions", "Click on 'More Actions'").
+        setTextLink("More Actions")
+    ) ;
+    addWebUnit(
+        new ClickLinkWithText("ClickCode", "Click on 'Code'").
+        setTextLink("Code")
+    );
+    //click on 'more actions' then on 'Xwiki syntax'
+    addWebUnit(
+        new ClickLinkWithText("ClickMoreActions", "Click on 'More Actions'").
+        setTextLink("More Actions")
+    ) ;
+    addWebUnit(
+        new ClickLinkWithText("ClickXwikiSyntax", "Click on 'Xwiki Syntax'").
+        setTextLink("Xwiki Syntax").
+        addValidator(new ExpectTextValidator("XWiki Syntax"))
+    );
+	//view user profile
+	addWebUnit(
+        new ClickLinkWithText("ViewUSerProfile", "View an user profile").
+        setTextLink("Xwiki Admin").       
+        addValidator(new ExpectTextValidator("User Profile"))
+    );
+    addWebSuite(new XwikiLogoutSuite());
+  }
+ 	public java.util.List getRequiredSuites() {
+   	String[] roles = ["admin"] ;
+   	return [new XwikiLoginSuite("admin","admin",roles)] ;
+ 	}
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkAdminPage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkAdminPage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkAdminPage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,113 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.adminLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+public class XwikiCheckLinkAdminPage extends WebUnitSuite {
+  static String DESC = "Go to admin page and click on links" ;
+  static String NAME = "XwikiCheckLinkAdminPage" ;
+  String COMMENT = null;
+  
+  public XwikiCheckLinkAdminPage() {
+    super(NAME, DESC) ;
+		init("/Admin") ;		
+	}
+	public void  init(path) {
+
+	//click on users link on User Administration
+	goToPage(path) ;
+	addWebUnit(
+        new ClickURLLinkUnit("ClickUsers", "Link to users on User Administration").
+        setURL("/xwiki/bin/view/XWiki/XWikiUsers").
+	    addValidator(new ExpectTextValidator("Users"))
+  	) ;
+	//click on groups link on User Administration
+	goToPage(path) ;
+	addWebUnit(
+        new ClickURLLinkUnit("ClickGroups", "Link to groups on User Administration").
+        setURL("/xwiki/bin/view/XWiki/XWikiGroups").
+		addValidator(new ExpectTextValidator("Current XWiki Groups"))
+  	) ;
+
+	//click on Categories link on Blog
+	goToPage(path) ;
+	addWebUnit(
+        new ClickURLLinkUnit("ClickCategories", "Link to Categories on Blog").
+        setURL("/xwiki/bin/view/Blog/Categories").
+		addValidator(new ExpectTextValidator("Categories"))
+  	) ;		
+    COMMENT ="Article Sheet show code on screen";
+	addWebUnit(
+	    new TODO("ArticleSheetCodeOnScreen(not comment out)!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+	//click on Article Sheet link on Blog
+	goToPage(path) ;
+	addWebUnit(
+        new ClickURLLinkUnit("ClickArticleSheet", "Link to Article Sheet on Blog").
+        setURL("/xwiki/bin/view/XWiki/ArticleClassSheet")
+  	) ;
+
+    //click on Article Template link on Blog
+	goToPage(path) ;
+	addWebUnit(
+        new ClickURLLinkUnit("ClickArticleTemplate", "Link to Article Template on Blog").
+        setURL("/xwiki/bin/view/XWiki/ArticleClassTemplate")
+  	) ;
+    COMMENT ="Photo Album Sheet show code on screen";
+	addWebUnit(
+	    new TODO("PhotoAlbumSheetCodeOnScreen(not comment out)!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+	//click on Photo Album Sheet link on Photos (show code on screen)
+	goToPage(path) ;
+	addWebUnit(
+        new ClickURLLinkUnit("ClickPhotoAlbumSheet", "Link to Photo Album Sheet on Photos").
+        setURL("/xwiki/bin/view/XWiki/PhotoAlbumClassSheet")
+  	) ;
+    //click on Photo Album Template link on Photos
+	goToPage(path) ;
+	addWebUnit(
+        new ClickURLLinkUnit("ClickPhotoAlbumTemplate", "Link to Photo Album Template on Photos").
+        setURL("/xwiki/bin/view/XWiki/PhotoAlbumClassTemplate")
+  	) ;
+
+	//click on Menu link on Presentation
+	goToPage(path) ;
+	addWebUnit(
+        new ClickURLLinkUnit("ClickMenu", "Link to Menu on Presentation").
+        setURL("/xwiki/bin/view/XWiki/Menu")
+  	) ;
+    //click on Toolbar link on Presentation
+	goToPage(path) ;
+	addWebUnit(
+        new ClickURLLinkUnit("ClickToolbar", "Link to Toolbar on Presentation").
+        setURL("/xwiki/bin/view/XWiki/Toolbar")
+  	) ;
+    //click on Skin link on Presentation
+	goToPage(path) ;
+	addWebUnit(
+        new ClickURLLinkUnit("ClickSkin", "Link to Skin on Presentation").
+        setURL("/xwiki/bin/view/XWiki/MySkin")
+  	) ;
+
+  }
+ 	public java.util.List getRequiredSuites() {
+   	    String[] roles = ["admin"] ;
+   	    return [new XwikiLoginSuite("admin","admin",roles)] ;	
+ 	}
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkBlogPage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkBlogPage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkBlogPage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,88 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.adminLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiCreateAccountSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+public class XwikiCheckLinkBlogPage extends WebUnitSuite {
+  static String DESC = "Go to Blog page and click on links" ;
+  static String NAME = "XwikiCheckLinkBlogPage" ;
+  String COMMENT = null;
+  public XwikiCheckLinkBlogPage() {
+    super(NAME, DESC) ;
+		init("/Blog") ;		
+	}
+	public void  init(path) {
+	//click on Comment link on Launch of XWiki
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickCommentLaunchOfXWiki", "Link to add comment form").
+        setURL("/xwiki/bin/view/Main/LaunchOfXWiki?xpage=comments")
+  	) ;
+    //click on continue reading link or permalink on Launch of XWiki
+    goToPage(path) ; 
+	addWebUnit(
+        new ClickURLLinkUnit("ClickPermalinkLaunchOfXWiki", "Link to continue reading on Launch of XWiki").
+        setURL("/xwiki/bin/view/Main/LaunchOfXWiki").
+		addValidator(new ExpectTextValidator("Launch of XWiki"))
+  	) ;
+    //click on Comment link on Another Article
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickCommentAnotherArticle", "Link to add comment form").
+        setURL("/xwiki/bin/view/Blog/TestArticle?xpage=comments")
+  	) ;
+    //click on continue reading link or permalink on Another Article
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickPermalinkAnotherArticle", "Link to continue reading on Another Article").
+        setURL("/xwiki/bin/view/Blog/TestArticle").
+		addValidator(new ExpectTextValidator("Another Article"))
+  	) ;
+    //click on Comment link on RSS Feed
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickCommentRSSFeed", "Link to add comment form").
+        setURL("/xwiki/bin/view/Main/FilsRss?xpage=comments")
+  	) ;
+  	goToPage(path);
+  	COMMENT ="run well but wrong result screen";
+	addWebUnit(
+	    new TODO("PermalinkGoToCommentForm!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+    //click on permalink on RSS Feed 
+    goToPage(path);
+    addWebUnit(
+        new ClickURLLinkUnit("ClickPermalinkRSSFeed", "Link to RSS Feed").
+        setURL("/xwiki/bin/view/Main/FilsRss").
+	    addValidator(new ExpectTextValidator("RSS Feed"))
+  	) ;
+    */
+	//click on Xwiki admin link
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickXwikiAdmin", "Link to user profile of admin").
+        setURL("/xwiki/bin/view/XWiki/Admin").
+		addValidator(new ExpectTextValidator("User Profile"))
+  	) ;
+  }
+    public java.util.List getRequiredSuites() {
+        String[] roles = ["admin"] ;
+        return [new XwikiLoginSuite("admin", "admin", roles)] ;
+    }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkDocPage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkDocPage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkDocPage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,56 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.adminLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiCreateAccountSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+public class XwikiCheckLinkDocPage extends WebUnitSuite {
+  static String DESC = "Go to Doc page and click on links" ;
+  static String NAME = "XwikiCheckLinkDocPage" ;
+  String COMMENT = null;
+  
+  public XwikiCheckLinkDocPage() {
+    super(NAME, DESC) ;
+		init("/Doc") ;		
+	}
+	public void  init(path) {
+	goToPage(path);
+	COMMENT ="this link has the same text with a link and has the same URL with another so they confound WUT";
+	addWebUnit(
+	    new TODO("ConfoundedSameTextLinkAndURL!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+    //click to see admin function but go to admin profile
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickAdministrationFunction", "Link to see admin function").
+        setURL("/xwiki/bin/view/XWiki").
+		addValidator(new ExpectTextValidator("Administration"))
+  	) ;
+    */
+	//click on search page link
+	addWebUnit(
+    	new ClickLinkWithText("ClickSearchPageLink", "Link to search pages'").
+        setTextLink("search page").
+		addValidator(new ExpectTextValidator("Search on this Wiki"))
+    );
+	}
+ 	public java.util.List getRequiredSuites() {
+        String[] roles = ["admin"] ;
+        return [new XwikiLoginSuite("admin", "admin", roles)] ;
+    }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkEventCalendarPage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkEventCalendarPage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkEventCalendarPage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,69 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.adminLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiCreateAccountSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+public class XwikiCheckLinkEventCalendarPage extends WebUnitSuite {
+  static String DESC = "Go to Event Calendar page and click on links" ;
+  static String NAME = "XwikiCheckLinkEventCalendarPage" ;
+  String COMMENT = null;
+  
+  public XwikiCheckLinkEventCalendarPage() {
+    super(NAME, DESC) ;
+		init("/Event Calendar") ;		
+	}
+	public void  init(path) {
+	goToPage(path);
+	COMMENT ="Previous Month link and Next Month link wrong after some times";
+	addWebUnit(
+	    new TODO("WrongShowMonth!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+    //click on Previous Month
+	goToPage(path);
+	addWebUnit(
+    	new ClickLinkWithText("ClickPreviousMonth", "Link to Previous Month'").
+        setTextLink("Previous Month")
+    );
+    //click on Next Month
+	//goToPage(path);
+	addWebUnit(
+    	new ClickLinkWithText("ClickNextMonth", "Link to Next Month'").
+        setTextLink("Next Month")
+    );
+    */
+    //click on edit object
+
+	addWebUnit(
+    	new ClickLinkWithText("ClickEditOject", "Link to edit object'").
+        setTextLink("edit object").
+		addValidator(new ExpectTextValidator("Welcome to the objects editor. Choose an object to edit or add an object to the document."))
+    );
+    goToPage(path);
+    COMMENT ="NoFormIdToAddEvent";
+	addWebUnit(
+	    new TODO("NoFormIdToAddEvent!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+  }
+ 	public java.util.List getRequiredSuites() {
+        String[] roles = ["admin"] ;
+        return [new XwikiLoginSuite("admin", "admin", roles)] ;
+    }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkHomePage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkHomePage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkHomePage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,105 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.adminLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiCreateAccountSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+public class XwikiCheckLinkHomePage extends WebUnitSuite {
+  static String DESC = "Go to main page and click on links" ;
+  static String NAME = "XwikiCheckLinkHomePage" ;
+  String COMMENT = null;
+    public XwikiCheckLinkHomePage() {
+        super(NAME, DESC) ;
+		init("/Home") ;		
+	}
+	public void  init(path) {
+    goToPage(path) ;  
+    COMMENT ="Not support connect to other pages";
+	addWebUnit(
+	    new TODO("WUTNotSupportConnectOtherPages!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /* 
+	addWebUnit(
+        new ClickURLLinkUnit("ClickXWikiBlog", "Link to XWiki Blog page").
+        setURL("http://www.xwiki.com/xwiki/bin/view/Blog/WebHome").
+		addValidator(new ExpectTextValidator("Welcome to the XWiki Blog"))
+  	) ;
+	addWebUnit(
+        new ClickLinkWithText("ClickXWikiBlog", "Link to XWiki Blog page").
+        setTextLink("XWiki Blog").
+        addValidator(new ExpectTextValidator("Welcome to the XWiki Blog"))
+    ) ;
+    */
+    //click on continue reading link or permalink on Launch of XWiki
+	addWebUnit(
+        new ClickURLLinkUnit("ClickPermalinkLaunchOfXWiki", "Link to continue reading on Launch of XWiki").
+        setURL("/xwiki/bin/view/Main/LaunchOfXWiki").
+		addValidator(new ExpectTextValidator("Launch of XWiki"))
+  	) ;
+    //click on continue reading link or permalink on Another Article
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickPermalinkAnotherArticle", "Link to continue reading on Another Article").
+        setURL("/xwiki/bin/view/Blog/TestArticle").
+		addValidator(new ExpectTextValidator("Another Article"))
+  	) ;
+	//click on Xwiki admin link
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickXwikiAdmin", "Link to user profile of admin").
+        setURL("/xwiki/bin/view/XWiki/Admin").
+		addValidator(new ExpectTextValidator("User Profile"))
+  	) ;
+	//click on Comment link on Launch of XWiki
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickCommentLaunchOfXWiki", "Link to add comment form").
+        setURL("/xwiki/bin/view/Main/LaunchOfXWiki?xpage=comments")
+  	) ;
+	//click on Comment link on Another Article
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickCommentAnotherArticle", "Link to add comment form").
+        setURL("/xwiki/bin/view/Blog/TestArticle?xpage=comments")
+  	) ;
+	//click on Comment link on RSS Feed
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickCommentRSSFeed", "Link to add comment form").
+        setURL("/xwiki/bin/view/Main/FilsRss?xpage=comments")
+  	) ;
+  	goToPage(path);
+  	COMMENT ="run well but wrong result screen";
+	addWebUnit(
+	    new TODO("PermalinkGoToCommentForm!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+	//click on permalink on RSS Feed
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickPermalinkRSSFeed", "Link to RSS Feed").
+        setURL("/xwiki/bin/view/Main/FilsRss")
+  	) ;
+  	*/
+	}
+ 	public java.util.List getRequiredSuites() {
+        String[] roles = ["admin"] ;
+        return [new XwikiLoginSuite("admin", "admin", roles)] ;
+    }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkKnowledgeBasePage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkKnowledgeBasePage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkKnowledgeBasePage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,49 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.adminLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiCreateAccountSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+public class XwikiCheckLinkKnowledgeBasePage extends WebUnitSuite {
+  static String DESC = "Go to Knowledge Base page and click on links" ;
+  static String NAME = "XwikiCheckLinkKnowledgeBasePage" ;
+  
+  public XwikiCheckLinkKnowledgeBasePage() {
+    super(NAME, DESC) ;
+		init("/Knowledge Base") ;		
+	}
+	public void  init(path) {
+    goToPage(path) ;  
+	//click on ExampleLink1
+	addWebUnit(
+        new ClickURLLinkUnit("ClickExampleLink1", "Link to ExampleLink1").
+        setURL("/xwiki/bin/view/Main/ExampleLink1")
+  	) ;
+	//click on ExampleLink2
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickExampleLink2", "Link to ExampleLink2").
+        setURL("/xwiki/bin/edit/Main/Example+Link+2?parent=Main.KnowledgeBase")		
+  	) ;
+  	addWebUnit(
+        new ClickURLLinkUnit("GoHome", "Link to Home page").
+        setURL("/xwiki/bin/view/Main/")		
+  	) ;
+	}
+ 	public java.util.List getRequiredSuites() {
+        String[] roles = ["admin"] ;
+        return [new XwikiLoginSuite("admin", "admin", roles)] ;
+    }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkPhotoAlbumsPage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkPhotoAlbumsPage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkPhotoAlbumsPage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,71 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.adminLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiCreateAccountSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+public class XwikiCheckLinkPhotoAlbumsPage extends WebUnitSuite {
+  static String DESC = "Go to Photo Albums page and click on links" ;
+  static String NAME = "XwikiCheckLinkPhotoAlbumsPage" ;
+  String COMMENT = null;
+  
+  public XwikiCheckLinkPhotoAlbumsPage() {
+    super(NAME, DESC) ;
+		init("/Photo Albums") ;		
+  }
+  public void  init(path) {
+    //click on Seychelles1999
+	goToPage(path);
+	addWebUnit(
+    	new ClickLinkWithText("ClickSeychelles1999", "Link to Seychelles1999'").
+        setTextLink("Seychelles1999")
+    );
+    //click on Vietnam 2001
+	goToPage(path);
+	addWebUnit(
+    	new ClickLinkWithText("ClickVietnam2001", "Link to Vietnam 2001'").
+        setTextLink("Vietnam 2001")
+    );
+    //click on Cat Photo Album
+	goToPage(path);
+	addWebUnit(
+    	new ClickLinkWithText("ClickCatPhotoAlbum", "Link to Cat Photo Album'").
+        setTextLink("Cat Photo Album")
+    );
+    goToPage(path);
+    COMMENT ="2 same form id, 2 same text field";
+	addWebUnit(
+	    new TODO("SameFormIdNoEffectCreateAlbum!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+	//set name and create new album (2 same form id, 2 same text field, run but wrong result screen)
+
+	addWebUnit(
+        new SubmitFormUnit("TypeNameAndAddAlbum", "Add this album").
+        setFormId("newdoc").
+        setAction("../../Photos/").
+        setField("title","my test album")
+        //addValidator(new ExpectTextValidator("You are not allowed to view this document or perform this action."))
+        //addValidator(new ExpectFormIdValidator("edit"))
+    ) ;
+    */
+	}
+ 	public java.util.List getRequiredSuites() {
+        String[] roles = ["admin"] ;
+        return [new XwikiLoginSuite("admin", "admin", roles)] ;
+    }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkPresentationsPage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkPresentationsPage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkPresentationsPage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,85 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.adminLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiCreateAccountSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+public class XwikiCheckLinkPresentationsPage extends WebUnitSuite {
+  static String DESC = "Go to Presentations page and click on links" ;
+  static String NAME = "XwikiCheckLinkPresentationsPage" ;
+  String COMMENT = null;
+  
+  public XwikiCheckLinkPresentationsPage() {
+    super(NAME, DESC) ;
+		init("/Presentations") ;		
+	}
+	public void  init(path) {   
+    goToPage(path);
+    COMMENT ="AddPresentationStrangeResult";
+	addWebUnit(
+	    new TODO("AddPresentationStrangeResult!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+	//set name and create a presentation (2 same form id)
+	goToPage(path);
+	addWebUnit(
+        new SubmitFormUnit("TypeNameAndAddPresentation", "Add this presentation").
+        setFormId("newdoc").
+        setAction("../../inline/Demo/Name of your presentation").
+        setField("name","my test presentation").
+        addValidator(new ExpectFormIdValidator("edit"))
+    ) ;
+    addWebUnit(
+        new ClickURLLinkUnit("BackToHome", "Back to home page").
+        setURL("/xwiki/bin/view/Main/")
+  	) ;
+  	*/
+	//click on preview to see existing presentation
+
+	addWebUnit(
+        new ClickLinkWithText("ClickPreview", "Click on preview").
+        setTextLink("Preview").
+        addValidator(new ExpectTextValidator("Presentation"))
+    );
+	//click on edit to modify existing presentation
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickEdit", "Click on edit").
+        setURL("/xwiki/bin/inline/Main/WhatIsAWiki").
+		addValidator(new ExpectFormIdValidator("edit"))
+  	) ;
+  	goToPage(path);
+  	COMMENT ="WUT cannot click on launch";
+	addWebUnit(
+	    new TODO("WUTCanNotClickLaunch!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+  	//click on launch
+
+	addWebUnit(
+        new ClickURLLinkUnit("ClickLaunch", "Click on launch").
+        setURL("/xwiki/bin/view/Main/WhatIsAWiki?xpage=s5b")
+  	) ;
+  	*/ 	
+	}
+ 	public java.util.List getRequiredSuites() {
+        String[] roles = ["admin"] ;
+        return [new XwikiLoginSuite("admin", "admin", roles)] ;
+    }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkWhatNewPage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkWhatNewPage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/adminLink/XwikiCheckLinkWhatNewPage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,58 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.adminLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiCreateAccountSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+public class XwikiCheckLinkWhatNewPage extends WebUnitSuite {
+  static String DESC = "Go to WhatNew page and click on links" ;
+  static String NAME = "XwikiCheckLinkWhatNewPage" ;
+  String COMMENT = null;
+  
+  public XwikiCheckLinkWhatNewPage() {
+    super(NAME, DESC) ;
+		init("/What's New") ;		
+  }
+	public void  init(path) {
+	goToPage(path) ;
+	COMMENT ="Wrong function";
+	addWebUnit(
+	    new TODO("ViewChangeIsWrong!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+    //click to view change
+	addWebUnit(
+        new ClickURLLinkUnit("ClickViewChange", "Link to view change").
+        setURL("/xwiki/bin/view/Main/WhatsNew?diff=1")
+  	) ;	
+    */
+    addWebSuite(new XwikiCreateAccountSuite()) ;
+    String[] roles = ["user"] ;
+    addWebSuite(new XwikiLoginSuite("#{client.name}", "#{client.name}", roles)) ;
+    //check exist of new user link
+    goToPage(path) ;
+	addWebUnit(
+        new ClickURLLinkUnit("ClickCurrentUser", "Click to see current user profile").
+        setURL("/xwiki/bin/view/XWiki/#{client.name}").
+	    addValidator(new ExpectTextValidator("User Profile"))
+  	) ;
+    }
+ 	public java.util.List getRequiredSuites() {
+        String[] roles = ["admin"] ;
+        return [new XwikiLoginSuite("admin", "admin", roles)] ;
+    }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/control/XwikiTestCategories.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/control/XwikiTestCategories.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/control/XwikiTestCategories.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,63 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.control;
+
+import org.exoplatform.webunit.webui.*;
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+public class XwikiTestCategories extends org.exoplatform.webunit.webui.TestCategories {
+
+  public XwikiTestCategories() {    
+    List categories = getCategories() ;
+    TestCategoryDescription category = new TestCategoryDescription("User Check Link Suites") ;    
+	category.addSuite(new TestSuiteDescription("suites.xwiki.runner.XwikiUserCheckLinkSuites", "Xwiki User Check Link Suites")) ;
+    categories.add(category) ;
+
+    category = new TestCategoryDescription("Admin Check Link Suites") ;
+	category.addSuite(new TestSuiteDescription("suites.xwiki.runner.XwikiAdminCheckLinkSuites", "Xwiki Admin Check Link Suites")) ;
+    categories.add(category) ;
+
+    category = new TestCategoryDescription("Account Suite") ;
+    category.addSuite(new TestSuiteDescription("suites.xwiki.share.XwikiLoginSuite", "Xwiki Login Suite")) ;
+    category.addSuite(new TestSuiteDescription("suites.xwiki.share.XwikiCreateAccountSuite", "Xwiki Create Account Suite")) ;
+    category.addSuite(new TestSuiteDescription("suites.xwiki.account.XwikiCheckLoginSuite", "Xwiki Check Login Suite")) ;
+    category.addSuite(new TestSuiteDescription("suites.xwiki.account.XwikiCheckCreateAccountSuite", "Xwiki Check Create Account Suite")) ;
+    category.addSuite(new TestSuiteDescription("suites.xwiki.account.XwikiCheckAccountSuite", "Xwiki Check Account Suite (wrong logout)")) ;
+    categories.add(category) ;
+
+    category = new TestCategoryDescription("User Check Link Suite") ;
+	category.addSuite(new TestSuiteDescription("suites.xwiki.userLink.XwikiUserCheckLinkMainPage", "Xwiki USer Check All Link Main Page Suite (Wrong Log-out)")) ;
+	category.addSuite(new TestSuiteDescription("suites.xwiki.userLink.XwikiCheckLinkHomePage", "Xwiki Check All Link In Home Page Suite"));
+	category.addSuite(new TestSuiteDescription("suites.xwiki.userLink.XwikiCheckLinkBlogPage", "Xwiki Check All Link In Blog Page Suite (result screen ?)"));
+	category.addSuite(new TestSuiteDescription("suites.xwiki.userLink.XwikiCheckLinkKnowledgeBasePage", "Xwiki Check All Link In Knowledge Base Page Suite"));
+	category.addSuite(new TestSuiteDescription("suites.xwiki.userLink.XwikiCheckLinkWhatNewPage", "Xwiki Check All Link In What New Page Suite (wrong function)"));
+	category.addSuite(new TestSuiteDescription("suites.xwiki.userLink.XwikiCheckLinkDocPage", "Xwiki Check All Link In Doc Page Suite (same text and same link)"));
+	category.addSuite(new TestSuiteDescription("suites.xwiki.userLink.XwikiCheckLinkPhotoAlbumsPage", "Xwiki Check All Link In Photo Albums Page Suite (same form id, same field name)"));
+	category.addSuite(new TestSuiteDescription("suites.xwiki.userLink.XwikiCheckLinkEventCalendarPage", "Xwiki Check All Link In Event Calendar Page Suite (no id to check add event)"));
+	category.addSuite(new TestSuiteDescription("suites.xwiki.userLink.XwikiCheckLinkPresentationsPage", "Xwiki Check All Link In Presentations Page Suite"));
+	categories.add(category) ;
+
+	category = new TestCategoryDescription("Admin Check Link Suite") ;
+	category.addSuite(new TestSuiteDescription("suites.xwiki.adminLink.XwikiAdminCheckLinkMainPage", "Xwiki Admin Check All Link Main Page Suite (Wrong Log-out)")) ;
+	category.addSuite(new TestSuiteDescription("suites.xwiki.adminLink.XwikiCheckLinkAdminPage", "Xwiki Check All Link In Admin Page Suite"));
+	category.addSuite(new TestSuiteDescription("suites.xwiki.adminLink.XwikiCheckLinkHomePage", "Xwiki Check All Link In Home Page Suite"));
+	category.addSuite(new TestSuiteDescription("suites.xwiki.adminLink.XwikiCheckLinkBlogPage", "Xwiki Check All Link In Blog Page Suite (result screen ?)"));
+	category.addSuite(new TestSuiteDescription("suites.xwiki.adminLink.XwikiCheckLinkKnowledgeBasePage", "Xwiki Check All Link In Knowledge Base Page Suite"));
+	category.addSuite(new TestSuiteDescription("suites.xwiki.adminLink.XwikiCheckLinkWhatNewPage", "Xwiki Check All Link In What New Page Suite (wrong function)"));
+	category.addSuite(new TestSuiteDescription("suites.xwiki.adminLink.XwikiCheckLinkDocPage", "Xwiki Check All Link In Doc Page Suite (same text and same link)"));
+	category.addSuite(new TestSuiteDescription("suites.xwiki.adminLink.XwikiCheckLinkPhotoAlbumsPage", "Xwiki Check All Link In Photo Albums Page Suite (same form id, same field name)"));
+	category.addSuite(new TestSuiteDescription("suites.xwiki.adminLink.XwikiCheckLinkEventCalendarPage", "Xwiki Check All Link In Event Calendar Page Suite (no id to check add event)"));
+	category.addSuite(new TestSuiteDescription("suites.xwiki.adminLink.XwikiCheckLinkPresentationsPage", "Xwiki Check All Link In Presentations Page Suite"));
+	categories.add(category) ;
+
+    category = new TestCategoryDescription("Edit Page Suite") ;
+	category.addSuite(new TestSuiteDescription("suites.xwiki.edit.XwikiEditPageSuite", "Xwiki Edit Page Suite(Wrong Edit Categories)")) ;
+	category.addSuite(new TestSuiteDescription("suites.xwiki.edit.XwikiNotAllowedEditSuite", "Xwiki Not Allow User Edit Suite (wrong add news)")) ;
+    categories.add(category) ;
+  } 
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/edit/XwikiEditPageSuite.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/edit/XwikiEditPageSuite.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/edit/XwikiEditPageSuite.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,143 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.edit;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiLogoutSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+
+public class XwikiEditPageSuite extends WebUnitSuite {
+  static String DESC = "Go to main page and check edit page" ;
+  static String NAME = "XwikiEditPageSuite" ;
+  String COMMENT = null;
+
+  public XwikiEditPageSuite() {
+    super(NAME, DESC) ;
+    init("/Home") ;
+	}
+	public void  init(path) {
+    goToPage(path) ;
+    COMMENT ="Add this news give really strange result";
+	addWebUnit(
+	    new TODO("AddThisNewsBROKEN!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+	addWebUnit(
+        new SubmitFormUnit("TypeTitleAndAddThisNews", "Add this news").
+        setFormId("newdoc").
+        setField("title","my test page").
+        setAction("../../inline/Main/")
+        //addValidator(new ExpectTextValidator("Enter your title here"))
+    ) ;
+
+    COMMENT ="Only search after adding id for form in screen, wrong if rollback database";
+	addWebUnit(
+	    new TODO("NoSearchFormId!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    */
+	//search
+    addWebUnit(
+        new SubmitFormUnit("SearchText", "Search a text").
+        setFormId("searchForm").
+        setField("text","test").
+        //xwiki/bin/view/Main/WebSearch
+        addValidator(new ExpectTextValidator("Search on this Wiki"))
+    ) ;
+
+	//click on Edit this Page link then click on Cancel
+	addWebUnit(
+        new ClickLinkWithText("ClickEditThisPage", "Click on 'Edit this Page'").
+        setTextLink("Edit this Page").
+        addValidator(new ExpectFormIdValidator("edit"))
+    );
+	addWebUnit(
+        new ClickLinkWithText("ClickCancel", "Click on 'Cancel'").
+        setTextLink("Cancel").
+        addValidator(new ExpectTextValidator("Welcome to your Wiki"))
+	);
+
+		//click on Edit this Page link, set value to title field then click on Preview and Save
+	addWebUnit(
+        new ClickLinkWithText("ClickEditThisPage", "Click on 'Edit this Page'").
+        setTextLink("Edit this Page").
+        addValidator(new ExpectFormIdValidator("edit"))
+    );
+		//preview
+	addWebUnit(
+        new SubmitFormUnit("EditAndPreview", "Edit Form").
+        setFormId("edit").
+        setAction("/xwiki/bin/preview/Main/WebHome").
+        setField("title","my name is Huyen")
+	);
+	COMMENT ="WUT parse string and leave out space so make content page wrong";
+	addWebUnit(
+	    new TODO("WrongSaveInWUT(not comment out)!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+	//wrong save
+	//save
+	addWebUnit(
+         new SubmitFormUnit("SaveForm", "SaveForm").
+         setFormId("edit").
+         setAction("/xwiki/bin/save/Main/WebHome")
+	);
+	COMMENT ="Edit categories shows code in screen";
+	addWebUnit(
+	    new TODO("EditCategoriesWrongInMyPC!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+    //click on Edit Categories then Cancel (when click on edit categories, it shows code in screen !!!)
+    addWebUnit(
+        new ClickLinkWithText("ClickEditCategories", "Click on 'Edit Categories'").
+        setTextLink("Edit Categories").
+        addValidator(new ExpectFormIdValidator("edit")).
+        addValidator(new ExpectTextValidator("Categories"))
+    ) ;
+	addWebUnit(
+        new ClickLinkWithText("ClickCancel", "Click on 'Cancel'").
+        setTextLink("Cancel").
+        addValidator(new ExpectNoTextValidator("Cancel"))
+    ) ;
+	//click on Edit Categories (it cannot find field, name of the field change )
+    addWebUnit(
+        new ClickLinkWithText("ClickEditCategories", "Click on 'Edit Categories'").
+        setTextLink("Edit Categories").
+        addValidator(new ExpectFormIdValidator("edit")).
+        addValidator(new ExpectTextValidator("Categories"))
+    ) ;
+	addWebUnit(
+        new SubmitFormUnit("EditAndClickPreview", "Edit Form").
+        setFormId("edit").
+		setField("Blog.Categories_0_name","test")
+		//setField("Blog.Categories_4_description","test")//Blog.Categories_6_description
+	);
+	addWebUnit(
+        new SubmitFormUnit("SaveForm", "Save Form").
+        setFormId("edit").
+		addValidator(new ExpectTextValidator("test"))
+	);
+	*/
+  }
+  public java.util.List getRequiredSuites() {
+	String[] roles = ["admin"] ;    
+    return [new XwikiLoginSuite("admin","admin",roles)] ;
+  }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/edit/XwikiNotAllowedEditSuite.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/edit/XwikiNotAllowedEditSuite.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/edit/XwikiNotAllowedEditSuite.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,95 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.edit;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+public class XwikiNotAllowedEditSuite extends WebUnitSuite {
+  //static java.util.Date date = new java.util.Date() ;
+  //static String uid = date.toString() +  date.hashCode() ;
+
+  static String DESC = "Go to main page and check edit page" ;
+  static String NAME = "XwikiNotAllowedEditSuite" ;
+  String COMMENT = null;
+
+  public XwikiNotAllowedEditSuite() {
+    super(NAME, DESC) ;
+
+	//create new name page then click on 'Add this news'
+	addWebUnit(
+        new SubmitFormUnit("TypeTitleAndAddThisNews", "Add this news").
+        setFormId("newdoc").
+        setField("title","my test page").
+        setAction("../../inline/Main/").
+        addValidator(new ExpectTextValidator("You are not allowed to view this document or perform this action."))        
+    ) ;
+    //go back home
+    addWebUnit(
+        new ClickURLLinkUnit("GoHome", "Link to Home").
+        setURL("/xwiki/bin/view/Main/")
+  	) ;
+	//click on icon to edit menu
+	addWebUnit(
+      	new ClickURLLinkUnit("ClickEditMenu", "Click on icon to edit menu").
+      	setURL("/xwiki/bin/edit/XWiki/Menu").
+		addValidator(new ExpectTextValidator("You are not allowed to view this document or perform this action."))
+  	) ;
+    //go back home
+    addWebUnit(
+        new ClickURLLinkUnit("GoHome", "Link to Home").
+        setURL("/xwiki/bin/view/Main/")
+  	) ;
+  	COMMENT ="Edit categories shows code on screen";
+	addWebUnit(
+	    new TODO("EditCategoriesCodeInScreen(only my pc)!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+  	//click on 'Edit Categories' link
+	addWebUnit(
+      	new ClickURLLinkUnit("ClickEditCategories", "Click on icon to edit Categories").
+      	setURL("/xwiki/bin/inline/Blog/Categories").
+		addValidator(new ExpectTextValidator("You are not allowed to view this document or perform this action."))
+  	) ;
+	//Click on 'Add a category' link
+	addWebUnit(
+        new ClickLinkWithText("ClickAddCategory", "Click on 'Add a category' link").
+        setTextLink("Add a category")
+    );
+    //go back home
+    addWebUnit(
+        new ClickURLLinkUnit("GoHome", "Link to Home").
+        setURL("/xwiki/bin/view/Main/")
+  	) ;
+  	*/
+    //click on icon to edit toolbar
+	addWebUnit(
+      	new ClickURLLinkUnit("ClickEditToolbar", "Click on icon to edit toolbar").
+      	setURL("/xwiki/bin/edit/XWiki/Toolbar").
+		addValidator(new ExpectTextValidator("You are not allowed to view this document or perform this action."))
+  	) ;
+  	/*
+    //go back home
+    addWebUnit(
+        new ClickURLLinkUnit("GoHome", "Link to Home").
+        setURL("/xwiki/bin/view/Main/")
+  	) ;
+  	*/
+  }
+ 	public java.util.List getRequiredSuites() {
+		String[] roles = ["user"] ;
+    return [new XwikiLoginSuite("test","test",roles)] ;
+    }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/runner/XwikiAdminCheckLinkSuites.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/runner/XwikiAdminCheckLinkSuites.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/runner/XwikiAdminCheckLinkSuites.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,40 @@
+/***************************************************************************
+ * Copyright 2001-2003 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.runner;
+
+import suites.xwiki.adminLink.*;
+import suites.xwiki.share.*;
+import suites.xwiki.account.*;
+import suites.xwiki.edit.*;
+
+import org.exoplatform.webunit.*;
+
+/**
+ * Created by The eXo Platform SARL
+ * Author : Hoa  Pham
+ *          hoapham at exoplatform.com,phamvuxuanhoa at yahoo.com
+ * Nov 8, 2005
+**/
+public class XwikiAdminCheckLinkSuites  extends TestSuites {
+  public XwikiAdminCheckLinkSuites() {
+
+  	String[] roles=["admin"];
+    addSuite(new XwikiLoginSuite("admin", "admin", roles)) ;
+    addSuite(new XwikiAdminCheckLinkMainPage()) ;
+    addSuite(new XwikiCheckLinkHomePage()) ;
+    addSuite(new XwikiCheckLinkBlogPage()) ;
+    addSuite(new XwikiCheckLinkKnowledgeBasePage()) ;
+    addSuite(new XwikiCheckLinkWhatNewPage()) ;
+    //check link in What New must login with an user
+    addSuite(new XwikiLoginSuite("admin", "admin", roles)) ;
+    addSuite(new XwikiCheckLinkAdminPage()) ;
+    addSuite(new XwikiCheckLinkDocPage()) ;
+    addSuite(new XwikiCheckLinkPhotoAlbumsPage()) ;
+    addSuite(new XwikiCheckLinkEventCalendarPage()) ;
+    addSuite(new XwikiCheckLinkPresentationsPage()) ;
+    //addSuite(new XwikiEditPageSuite());
+    addSuite(new XwikiLogoutSuite());
+  }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/runner/XwikiUserCheckLinkSuites.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/runner/XwikiUserCheckLinkSuites.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/runner/XwikiUserCheckLinkSuites.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,37 @@
+/***************************************************************************
+ * Copyright 2001-2003 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.runner;
+
+import suites.xwiki.userLink.*;
+import suites.xwiki.share.*;
+import suites.xwiki.account.*;
+import suites.xwiki.edit.*;
+
+import org.exoplatform.webunit.*;
+
+/**
+ * Created by The eXo Platform SARL
+ * Author : Hoa  Pham
+ *          hoapham at exoplatform.com,phamvuxuanhoa at yahoo.com
+ * Nov 8, 2005
+**/
+public class XwikiUserCheckLinkSuites  extends TestSuites {
+  public XwikiUserCheckLinkSuites() {
+    addSuite(new XwikiCreateAccountSuite());
+  	String[] roles=["user"];
+    addSuite(new XwikiLoginSuite("#{client.name}", "#{client.name}", roles)) ;
+    addSuite(new XwikiUserCheckLinkMainPage()) ;
+    addSuite(new XwikiCheckLinkHomePage()) ;
+    addSuite(new XwikiCheckLinkBlogPage()) ;
+    addSuite(new XwikiCheckLinkKnowledgeBasePage()) ;
+    addSuite(new XwikiCheckLinkWhatNewPage()) ;
+    addSuite(new XwikiCheckLinkDocPage()) ;
+    addSuite(new XwikiCheckLinkPhotoAlbumsPage()) ;
+    addSuite(new XwikiCheckLinkEventCalendarPage()) ;
+    addSuite(new XwikiCheckLinkPresentationsPage()) ;
+    addSuite(new XwikiNotAllowedEditSuite());
+    addSuite(new XwikiLogoutSuite());            
+  }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/share/XwikiCommonUnit.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/share/XwikiCommonUnit.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/share/XwikiCommonUnit.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,91 @@
+/**************************************************************************
+ * Copyright 2001-2003 The eXo Platform SARL         All rights reserved. *
+ * Please look at license.txt in info directory for more license detail.  *
+ **************************************************************************/
+package suites.xwiki.share ;
+
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+/**  
+ * May 21, 2004
+ * @author: Tuan Nguyen
+ * @email:   tuan08 at users.sourceforge.net
+ * @version: $Id: CommonUnit.java,v 1.2 2004/10/21 15:21:49 tuan08 Exp $
+ **/
+public class XwikiCommonUnit extends WebUnitSuite {
+  
+  final static public WebUnit GO_HOME_UNIT =
+    new ClickURLLinkUnit("GoHome", "Link to Home page").
+    setURL("/xwiki/bin/view/Main/")
+    /*
+    new ClickLinkWithText("GoToHome", "Tell the web client click on the Home tab").
+    setTextLink("Home") ;
+     */
+
+  final static public WebUnit GO_BLOG_UNIT = 
+    new ClickLinkWithText("GoToBlog", "Tell the web client click on the Blog tab").
+    setTextLink("Blog") ;
+
+  final static public WebUnit GO_KNOWLEDGE_BASE_UNIT = 
+    new ClickLinkWithText("GoToKnowledgeBase", "Tell the web client click on the Knowledge Base tab").
+    setTextLink("Knowledge Base") ;
+
+  final static public WebUnit GO_WHAT'SNEW_UNIT = 
+    new ClickLinkWithText("GoToWhat'sNew", "Tell the web client click on the What's New tab").
+    setTextLink("What's New") ;
+
+  final static public WebUnit GO_SEARCH_UNIT = 
+    new ClickLinkWithText("GoToSearch", "Tell the web client click on the Search tab").
+    setTextLink("Search") ;
+
+  final static public WebUnit GO_ADMIN_UNIT = 
+    new ClickLinkWithText("GoToAdmin", "Tell the web client click on the Admin tab").
+    setTextLink("Admin") ;  
+
+  final static public WebUnit GO_DOC_UNIT = 
+    new ClickLinkWithText("GoToDoc", "Tell the web client click on the Doc tab").
+    setTextLink("Doc") ;  
+
+  final static public WebUnit GO_REGISTER_UNIT = 
+    new ClickLinkWithText("GoToRegister", "Tell the web client click on the Register tab").
+    setTextLink("Register") ;
+
+  final static public WebUnit GO_PHOTOALBUMS_UNIT = 
+    new ClickLinkWithText("GoToPhotoAlbums", "Tell the web client click on the Photo Albums link").
+    setTextLink("Photo Albums") ;
+
+  final static public WebUnit GO_EVENT_CALENDAR_UNIT = 
+    new ClickLinkWithText("GoToEventCalendar", "Tell the web client click on the Event Calendar link").
+    setTextLink("Event Calendar") ;
+
+  final static public WebUnit GO_PRESENTATION_UNIT = 
+    new ClickLinkWithText("GoToPresentation", "Tell the web client click on the Presentation link").
+    setTextLink("Presentation") ;
+
+  final static public WebUnit CLICK_NEWS = 
+  	new ClickURLLinkUnit("ClickNews", "Tell the web client click on News link").
+    setURL("/xwiki/bin/view/Blog/Category?category=News").    
+		addValidator(new ExpectTextValidator("Entries for category News"));
+
+  final static public WebUnit GO_PERSONAL_UNIT = 
+    new ClickLinkWithText("GoToPersonal", "Tell the web client click on the Personal link").
+    setTextLink("Personal") ;
+
+  final static public WebUnit GO_OTHER_UNIT = 
+    new ClickLinkWithText("GoToOther", "Tell the web client click on the Other link").
+    setTextLink("Other") ;
+
+  final static public WebUnit GO_PERSONAL_UNIT = 
+    new ClickLinkWithText("GoToPersonal", "Tell the web client click on the Personal link").
+    setTextLink("Personal") ;
+
+  static public void addClickUnits(WebUnitSuite suite , String path) {
+    String[] links = path.split("/") ;
+    for(text  in  links) {
+      suite.addWebUnit(new ClickLinkWithText("Click:" + text, "Go to " + text + "page").
+                      setTextLink(text)) ;
+    }
+  }
+	
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/share/XwikiCreateAccountSuite.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/share/XwikiCreateAccountSuite.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/share/XwikiCreateAccountSuite.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,67 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.share;
+
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+
+public class XwikiCreateAccountSuite extends WebUnitSuite {
+  static String DESC = "Go to xwiki register page and create an account" ;
+  static String NAME = "XwikiCreateAccountSuite" ;
+  public XwikiCreateAccountSuite() {    
+    super(NAME, DESC) ;
+    addWebUnit(
+        new NewSessionUnit("NewSession", "Create new session and go to the home page for the first time")      
+    );
+    addWebUnit(
+        new ClickLinkWithText("Register", "Click on 'register'").
+        setTextLink("register").
+        addValidator(new ExpectFormIdValidator("register"))
+    ) ;  
+ 	addWebUnit(
+     	new SubmitFormUnit("CreateNewAccount", "Create xwiki account").
+      	setFormId("register").
+		setField("register_first_name", "#{client.name}").
+      	setField("register_last_name", "#{client.name}").
+      	setField("xwikiname", "#{client.name}").
+    	setField("register_email", "user at localhost.net").
+	    setField("register_password", "#{client.name}").
+  	    setField("register2_password", "#{client.name}").
+  	    setField("register_company", "#{client.name}").
+  	    setField("register_city", "#{client.name}").
+  	    setField("register_country", "#{client.name}").
+  	    setField("register_blog", "#{client.name}").
+  	    setField("register_blogfeed", "#{client.name}").
+  	    setField("register_comment", "#{client.name}")
+  	    //addValidator(new ExpectTextValidator("The user '#{client.name}' has been correctly registered."))
+    ) ;    
+  }  
+  	static WebUnit createNewAccountUnit(String userName , String password) {
+    WebUnit unit =
+      	setFormId("register").
+		setField("register_first_name", "#{client.name}").
+  	    setField("register_last_name", "#{client.name}").
+  	    setField("xwikiname", "#{client.name}").
+  	    setField("register_email", "user at localhost.net").
+  	    setField("register_password", "#{client.name}").
+  	    setField("register2_password", "#{client.name}").
+  	    setField("register_company", "#{client.name}").
+  	    setField("register_city", "#{client.name}").
+  	    setField("register_country", "#{client.name}").
+  	    setField("register_blog", "#{client.name}").
+  	    setField("register_blogfeed", "#{client.name}").
+  	    setField("register_comment", "#{client.name}")
+  	    //addValidator(new ExpectTextValidator("The user '#{client.name}' has been correctly registered."))
+  	  	return unit ;  	
+  	} 
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/share/XwikiLoginSuite.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/share/XwikiLoginSuite.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/share/XwikiLoginSuite.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,51 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.share;
+
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+public class XwikiLoginSuite extends WebUnitSuite {  
+  public XwikiLoginSuite() {
+    super("XwikiLoginSuite",  "Go to the home page and login, using web client name for user name and password") ;
+    String[] roles = ["user","admin"] ;
+    init("admin", "admin", roles) ;
+  }
+  public XwikiLoginSuite(String userName, String password, String[] roles) {
+    super("UserLoginSuite",  "Go to the home page and login, using web client name for user name and password") ;
+    init(userName, password, roles) ;
+  }
+  public void init(String userName, String password, String[] roles) {      
+	addWebUnit(
+        new NewSessionUnit("NewSession", "Create new session and go to the home page for the first time")      
+    );
+    addWebUnit(
+        new ClickLinkWithText("ClickLogin", "Click on 'Log-in'").
+        setTextLink("Log-in").
+        addValidator(new ExpectFormIdValidator("loginForm"))
+    ) ;
+    addWebUnit(
+        new SubmitFormUnit("LoginWithUsername", "Login with username").
+        setFormId("loginForm").
+        setField("j_username", userName).
+        setField("j_password", password).
+        addValidator(new ExpectTextValidator("Hello"))
+    ) ;
+/*
+	for(role in roles) {
+      addWebUnit(
+        new AddRoleUnit("AddRole: ${role}", "Add user role to the web client").
+        setRoleToAdd(role)
+      );
+    }
+*/
+  }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/share/XwikiLogoutSuite.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/share/XwikiLogoutSuite.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/share/XwikiLogoutSuite.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,34 @@
+package suites.xwiki.share ;
+
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * May 21, 2004
+ * @author: Tuan Nguyen
+ * @email:   tuan08 at users.sourceforge.net
+ **/
+
+public class XwikiLogoutSuite extends WebUnitSuite {
+  public XwikiLogoutSuite() {
+    super("XwikiLogoutSuite","Log out current page");
+	String COMMENT = null;
+    COMMENT ="WebUnit cannot catch 'logout' text link even URL";
+	addWebUnit(
+	    new TODO("WebUnitCannotCatch'Logout'LinkEvenURL!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+	addWebUnit(
+        new ClickLink("Logout", "Click on 'Log-out'").
+        setTextLink("Log-out").
+	    addValidator(new ExpectTextValidator("Log-in")).
+	    addValidator(new ExpectNoTextValidator("Hello"))
+    );
+    */
+  }
+}
+
+

Added: xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkBlogPage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkBlogPage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkBlogPage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,88 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.userLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiCreateAccountSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+public class XwikiCheckLinkBlogPage extends WebUnitSuite {
+  static String DESC = "Go to Blog page and click on links" ;
+  static String NAME = "XwikiCheckLinkBlogPage" ;
+  String COMMENT = null;
+  public XwikiCheckLinkBlogPage() {
+    super(NAME, DESC) ;
+		init("/Blog") ;		
+	}
+	public void  init(path) {
+	//click on Comment link on Launch of XWiki
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickCommentLaunchOfXWiki", "Link to add comment form").
+        setURL("/xwiki/bin/view/Main/LaunchOfXWiki?xpage=comments")
+  	) ;
+    //click on continue reading link or permalink on Launch of XWiki
+    goToPage(path) ; 
+	addWebUnit(
+        new ClickURLLinkUnit("ClickPermalinkLaunchOfXWiki", "Link to continue reading on Launch of XWiki").
+        setURL("/xwiki/bin/view/Main/LaunchOfXWiki").
+		addValidator(new ExpectTextValidator("Launch of XWiki"))
+  	) ;
+    //click on Comment link on Another Article
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickCommentAnotherArticle", "Link to add comment form").
+        setURL("/xwiki/bin/view/Blog/TestArticle?xpage=comments")
+  	) ;
+    //click on continue reading link or permalink on Another Article
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickPermalinkAnotherArticle", "Link to continue reading on Another Article").
+        setURL("/xwiki/bin/view/Blog/TestArticle").
+		addValidator(new ExpectTextValidator("Another Article"))
+  	) ;
+    //click on Comment link on RSS Feed
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickCommentRSSFeed", "Link to add comment form").
+        setURL("/xwiki/bin/view/Main/FilsRss?xpage=comments")
+  	) ;
+  	goToPage(path);
+  	COMMENT ="run well but wrong result screen";
+	addWebUnit(
+	    new TODO("PermalinkGoToCommentForm!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+    //click on permalink on RSS Feed (result screen is also add comment)
+    goToPage(path);
+    addWebUnit(
+        new ClickURLLinkUnit("ClickPermalinkRSSFeed", "Link to RSS Feed").
+        setURL("/xwiki/bin/view/Main/FilsRss").
+	    addValidator(new ExpectTextValidator("RSS Feed"))
+  	) ;
+    */
+	//click on Xwiki admin link
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickXwikiAdmin", "Link to user profile of admin").
+        setURL("/xwiki/bin/view/XWiki/Admin").
+		addValidator(new ExpectTextValidator("User Profile"))
+  	) ;
+  }
+    public java.util.List getRequiredSuites() {
+        String[] roles = ["user"] ;
+        return [new XwikiCreateAccountSuite(), new XwikiLoginSuite("#{client.name}", "#{client.name}", roles)] ;
+    }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkDocPage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkDocPage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkDocPage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,57 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.userLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiCreateAccountSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+public class XwikiCheckLinkDocPage extends WebUnitSuite {
+  static String DESC = "Go to Doc page and click on links" ;
+  static String NAME = "XwikiCheckLinkDocPage" ;
+  String COMMENT = null;
+  
+  public XwikiCheckLinkDocPage() {
+    super(NAME, DESC) ;
+		init("/Doc") ;		
+	}
+	public void  init(path) {
+	goToPage(path);
+	COMMENT ="this link has the same text with a link and has the same URL with another so they confound WUT";
+	addWebUnit(
+	    new TODO("ConfoundedSameTextLinkAndURL!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+    //click to see admin function but go to admin profile
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickAdministrationFunction", "Link to see admin function").
+        setURL("/xwiki/bin/view/XWiki").
+		addValidator(new ExpectTextValidator("Administration"))
+  	) ;
+    */
+	//click on search page link
+
+	addWebUnit(
+    	new ClickLinkWithText("ClickSearchPageLink", "Link to search pages'").
+        setTextLink("search page").
+		addValidator(new ExpectTextValidator("Search on this Wiki"))
+    );
+	}
+ 	public java.util.List getRequiredSuites() {
+        String[] roles = ["user"] ;
+        return [new XwikiCreateAccountSuite(), new XwikiLoginSuite("#{client.name}", "#{client.name}", roles)] ;
+    }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkEventCalendarPage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkEventCalendarPage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkEventCalendarPage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,69 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.userLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiCreateAccountSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+public class XwikiCheckLinkEventCalendarPage extends WebUnitSuite {
+  static String DESC = "Go to Event Calendar page and click on links" ;
+  static String NAME = "XwikiCheckLinkEventCalendarPage" ;
+  String COMMENT = null;
+  
+  public XwikiCheckLinkEventCalendarPage() {
+    super(NAME, DESC) ;
+		init("/Event Calendar") ;		
+	}
+	public void  init(path) {
+	goToPage(path);
+	COMMENT ="Previous Month link and Next Month link wrong after some times";
+	addWebUnit(
+	    new TODO("WrongShowMonth!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+    //click on Previous Month
+	goToPage(path);
+	addWebUnit(
+    	new ClickLinkWithText("ClickPreviousMonth", "Link to Previous Month'").
+        setTextLink("Previous Month")
+    );
+    //click on Next Month
+	//goToPage(path);
+	addWebUnit(
+    	new ClickLinkWithText("ClickNextMonth", "Link to Next Month'").
+        setTextLink("Next Month")
+    );
+    */
+    //click on edit object
+
+	addWebUnit(
+    	new ClickLinkWithText("ClickEditOject", "Link to edit object'").
+        setTextLink("edit object").
+		addValidator(new ExpectTextValidator("Welcome to the objects editor. Choose an object to edit or add an object to the document."))
+    );
+    goToPage(path);
+    COMMENT ="NoFormIdToAddEvent";
+	addWebUnit(
+	    new TODO("NoFormIdToAddEvent!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+  }
+ 	public java.util.List getRequiredSuites() {
+        String[] roles = ["user"] ;
+        return [new XwikiCreateAccountSuite(), new XwikiLoginSuite("#{client.name}", "#{client.name}", roles)] ;
+    }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkHomePage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkHomePage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkHomePage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,105 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.userLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiCreateAccountSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+public class XwikiCheckLinkHomePage extends WebUnitSuite {
+  static String DESC = "Go to main page and click on links" ;
+  static String NAME = "XwikiCheckLinkHomePage" ;
+  String COMMENT = null;
+    public XwikiCheckLinkHomePage() {
+        super(NAME, DESC) ;
+		init("/Home") ;		
+	}
+	public void  init(path) {
+    goToPage(path) ;  
+    COMMENT ="Not support connect to other pages";
+	addWebUnit(
+	    new TODO("WUTNotSupportConnectOtherPages!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /* 
+	addWebUnit(
+        new ClickURLLinkUnit("ClickXWikiBlog", "Link to XWiki Blog page").
+        setURL("http://www.xwiki.com/xwiki/bin/view/Blog/WebHome").
+		addValidator(new ExpectTextValidator("Welcome to the XWiki Blog"))
+  	) ;
+	addWebUnit(
+        new ClickLinkWithText("ClickXWikiBlog", "Link to XWiki Blog page").
+        setTextLink("XWiki Blog").
+        addValidator(new ExpectTextValidator("Welcome to the XWiki Blog"))
+    ) ;
+    */
+    //click on continue reading link or permalink on Launch of XWiki
+	addWebUnit(
+        new ClickURLLinkUnit("ClickPermalinkLaunchOfXWiki", "Link to continue reading on Launch of XWiki").
+        setURL("/xwiki/bin/view/Main/LaunchOfXWiki").
+		addValidator(new ExpectTextValidator("Launch of XWiki"))
+  	) ;
+    //click on continue reading link or permalink on Another Article
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickPermalinkAnotherArticle", "Link to continue reading on Another Article").
+        setURL("/xwiki/bin/view/Blog/TestArticle").
+		addValidator(new ExpectTextValidator("Another Article"))
+  	) ;
+	//click on Xwiki admin link
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickXwikiAdmin", "Link to user profile of admin").
+        setURL("/xwiki/bin/view/XWiki/Admin").
+		addValidator(new ExpectTextValidator("User Profile"))
+  	) ;
+	//click on Comment link on Launch of XWiki
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickCommentLaunchOfXWiki", "Link to add comment form").
+        setURL("/xwiki/bin/view/Main/LaunchOfXWiki?xpage=comments")
+  	) ;
+	//click on Comment link on Another Article
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickCommentAnotherArticle", "Link to add comment form").
+        setURL("/xwiki/bin/view/Blog/TestArticle?xpage=comments")
+  	) ;
+	//click on Comment link on RSS Feed
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickCommentRSSFeed", "Link to add comment form").
+        setURL("/xwiki/bin/view/Main/FilsRss?xpage=comments")
+  	) ;
+  	COMMENT ="run well but wrong result screen";
+	addWebUnit(
+	    new TODO("PermalinkGoToCommentForm!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    goToPage(path);
+    /*
+	//click on permalink on RSS Feed
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickPermalinkRSSFeed", "Link to RSS Feed").
+        setURL("/xwiki/bin/view/Main/FilsRss")
+  	) ;
+  	*/
+	}
+ 	public java.util.List getRequiredSuites() {
+        String[] roles = ["user"] ;
+        return [new XwikiCreateAccountSuite(), new XwikiLoginSuite("#{client.name}", "#{client.name}", roles)] ;
+    }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkKnowledgeBasePage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkKnowledgeBasePage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkKnowledgeBasePage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,49 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.userLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiCreateAccountSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+public class XwikiCheckLinkKnowledgeBasePage extends WebUnitSuite {
+  static String DESC = "Go to Knowledge Base page and click on links" ;
+  static String NAME = "XwikiCheckLinkKnowledgeBasePage" ;
+  
+  public XwikiCheckLinkKnowledgeBasePage() {
+    super(NAME, DESC) ;
+		init("/Knowledge Base") ;		
+	}
+	public void  init(path) {
+    goToPage(path) ;  
+	//click on ExampleLink1
+	addWebUnit(
+        new ClickURLLinkUnit("ClickExampleLink1", "Link to ExampleLink1").
+        setURL("/xwiki/bin/view/Main/ExampleLink1")
+  	) ;
+	//click on ExampleLink2
+	goToPage(path);
+	addWebUnit(
+        new ClickURLLinkUnit("ClickExampleLink2", "Link to ExampleLink2").
+        setURL("/xwiki/bin/edit/Main/Example+Link+2?parent=Main.KnowledgeBase")		
+  	) ;
+  	addWebUnit(
+        new ClickURLLinkUnit("GoHome", "Link to Home page").
+        setURL("/xwiki/bin/view/Main/")
+  	) ;
+	}
+ 	public java.util.List getRequiredSuites() {
+        String[] roles = ["user"] ;
+        return [new XwikiCreateAccountSuite(), new XwikiLoginSuite("#{client.name}", "#{client.name}", roles)] ;
+    }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkPhotoAlbumsPage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkPhotoAlbumsPage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkPhotoAlbumsPage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,71 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.userLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiCreateAccountSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+public class XwikiCheckLinkPhotoAlbumsPage extends WebUnitSuite {
+  static String DESC = "Go to Photo Albums page and click on links" ;
+  static String NAME = "XwikiCheckLinkPhotoAlbumsPage" ;
+  String COMMENT = null;
+  
+  public XwikiCheckLinkPhotoAlbumsPage() {
+    super(NAME, DESC) ;
+		init("/Photo Albums") ;		
+  }
+  public void  init(path) {
+    //click on Seychelles1999
+	goToPage(path);
+	addWebUnit(
+    	new ClickLinkWithText("ClickSeychelles1999", "Link to Seychelles1999'").
+        setTextLink("Seychelles1999")
+    );
+    //click on Vietnam 2001
+	goToPage(path);
+	addWebUnit(
+    	new ClickLinkWithText("ClickVietnam2001", "Link to Vietnam 2001'").
+        setTextLink("Vietnam 2001")
+    );
+    //click on Cat Photo Album
+	goToPage(path);
+	addWebUnit(
+    	new ClickLinkWithText("ClickCatPhotoAlbum", "Link to Cat Photo Album'").
+        setTextLink("Cat Photo Album")
+    );
+    goToPage(path);
+    COMMENT ="2 same form id, 2 same text field";
+	addWebUnit(
+	    new TODO("SameFormIdNoEffectCreateAlbum!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+	//set name and create new album (2 same form id, 2 same text field, run but wrong result screen)
+
+	addWebUnit(
+        new SubmitFormUnit("TypeNameAndAddAlbum", "Add this album").
+        setFormId("newdoc").
+        setAction("../../Photos/").
+        setField("title","my test album")
+        //addValidator(new ExpectTextValidator("You are not allowed to view this document or perform this action."))
+        //addValidator(new ExpectFormIdValidator("edit"))
+    ) ;
+    */
+	}
+ 	public java.util.List getRequiredSuites() {
+        String[] roles = ["user"] ;
+        return [new XwikiCreateAccountSuite(), new XwikiLoginSuite("#{client.name}", "#{client.name}", roles)] ;
+    }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkPresentationsPage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkPresentationsPage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkPresentationsPage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,82 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.userLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiCreateAccountSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+public class XwikiCheckLinkPresentationsPage extends WebUnitSuite {
+  static String DESC = "Go to Presentations page and click on links" ;
+  static String NAME = "XwikiCheckLinkPresentationsPage" ;
+  String COMMENT = null;
+  
+  public XwikiCheckLinkPresentationsPage() {
+    super(NAME, DESC) ;
+		init("/Presentations") ;		
+	}
+	public void  init(path) {   
+
+	//set name and create a presentation (2 same form id)
+	goToPage(path);
+	addWebUnit(
+        new SubmitFormUnit("TypeNameAndAddPresentation", "Add this presentation").
+        setFormId("newdoc").
+        setAction("../../inline/Demo/Name of your presentation").
+        setField("name","my test presentation").
+        addValidator(new ExpectTextValidator("You are not allowed to view this document or perform this action."))
+    ) ;
+    addWebUnit(
+        new ClickURLLinkUnit("BackToHome", "Back to home page").
+        setURL("/xwiki/bin/view/Main/")
+  	) ;
+	//click on preview to see existing presentation
+	goToPage(path);
+	addWebUnit(
+        new ClickLinkWithText("ClickPreview", "Click on preview").
+        setTextLink("Preview").
+        addValidator(new ExpectTextValidator("Presentation"))
+    );
+
+	//click on edit to modify existing presentation
+	goToPage(path);
+	addWebUnit(
+        new ClickLinkWithText("ClickEdit", "Click on edit").
+        setTextLink("Edit").
+        addValidator(new ExpectTextValidator("You are not allowed to view this document or perform this action."))
+    );
+    goToPage(path);
+  	COMMENT ="WUT cannot click on launch";
+	addWebUnit(
+	    new TODO("WUTCanNotClickLaunch!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+  	//click on launch
+
+	addWebUnit(
+        new ClickURLLinkUnit("ClickLaunch", "Click on launch").
+        setURL("/xwiki/bin/view/Main/WhatIsAWiki?xpage=s5b")
+  	) ;
+  	*/
+    addWebUnit(
+        new ClickURLLinkUnit("BackToHome", "Back to home page").
+        setURL("/xwiki/bin/view/Main/")
+  	) ;
+	}
+ 	public java.util.List getRequiredSuites() {
+        String[] roles = ["user"] ;
+        return [new XwikiCreateAccountSuite(), new XwikiLoginSuite("#{client.name}", "#{client.name}", roles)] ;
+    }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkWhatNewPage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkWhatNewPage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiCheckLinkWhatNewPage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,58 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.userLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiCreateAccountSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+public class XwikiCheckLinkWhatNewPage extends WebUnitSuite {
+  static String DESC = "Go to WhatNew page and click on links" ;
+  static String NAME = "XwikiCheckLinkWhatNewPage" ;
+  String COMMENT = null;
+  
+  public XwikiCheckLinkWhatNewPage() {
+    super(NAME, DESC) ;
+		init("/What's New") ;		
+  }
+	public void  init(path) {
+	goToPage(path) ;
+	COMMENT ="Wrong function";
+	addWebUnit(
+	    new TODO("ViewChangeIsWrong!!!",COMMENT).
+	    setComment(COMMENT).
+	    setStatus(WebUnit.STATUS_INCOMPLETE)
+    );
+    /*
+    //click to view change
+	addWebUnit(
+        new ClickURLLinkUnit("ClickViewChange", "Link to view change").
+        setURL("/xwiki/bin/view/Main/WhatsNew?diff=1")
+  	) ;	
+    */
+    addWebSuite(new XwikiCreateAccountSuite()) ;
+    String[] roles = ["user"] ;
+    addWebSuite(new XwikiLoginSuite("#{client.name}", "#{client.name}", roles)) ;
+    //check exist of new user link
+    goToPage(path) ;
+	addWebUnit(
+        new ClickURLLinkUnit("ClickCurrentUser", "Click to see current user profile").
+        setURL("/xwiki/bin/view/XWiki/"+"#{client.name}").
+	    addValidator(new ExpectTextValidator("User Profile"))
+  	) ;
+    }
+ 	public java.util.List getRequiredSuites() {
+        String[] roles = ["user"] ;
+        return [new XwikiCreateAccountSuite(), new XwikiLoginSuite("#{client.name}", "#{client.name}", roles)] ;
+    }
+}

Added: xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiUserCheckLinkMainPage.groovy
===================================================================
--- xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiUserCheckLinkMainPage.groovy	2006-04-27 06:38:22 UTC (rev 1057)
+++ xwiki/trunk/src/test/webunit/suites/xwiki/userLink/XwikiUserCheckLinkMainPage.groovy	2006-04-28 09:27:29 UTC (rev 1058)
@@ -0,0 +1,150 @@
+/***************************************************************************
+ * Copyright 2001-2005 The eXo Platform SARL         All rights reserved.  *
+ * Please look at license.txt in info directory for more license detail.   *
+ **************************************************************************/
+package suites.xwiki.userLink;
+
+import suites.xwiki.share.XwikiLoginSuite;
+import suites.xwiki.share.XwikiLogoutSuite;
+import suites.xwiki.share.XwikiCreateAccountSuite;
+import org.exoplatform.webunit.*;
+import org.exoplatform.webunit.unit.*;
+import org.exoplatform.webunit.validator.*;
+
+/**
+ * Nov 14, 2005
+ * @author: Dung Hoang
+ * @email:   dunghoang at exoplatform.com
+ **/
+
+
+public class XwikiUserCheckLinkMainPage extends WebUnitSuite {
+  static String DESC = "Go to main page and click on links" ;
+  static String NAME = "XwikiUserCheckLinkMainPage" ;
+  String COMMENT = null;
+  
+  public XwikiUserCheckLinkMainPage() {
+    super(NAME, DESC) ;
+    //click on Home tab
+    addWebUnit(
+        new ClickLinkWithText("GoToHome", "Link to Home page").
+        setTextLink("Home").
+        addValidator(new ExpectTextValidator("Welcome to your Wiki"))
+    ) ;
+	//click on Blog tab
+    addWebUnit(
+        new ClickLinkWithText("GoToBlog", "Link to Blog page").
+        setTextLink("Blog").
+        addValidator(new ExpectTextValidator("Latest Articles"))
+    ) ;
+	//click on Knowledge Base tab
+	addWebUnit(
+        new ClickLinkWithText("GoToKnowledgeBase", "Link to Knowledge Base page").
+        setTextLink("Knowledge Base").
+        addValidator(new ExpectTextValidator("Wiki Knowledge Base"))
+    ) ;
+	//click on What'sNew tab
+	addWebUnit(
+        new ClickLinkWithText("GoToWhat'sNew", "Link to What's New page").
+        setTextLink("What's New").
+        addValidator(new ExpectTextValidator("What's New"))
+    ) ;
+	//click on Search tab
+	addWebUnit(
+        new ClickLinkWithText("GoToSearch", "Link to Search page").
+        setTextLink("Search").
+        addValidator(new ExpectTextValidator("Search on this Wiki"))
+    ) ;
+	//click on Doc tab
+	addWebUnit(
+        new ClickLinkWithText("GoToDoc", "Link to Doc page").
+        setTextLink("Doc").
+        addValidator(new ExpectTextValidator("Documentation"))
+    ) ;
+	//click on Register tab
+	addWebUnit(
+        new ClickLinkWithText("GoToRegister", "Link to register page").
+        setTextLink("Register").
+        addValidator(new ExpectTextValidator("Information about you"))
+    ) ;
+	//click on Photo Albums link
+    addWebUnit(
+        new ClickLinkWithText("GoToPhotoAlbums", "Link to Photo Albums page").
+        setTextLink("Photo Albums").
+        addValidator(new ExpectTextValidator("Photo Albums"))
+    ) ;
+	//click on Event Calendar link
+    addWebUnit(
+        new ClickLinkWithText("GoToEventCalendar", "Link to Event Calendar page").
+        setTextLink("Event Calendar").
+        addValidator(new ExpectTextValidator("Event Calendar"))
+    ) ;
+	//click on Presentation link
+    addWebUnit(
+        new ClickLinkWithText("GoToPresentation", "Link to Presentation page").
+        setTextLink("Presentations").
+        addValidator(new ExpectTextValidator("Presentation"))
+    ) ;
+    //click on News link(note: if being in home page, there are more than one 'News' word on screen so cannot setTextLink)
+    addWebUnit(
+      new ClickURLLinkUnit("GoToNews", "Link to News page").
+      setURL("/xwiki/bin/view/Blog/Category?category=News").
+      addValidator(new ExpectTextValidator("Entries for category News"))
+    ) ;
+	//click on Personal link
+    addWebUnit(
+        new ClickLinkWithText("GoToPersonal", "Link to Personal page").
+        setTextLink("Personal").
+        addValidator(new ExpectTextValidator("Entries for category Personal"))
+    ) ;
+	//click on Other link
+    addWebUnit(
+        new ClickLinkWithText("GoToOther", "Link to Other page").
+        setTextLink("Other").
+        addValidator(new ExpectTextValidator("Entries for category Other"))
+    ) ;
+	//click on Add Comment link
+    addWebUnit(
+        new ClickLinkWithText("ClickAddComment", "Click on 'Add comment'").
+        setTextLink("Add comment").
+        addValidator(new ExpectTextValidator("New Comment"))
+    ) ;
+ 	//click on History link (it connect to another window that has no base link so make it the latest)
+    addWebUnit(
+        new ClickLinkWithText("ClickHistory", "Click on 'History'").
+        setTextLink("History").
+        addValidator(new ExpectTextValidator("Document History"))
+    ) ;
+		//PDF link is not supported to test by WebUnit		
+		//click on 'more actions' then on 'Code'
+    addWebUnit(
+        new ClickLinkWithText("ClickMoreActions", "Click on 'More Actions'").
+        setTextLink("More Actions")
+    ) ;     //if run this unit after all, the expected text is not right but it is also runnable
+    addWebUnit(
+        new ClickLinkWithText("ClickCode", "Click on 'Code'").
+        setTextLink("Code")
+    );
+    //click on 'more actions' then on 'Xwiki syntax'
+    addWebUnit(
+        new ClickLinkWithText("ClickMoreActions", "Click on 'More Actions'").
+        setTextLink("More Actions")
+    ) ;
+    addWebUnit(
+        new ClickLinkWithText("ClickXwikiSyntax", "Click on 'Xwiki Syntax'").
+        setTextLink("Xwiki Syntax").
+        addValidator(new ExpectTextValidator("XWiki Syntax"))
+    );
+	//view user profile
+	addWebUnit(
+        new ClickLinkWithText("ViewUSerProfile", "View an user profile").
+        setTextLink("Xwiki Admin").        
+        addValidator(new ExpectTextValidator("User Profile"))
+    );
+    addWebSuite(new XwikiLogoutSuite());
+  }
+ 	public java.util.List getRequiredSuites() {
+        String[] roles = ["user"] ;
+        return [new XwikiCreateAccountSuite(), new XwikiLoginSuite("#{client.name}", "#{client.name}", roles)] ;
+    }
+}





More information about the Xwiki-notifications mailing list