[Fusionforge-commits] FusionForge branch master updated. v6.1-199-gafe9440

Franck Villaume nerville at libremir.placard.fr.eu.org
Sun Jan 20 17:32:12 CET 2019


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "FusionForge".

The branch, master has been updated
       via  afe94409ed37640745584d250a1586bb483af96f (commit)
      from  fda660a03ce78ad8fce4ce542c16f5ae5fea4f2d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=afe94409ed37640745584d250a1586bb483af96f

commit afe94409ed37640745584d250a1586bb483af96f
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date:   Sun Jan 20 17:21:41 2019 +0100

    fix isElementPresent. more clickAndWait and select

diff --git a/tests/func/10_Site/loginTest.php b/tests/func/10_Site/loginTest.php
index fd410fc..c72422f 100644
--- a/tests/func/10_Site/loginTest.php
+++ b/tests/func/10_Site/loginTest.php
@@ -86,7 +86,7 @@ class LoginProcess extends FForge_SeleniumTestCase
 		$this->assertTrue($this->isTextPresent("Log In"));
 		$this->type("form_loginname", FORGE_ADMIN_USERNAME);
 		$this->type("form_pw", "");
-		$this->click("login");
+		$this->clickAndWait("login");
 		sleep(1);
 		$this->assertTrue($this->isTextPresent("Login"));
 		$this->assertFalse($this->isTextPresent("Forge Admin"));
diff --git a/tests/func/10_Site/projectsTest.php b/tests/func/10_Site/projectsTest.php
index 9dcbb6d..2fb030b 100644
--- a/tests/func/10_Site/projectsTest.php
+++ b/tests/func/10_Site/projectsTest.php
@@ -183,7 +183,7 @@ class CreateProject extends FForge_SeleniumTestCase
 		$this->type("purpose", "This is a simple description for ProjectA");
 		$this->type("//textarea[@name='description']", "This is the public description for ProjectA.");
 		$this->type("unix_name", "projecta");
-		$this->select($this->byXpath("//select[@name='built_from_template']"))->selectOptionByLabel("Start from empty project");
+		$this->select($this->byXPath("//select[@name='built_from_template']"))->selectOptionByLabel("Start from empty project");
 		$this->clickAndWait("//input[@name='scm' and @value='scmsvn']");
 		$this->clickAndWait("submit");
 		$this->waitForPageToLoad("30000");
@@ -212,7 +212,7 @@ class CreateProject extends FForge_SeleniumTestCase
 
 		$this->url(ROOT."/admin/");
 		$this->waitForPageToLoad("30000");
-		$this->select($this->byXpath("//form[contains(@action,'globalroleedit.php')]//select[@name='role_id']"))->selectOptionByLabel("Forge administrators") ;
+		$this->select($this->byXPath("//form[contains(@action,'globalroleedit.php')]//select[@name='role_id']"))->selectOptionByLabel("Forge administrators") ;
 		$this->clickAndWait("//form[contains(@action,'globalroleedit.php')]//input[@value='Edit Role']") ;
 		$this->waitForPageToLoad("30000");
 		$this->type ("//form[contains(@action,'globalroleedit.php')]//input[@name='form_unix_name']", "toto") ;
diff --git a/tests/func/20_Docs/createDocURLTest.php b/tests/func/20_Docs/createDocURLTest.php
index 155d13d..de862cd 100644
--- a/tests/func/20_Docs/createDocURLTest.php
+++ b/tests/func/20_Docs/createDocURLTest.php
@@ -62,7 +62,7 @@ class CreateDocURL extends FForge_SeleniumTestCase {
 		$this->type("groupname", "docdirectory");
 		$this->clickAndWait("submitaddsubgroup");
 		$this->clickAndWait("addItemDocmanMenu");
-		$this->click("id=tabs-new-document");
+		$this->clickAndWait("id=tabs-new-document");
 		$this->type("title", "My document");
 		$this->type("//textarea[@name='description']", "L'année dernière à Noël, 3 < 4, 中国 \" <em>, père & fils");
 		$this->clickAndWait("//input[@name='type' and @value='pasteurl']");
@@ -129,7 +129,7 @@ class CreateDocURL extends FForge_SeleniumTestCase {
 		$this->assertTextPresent("Document ".URL."/terms.php submitted successfully");
 		$this->clickAndWait("listFileDocmanMenu");
 		$this->clickAndWait("link=Uncategorized Submissions");
-		$this->click("css=img[alt='editdocument']");
+		$this->clickAndWait("css=img[alt='editdocument']");
 		$this->pause("10000");
 		$this->assertTextPresent("1 (x)");
 		$this->select($this->byId('stateid'))->selectOptionByLabel('pending');
@@ -147,23 +147,23 @@ class CreateDocURL extends FForge_SeleniumTestCase {
 		$this->clickAndWait("addItemDocmanMenu");
 		// ugly hack until we fix behavior in docman when no folders exist. We need to click twice on the link
 		$this->clickAndWait("addItemDocmanMenu");
-		$this->click("id=tab-new-document");
+		$this->clickAndWait("id=tab-new-document");
 		$this->type("title", "My document");
 		$this->type("//textarea[@name='description']", "My Description");
-		$this->click("//input[@name='type' and @value='pasteurl']");
+		$this->clickAndWait("//input[@name='type' and @value='pasteurl']");
 		$this->type("file_url", URL."/terms.php");
 		$this->clickAndWait("//input[@name='submit' and @value='Submit Information']");
 		$this->assertTextPresent("Document ".URL."/terms.php submitted successfully");
 		$this->clickAndWait("listFileDocmanMenu");
 		$this->clickAndWait("link=Uncategorized Submissions");
-		$this->click("css=img[alt='editdocument']");
+		$this->clickAndWait("css=img[alt='editdocument']");
 		$this->pause("10000");
 		$this->assertTextPresent("1 (x)");
-		$this->click("id=doc_version_addbutton");
+		$this->clickAndWait("id=doc_version_addbutton");
 		$this->type("id=title", "My new document");
 		$this->type("id=description", "My new description");
-		$this->click("id=current_version");
-		$this->click("id=editButtonUrl");
+		$this->clickAndWait("id=current_version");
+		$this->clickAndWait("id=editButtonUrl");
 		$this->type("id=editFileurl", "http://google.fr");
 		$this->clickAndWait("xpath=(//button[@type='button'])[3]");
 		$this->assertTextPresent("updated successfully");
diff --git a/tests/func/20_News/newsTest.php b/tests/func/20_News/newsTest.php
index 9ed2aa6..be0488c 100644
--- a/tests/func/20_News/newsTest.php
+++ b/tests/func/20_News/newsTest.php
@@ -115,10 +115,10 @@ class CreateNews extends FForge_SeleniumTestCase
 		$this->clickAndWait("link=Test3");
 		$this->assertTextPresent("Special ' chars \"");
 		$this->clickAndWait("link=News");
-		$this->click("//a[contains(@href, '". ROOT . "/news/admin/?group_id=7')]");
+		$this->clickAndWait("//a[contains(@href, '". ROOT . "/news/admin/?group_id=7')]");
 		$this->waitForPageToLoad("30000");
 		$this->clickAndWait("link=Test3");
-		$this->click("//form[@id='newsadminform']//input[@name='status' and @value=4]");
+		$this->clickAndWait("//form[@id='newsadminform']//input[@name='status' and @value=4]");
 		$this->clickAndWait("submit");
 	}
 
diff --git a/tests/func/20_Surveys/surveysTest.php b/tests/func/20_Surveys/surveysTest.php
index 5c2c213..41da3aa 100644
--- a/tests/func/20_Surveys/surveysTest.php
+++ b/tests/func/20_Surveys/surveysTest.php
@@ -95,7 +95,7 @@ class Surveys extends FForge_SeleniumTestCase
 		$this->assertTextPresent("This is my third question (yes/no) ?");
 		$this->assertTextPresent("This is my second question (text area) ?");
 		$this->clickAndWait("This is my first question (radio) ?");
-		$this->click("//input[@name='_1' and @value='3']");
+		$this->clickAndWait("//input[@name='_1' and @value='3']");
 		$this->type("_2", "hello");
 		$this->clickAndWait("_3");
 		$this->clickAndWait("_5");
@@ -124,7 +124,7 @@ class Surveys extends FForge_SeleniumTestCase
 		$this->clickAndWait("submit");
 		$this->clickAndWait("link=Add Survey");
 		$this->clickAndWait("link=Edit");
-		$this->click("to_add[]");
+		$this->clickAndWait("to_add[]");
 		$this->clickAndWait("submit");
 		$this->clickAndWait("link=Add Survey");
 		$this->type("survey_title", "Q10 ?");
@@ -157,11 +157,11 @@ class Surveys extends FForge_SeleniumTestCase
 //		$this->clickAndWait("link=Administration");
 //		$this->clickAndWait("link=Add Survey");
 //		$this->clickAndWait("link=Edit");
-//		$this->click("//input[@name='is_public' and @value='0']");
+//		$this->clickAndWait("//input[@name='is_public' and @value='0']");
 //		$this->clickAndWait("submit");
 //		// Log out and check no survey is visible
 //		$this->clickAndWait("link=Log Out");
-//		$this->select("none", "label=projecta");
+//		$this->select($this->byName("none"))->selectOptionByLabel("projecta");
 //		$this->waitForPageToLoad("30000");
 //		$this->clickAndWait("link=Surveys");
 //		$this->assertTextPresent("No Survey is found");
diff --git a/tests/func/20_Tasks/createTaskTest.php b/tests/func/20_Tasks/createTaskTest.php
index 3140f9b..03319cc 100644
--- a/tests/func/20_Tasks/createTaskTest.php
+++ b/tests/func/20_Tasks/createTaskTest.php
@@ -326,7 +326,7 @@ class CreateTask extends FForge_SeleniumTestCase
 		$this->clickAndWait("link=My Page");
 		// You cannot click on "Assigned Tasks" tabs,
 		// but the text is present in the page anyway.
-		// $this->click("link=Assigned Tasks");
+		// $this->clickAndWait("link=Assigned Tasks");
 		$this->assertTextPresent("Task2: Hello France");
 		$this->switchUser('uadmin');
 		$this->open(ROOT);
diff --git a/tests/func/30_RBAC/rbacTest.php b/tests/func/30_RBAC/rbacTest.php
index 3ee8413..710f89b 100644
--- a/tests/func/30_RBAC/rbacTest.php
+++ b/tests/func/30_RBAC/rbacTest.php
@@ -69,15 +69,15 @@ class RBAC extends FForge_SeleniumTestCase
 		$this->waitForPageToLoad("30000");
 
 		// Grant it permissions
-		$this->select($this->byXpath("//select[@name='data[approve_projects][-1]']"))->selectOptionByLabel("Approve projects");
-		$this->select($this->byXpath("//select[@name='data[approve_news][-1]']"))->selectOptionByLabel("Approve news");
+		$this->select($this->byXPath("//select[@name='data[approve_projects][-1]']"))->selectOptionByLabel("Approve projects");
+		$this->select($this->byXPath("//select[@name='data[approve_news][-1]']"))->selectOptionByLabel("Approve news");
 		$this->clickAndWait("//input[@value='Submit']") ;
 		$this->waitForPageToLoad("30000");
 
 		// Check permissions were saved
 		$this->clickAndWait("link=Site Admin");
 		$this->waitForPageToLoad("30000");
-		$this->select($this->byXpath("//form[contains(@action,'globalroleedit.php')]//select[@name='role_id']"))->selectOptionByLabel("Project approvers") ;
+		$this->select($this->byXPath("//form[contains(@action,'globalroleedit.php')]//select[@name='role_id']"))->selectOptionByLabel("Project approvers") ;
 		$this->clickAndWait("//form[contains(@action,'globalroleedit.php')]//input[@value='Edit Role']") ;
 		$this->waitForPageToLoad("30000");
 
@@ -86,7 +86,7 @@ class RBAC extends FForge_SeleniumTestCase
 		$this->assertSelected("//select[@name='data[approve_news][-1]']", "Approve news");
 
 		// Whoops, we don't actually want the news moderation bit, unset it
-		$this->select($this->byXpath("//select[@name='data[approve_news][-1]']"))->selectOptionByLabel("No Access");
+		$this->select($this->byXPath("//select[@name='data[approve_news][-1]']"))->selectOptionByLabel("No Access");
 		$this->clickAndWait("//input[@value='Submit']") ;
 		$this->waitForPageToLoad("30000");
 		$this->assertSelected("//select[@name='data[approve_projects][-1]']", "Approve projects");
@@ -99,7 +99,7 @@ class RBAC extends FForge_SeleniumTestCase
 		// Add them to their respective roles, check they're here
 		$this->clickAndWait("link=Site Admin");
 		$this->waitForPageToLoad("30000");
-		$this->select($this->byXpath("//form[contains(@action,'globalroleedit.php')]//select[@name='role_id']"))->selectOptionByLabel("Project approvers");
+		$this->select($this->byXPath("//form[contains(@action,'globalroleedit.php')]//select[@name='role_id']"))->selectOptionByLabel("Project approvers");
 		$this->clickAndWait("//form[contains(@action,'globalroleedit.php')]//input[@value='Edit Role']") ;
 		$this->waitForPageToLoad("30000");
 		$this->type ("//form[contains(@action,'globalroleedit.php')]//input[@name='form_unix_name']", "projapp") ;
@@ -109,7 +109,7 @@ class RBAC extends FForge_SeleniumTestCase
 
 		$this->clickAndWait("link=Site Admin");
 		$this->waitForPageToLoad("30000");
-		$this->select($this->byXpath("//form[contains(@action,'globalroleedit.php')]//select[@name='role_id']"))->selectOptionByLabel("News moderators") ;
+		$this->select($this->byXPath("//form[contains(@action,'globalroleedit.php')]//select[@name='role_id']"))->selectOptionByLabel("News moderators") ;
 		$this->clickAndWait("//form[contains(@action,'globalroleedit.php')]//input[@value='Edit Role']") ;
 		$this->waitForPageToLoad("30000");
 		$this->type ("//form[contains(@action,'globalroleedit.php')]//input[@name='form_unix_name']", "newsmod") ;
@@ -137,7 +137,7 @@ class RBAC extends FForge_SeleniumTestCase
 		// (For cases where project_registration_restricted=true)
 		$this->clickAndWait("link=Site Admin");
 		$this->waitForPageToLoad("30000");
-		$this->select($this->byXpath("//form[contains(@action,'globalroleedit.php')]//select[@name='role_id']"))->selectOptionByLabel("Project approvers");
+		$this->select($this->byXPath("//form[contains(@action,'globalroleedit.php')]//select[@name='role_id']"))->selectOptionByLabel("Project approvers");
 		$this->clickAndWait("//form[contains(@action,'globalroleedit.php')]//input[@value='Edit Role']") ;
 		$this->waitForPageToLoad("30000");
 		$this->type ("//form[contains(@action,'globalroleedit.php')]//input[@name='form_unix_name']", "toto") ;
@@ -151,7 +151,7 @@ class RBAC extends FForge_SeleniumTestCase
 		// Revoke project approval rights
 		$this->clickAndWait("link=Site Admin");
 		$this->waitForPageToLoad("30000");
-		$this->select($this->byXpath("//form[contains(@action,'globalroleedit.php')]//select[@name='role_id']"))->selectOptionByLabel("Project approvers");
+		$this->select($this->byXPath("//form[contains(@action,'globalroleedit.php')]//select[@name='role_id']"))->selectOptionByLabel("Project approvers");
 		$this->clickAndWait("//form[contains(@action,'globalroleedit.php')]//input[@value='Edit Role']") ;
 		$this->waitForPageToLoad("30000");
 		$this->clickAndWait("//a[contains(@href,'/users/toto')]/../../td/input[@type='checkbox']") ;
@@ -229,7 +229,7 @@ class RBAC extends FForge_SeleniumTestCase
 		$this->clickAndWait("link=Site Admin");
 		$this->waitForPageToLoad("30000");
 		$this->assertTrue($this->isElementPresent("//option[.='Temporary role']"));
-		$this->select($this->byXpath("//form[contains(@action,'globalroleedit.php')]//select[@name='role_id']"))->selectOptionByLabel("Temporary role");
+		$this->select($this->byXPath("//form[contains(@action,'globalroleedit.php')]//select[@name='role_id']"))->selectOptionByLabel("Temporary role");
 		$this->clickAndWait("//form[contains(@action,'globalroleedit.php')]//input[@value='Edit Role']") ;
 		$this->waitForPageToLoad("30000");
 		$this->type ("//form[contains(@action,'globalroleedit.php')]//input[@name='form_unix_name']", "toto") ;
@@ -242,7 +242,7 @@ class RBAC extends FForge_SeleniumTestCase
 		$this->assertTrue($this->isTextPresent("Cannot remove a non empty role"));
 		$this->clickAndWait("link=Site Admin");
 		$this->waitForPageToLoad("30000");
-		$this->select($this->byXpath("//form[contains(@action,'globalroleedit.php')]//select[@name='role_id']"))->selectOptionByLabel("Temporary role");
+		$this->select($this->byXPath("//form[contains(@action,'globalroleedit.php')]//select[@name='role_id']"))->selectOptionByLabel("Temporary role");
 		$this->clickAndWait("//form[contains(@action,'globalroleedit.php')]//input[@value='Edit Role']") ;
 		$this->waitForPageToLoad("30000");
 		$this->clickAndWait("//a[contains(@href,'/users/toto')]/../../td/input[@type='checkbox']") ;
@@ -252,7 +252,7 @@ class RBAC extends FForge_SeleniumTestCase
 		$this->clickAndWait("link=Site Admin");
 		$this->waitForPageToLoad("30000");
 		$this->assertTrue($this->isElementPresent("//option[.='Temporary role']"));
-		$this->select($this->byXpath("//form[contains(@action,'globalroleedit.php')]//select[@name='role_id']"))->selectOptionByLabel("Temporary role");
+		$this->select($this->byXPath("//form[contains(@action,'globalroleedit.php')]//select[@name='role_id']"))->selectOptionByLabel("Temporary role");
 		$this->clickAndWait("//form[contains(@action,'globalroleedit.php')]//input[@value='Edit Role']") ;
 		$this->waitForPageToLoad("30000");
 		$this->clickAndWait("//input[@type='checkbox' and @name='sure']") ;
@@ -278,7 +278,7 @@ class RBAC extends FForge_SeleniumTestCase
 		$this->waitForPageToLoad("30000");
 
 		// Grant it permissions
-		$this->select($this->byXpath("//select[@name='data[approve_projects][-1]']"))->selectOptionByLabel("Approve projects");
+		$this->select($this->byXPath("//select[@name='data[approve_projects][-1]']"))->selectOptionByLabel("Approve projects");
 		$this->clickAndWait("//input[@value='Submit']") ;
 		$this->waitForPageToLoad("30000");
 
@@ -338,28 +338,28 @@ class RBAC extends FForge_SeleniumTestCase
 		$this->clickAndWait("link=Users and permissions");
 		$this->waitForPageToLoad("30000");
 		$this->type ("//form[contains(@action,'users.php')]//input[@name='form_unix_name' and @type='text']", "guru") ;
-		$this->select($this->byXpath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Senior Developer");
+		$this->select($this->byXPath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Senior Developer");
 		$this->clickAndWait("//input[@value='Add Member']") ;
 		$this->waitForPageToLoad("30000");
 		$this->assertTrue($this->isTextPresent("guru Lastname"));
 		$this->assertTrue($this->isElementPresent("//tr/td/a[.='guru Lastname']/../../td/div[contains(.,'Senior Developer')]")) ;
 
 		$this->type ("//form[contains(@action,'users.php')]//input[@name='form_unix_name' and @type='text']", "trainee") ;
-		$this->select($this->byXpath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Junior Developer");
+		$this->select($this->byXPath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Junior Developer");
 		$this->clickAndWait("//input[@value='Add Member']") ;
 		$this->waitForPageToLoad("30000");
 		$this->assertTrue($this->isTextPresent("trainee Lastname"));
 		$this->assertTrue($this->isElementPresent("//tr/td/a[.='trainee Lastname']/../../td/div[contains(.,'Junior Developer')]")) ;
 
 		$this->type ("//form[contains(@action,'users.php')]//input[@name='form_unix_name' and @type='text']", "docmaster") ;
-		$this->select($this->byXpath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Doc Writer");
+		$this->select($this->byXPath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Doc Writer");
 		$this->clickAndWait("//input[@value='Add Member']") ;
 		$this->waitForPageToLoad("30000");
 		$this->assertTrue($this->isTextPresent("docmaster Lastname"));
 		$this->assertTrue($this->isElementPresent("//tr/td/a[.='docmaster Lastname']/../../td/div[contains(.,'Doc Writer')]")) ;
 
 		$this->type ("//form[contains(@action,'users.php')]//input[@name='form_unix_name' and @type='text']", "bigboss") ;
-		$this->select($this->byXpath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Senior Developer");
+		$this->select($this->byXPath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Senior Developer");
 		$this->clickAndWait("//input[@value='Add Member']") ;
 		$this->waitForPageToLoad("30000");
 		$this->assertTrue($this->isTextPresent("bigboss Lastname"));
@@ -376,7 +376,7 @@ class RBAC extends FForge_SeleniumTestCase
 		$this->assertFalse($this->isTextPresent("trainee Lastname"));
 
 		$this->type ("//form[contains(@action,'users.php')]//input[@name='form_unix_name' and @type='text']", "trainee") ;
-		$this->select($this->byXpath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Junior Developer");
+		$this->select($this->byXPath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Junior Developer");
 		$this->clickAndWait("//input[@value='Add Member']") ;
 		$this->waitForPageToLoad("30000");
 		$this->assertTrue($this->isTextPresent("trainee Lastname"));
@@ -392,13 +392,13 @@ class RBAC extends FForge_SeleniumTestCase
 		$this->clickAndWait("//td/form/div[contains(.,'Junior Developer')]/../div/input[@value='Edit Permissions']") ;
 		$this->waitForPageToLoad("30000");
 
-		$this->select($this->byXpath("//select[contains(@name,'data[frs_admin]')]"))->selectOptionByLabel("FRS access");
-		$this->select($this->byXpath("//select[contains(@name,'data[docman]')]"))->selectOptionByLabel("Read only");
+		$this->select($this->byXPath("//select[contains(@name,'data[frs_admin]')]"))->selectOptionByLabel("FRS access");
+		$this->select($this->byXPath("//select[contains(@name,'data[docman]')]"))->selectOptionByLabel("Read only");
 		$this->clickAndWait("//input[@value='Submit']") ;
 		$this->waitForPageToLoad("30000");
 		$this->assertSelected("//select[contains(@name,'data[docman]')]", "Read only");
 		$this->assertSelected("//select[contains(@name,'data[frs_admin]')]", "FRS access");
-		$this->select($this->byXpath("//select[contains(@name,'data[new_frs]')]"))->selectOptionByLabel("Read only");
+		$this->select($this->byXPath("//select[contains(@name,'data[new_frs]')]"))->selectOptionByLabel("Read only");
 		$this->clickAndWait("//input[@value='Submit']") ;
 		$this->waitForPageToLoad("30000");
 		$this->assertSelected("//select[contains(@name,'data[new_frs]')]", "Read only");
@@ -467,7 +467,7 @@ class RBAC extends FForge_SeleniumTestCase
 		$this->waitForPageToLoad("30000");
 
 		$this->assertTrue($this->isElementPresent("//input[@value='Link external role']/../../div/fieldset/select/option[.='Senior Developer (in project MetaProject)']")) ;
-		$this->select($this->byXpath("//input[@value='Link external role']/../../div/fieldset/select"))->selectOptionByLabel("Senior Developer (in project MetaProject)") ;
+		$this->select($this->byXPath("//input[@value='Link external role']/../../div/fieldset/select"))->selectOptionByLabel("Senior Developer (in project MetaProject)") ;
 		$this->clickAndWait("//input[@value='Link external role']") ;
 		$this->waitForPageToLoad("30000");
 		$this->assertTrue($this->isElementPresent("//td/form/div[contains(.,'Senior Developer (in project MetaProject)')]/../div/input[contains(@value,'Unlink Role')]"));
@@ -475,7 +475,7 @@ class RBAC extends FForge_SeleniumTestCase
 		// Grant it tracker manager permissions
 		$this->clickAndWait("//td/form/div[contains(.,'Senior Developer (in project MetaProject)')]/../div/input[@value='Edit Permissions']") ;
 		$this->waitForPageToLoad("30000");
-		$this->select($this->byXpath("//select[contains(@name,'data[tracker]')]"))->selectOptionByLabel("Manager");
+		$this->select($this->byXPath("//select[contains(@name,'data[tracker]')]"))->selectOptionByLabel("Manager");
 		$this->clickAndWait("//input[@value='Submit']") ;
 		$this->waitForPageToLoad("30000");
 
@@ -500,7 +500,7 @@ class RBAC extends FForge_SeleniumTestCase
 
 		$this->assertTrue($this->isElementPresent("//input[@value='Link external role']/../../div/fieldset/select/option[.='Documentation masters (global role)']")) ;
 		$this->assertFalse($this->isElementPresent("//input[@value='Link external role']/../../div/fieldset/select/option[.='Project moderators (global role)']")) ;
-		$this->select($this->byXpath("//input[@value='Link external role']/../../div/fieldset/select"))->selectOptionByLabel("Documentation masters (global role)") ;
+		$this->select($this->byXPath("//input[@value='Link external role']/../../div/fieldset/select"))->selectOptionByLabel("Documentation masters (global role)") ;
 		$this->clickAndWait("//input[@value='Link external role']") ;
 		$this->waitForPageToLoad("30000");
 		$this->assertTrue($this->isElementPresent("//td/form/div[contains(.,'Documentation masters (global role)')]/../div/input[contains(@value,'Unlink Role')]"));
@@ -512,7 +512,7 @@ class RBAC extends FForge_SeleniumTestCase
 		$this->clickAndWait("link=Users and permissions");
 		$this->waitForPageToLoad("30000");
 		$this->type ("//form[contains(@action,'users.php')]//input[@name='form_unix_name' and @type='text']", "guru") ;
-		$this->select($this->byXpath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Admin");
+		$this->select($this->byXPath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Admin");
 		$this->clickAndWait("//input[@value='Add Member']") ;
 		$this->waitForPageToLoad("30000");
 		$this->assertTrue($this->isTextPresent("guru Lastname"));
@@ -547,7 +547,7 @@ class RBAC extends FForge_SeleniumTestCase
 		$this->waitForPageToLoad("30000");
 		$this->assertTrue($this->isTextPresent("Temporary role"));
 		$this->type ("//form[contains(@action,'users.php')]//input[@name='form_unix_name' and @type='text']", "trainee") ;
-		$this->select($this->byXpath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Temporary role");
+		$this->select($this->byXPath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Temporary role");
 		$this->clickAndWait("//input[@value='Add Member']") ;
 		$this->waitForPageToLoad("30000");
 		$this->clickAndWait("//td/form/div[contains(.,'Temporary role')]/../../form/div/input[@value='Delete role']") ;
@@ -610,17 +610,17 @@ class RBAC extends FForge_SeleniumTestCase
 		$this->clickAndWait("//td/form/div[contains(.,'Anonymous')]/../div/input[@value='Edit Permissions']") ;
 		$this->waitForPageToLoad("30000");
 
-		$this->select($this->byXpath("//tr/td[contains(.,'first-news')]/../td/fieldset/select"))->selectOptionByLabel("Read only");
+		$this->select($this->byXPath("//tr/td[contains(.,'first-news')]/../td/fieldset/select"))->selectOptionByLabel("Read only");
 		$this->clickAndWait("//input[@value='Submit']") ;
 		$this->waitForPageToLoad("30000");
 		$this->assertSelected("//tr/td[contains(.,'first-news')]/../td/fieldset/select", "Read only");
 
-		$this->select($this->byXpath("//tr/td[contains(.,'first-news')]/../td/fieldset/select"))->selectOptionByLabel("Moderated post");
+		$this->select($this->byXPath("//tr/td[contains(.,'first-news')]/../td/fieldset/select"))->selectOptionByLabel("Moderated post");
 		$this->clickAndWait("//input[@value='Submit']") ;
 		$this->waitForPageToLoad("30000");
 		$this->assertSelected("//tr/td[contains(.,'first-news')]/../td/fieldset/select", "Moderated post");
 
-		$this->select($this->byXpath("//tr/td[contains(.,'first-news')]/../td/fieldset/select"))->selectOptionByLabel("Unmoderated post");
+		$this->select($this->byXPath("//tr/td[contains(.,'first-news')]/../td/fieldset/select"))->selectOptionByLabel("Unmoderated post");
 		$this->clickAndWait("//input[@value='Submit']") ;
 		$this->waitForPageToLoad("30000");
 		$this->assertSelected("//tr/td[contains(.,'first-news')]/../td/fieldset/select", "Unmoderated post");
diff --git a/tests/func/30_Search/searchTest.php b/tests/func/30_Search/searchTest.php
index 21df270..7b38652 100644
--- a/tests/func/30_Search/searchTest.php
+++ b/tests/func/30_Search/searchTest.php
@@ -541,7 +541,7 @@ class Search extends FForge_SeleniumTestCase
 		$this->clickAndWait("link=Users and permissions");
 		$this->waitForPageToLoad("30000");
 		$this->type ("//form[contains(@action,'users.php')]//input[@name='form_unix_name' and @type='text']", "ratatouille") ;
-		$this->select($this->byXpath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Trainee");
+		$this->select($this->byXPath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Trainee");
 		$this->clickAndWait("//input[@value='Add Member']") ;
 		$this->waitForPageToLoad("30000");
 
@@ -549,14 +549,14 @@ class Search extends FForge_SeleniumTestCase
 		$this->waitForPageToLoad("30000");
 		$this->clickAndWait("//td/form/div[contains(.,'Trainee')]/../div/input[@value='Edit Permissions']") ;
 		$this->waitForPageToLoad("30000");
-		$this->select($this->byXpath("//select[contains(@name,'data[project_read]')]"))->selectOptionByLabel("Visible");
-		$this->select($this->byXpath("//tr/td[.='Bugs']/../td/fieldset/select[contains(@name,'data[tracker]')]"))->selectOptionByLabel("Read only");
-		$this->select($this->byXpath("//tr/td[.='Patches']/../td/fieldset/select[contains(@name,'data[tracker]')]"))->selectOptionByLabel("No Access");
-		$this->select($this->byXpath("//tr/td[.='To Do']/../td/fieldset/select[contains(@name,'data[pm]')]"))->selectOptionByLabel("Read only");
-		$this->select($this->byXpath("//tr/td[.='Next Release']/../td/fieldset/select[contains(@name,'data[pm]')]"))->selectOptionByLabel("No Access");
-		$this->select($this->byXpath("//tr/td[.='open-discussion']/../td/fieldset/select[contains(@name,'data[forum]')]"))->selectOptionByLabel("Read only");
-		$this->select($this->byXpath("//tr/td[.='developers-discussion']/../td/fieldset/select[contains(@name,'data[forum]')]"))->selectOptionByLabel("No Access");
-		$this->select($this->byXpath("//select[contains(@name,'data[docman]')]"))->selectOptionByLabel("Read only");
+		$this->select($this->byXPath("//select[contains(@name,'data[project_read]')]"))->selectOptionByLabel("Visible");
+		$this->select($this->byXPath("//tr/td[.='Bugs']/../td/fieldset/select[contains(@name,'data[tracker]')]"))->selectOptionByLabel("Read only");
+		$this->select($this->byXPath("//tr/td[.='Patches']/../td/fieldset/select[contains(@name,'data[tracker]')]"))->selectOptionByLabel("No Access");
+		$this->select($this->byXPath("//tr/td[.='To Do']/../td/fieldset/select[contains(@name,'data[pm]')]"))->selectOptionByLabel("Read only");
+		$this->select($this->byXPath("//tr/td[.='Next Release']/../td/fieldset/select[contains(@name,'data[pm]')]"))->selectOptionByLabel("No Access");
+		$this->select($this->byXPath("//tr/td[.='open-discussion']/../td/fieldset/select[contains(@name,'data[forum]')]"))->selectOptionByLabel("Read only");
+		$this->select($this->byXPath("//tr/td[.='developers-discussion']/../td/fieldset/select[contains(@name,'data[forum]')]"))->selectOptionByLabel("No Access");
+		$this->select($this->byXPath("//select[contains(@name,'data[docman]')]"))->selectOptionByLabel("Read only");
 		$this->clickAndWait("//input[@value='Submit']") ;
 		$this->waitForPageToLoad("30000");
 
@@ -564,14 +564,14 @@ class Search extends FForge_SeleniumTestCase
 		$this->waitForPageToLoad("30000");
 		$this->clickAndWait("//td/form/div[contains(.,'Anonymous')]/../div/input[@value='Edit Permissions']") ;
 		$this->waitForPageToLoad("30000");
-		$this->select($this->byXpath("//select[contains(@name,'data[project_read]')]"))->selectOptionByLabel("Visible");
-		$this->select($this->byXpath("//tr/td[.='Bugs']/../td/fieldset/select[contains(@name,'data[tracker]')]"))->selectOptionByLabel("No Access");
-		$this->select($this->byXpath("//tr/td[.='Patches']/../td/fieldset/select[contains(@name,'data[tracker]')]"))->selectOptionByLabel("No Access");
-		$this->select($this->byXpath("//tr/td[.='To Do']/../td/fieldset/select[contains(@name,'data[pm]')]"))->selectOptionByLabel("No Access");
-		$this->select($this->byXpath("//tr/td[.='Next Release']/../td/fieldset/select[contains(@name,'data[pm]')]"))->selectOptionByLabel("No Access");
-		$this->select($this->byXpath("//tr/td[.='open-discussion']/../td/fieldset/select[contains(@name,'data[forum]')]"))->selectOptionByLabel("No Access");
-		$this->select($this->byXpath("//tr/td[.='developers-discussion']/../td/fieldset/select[contains(@name,'data[forum]')]"))->selectOptionByLabel("No Access");
-		$this->select($this->byXpath("//select[contains(@name,'data[docman]')]"))->selectOptionByLabel("No Access");
+		$this->select($this->byXPath("//select[contains(@name,'data[project_read]')]"))->selectOptionByLabel("Visible");
+		$this->select($this->byXPath("//tr/td[.='Bugs']/../td/fieldset/select[contains(@name,'data[tracker]')]"))->selectOptionByLabel("No Access");
+		$this->select($this->byXPath("//tr/td[.='Patches']/../td/fieldset/select[contains(@name,'data[tracker]')]"))->selectOptionByLabel("No Access");
+		$this->select($this->byXPath("//tr/td[.='To Do']/../td/fieldset/select[contains(@name,'data[pm]')]"))->selectOptionByLabel("No Access");
+		$this->select($this->byXPath("//tr/td[.='Next Release']/../td/fieldset/select[contains(@name,'data[pm]')]"))->selectOptionByLabel("No Access");
+		$this->select($this->byXPath("//tr/td[.='open-discussion']/../td/fieldset/select[contains(@name,'data[forum]')]"))->selectOptionByLabel("No Access");
+		$this->select($this->byXPath("//tr/td[.='developers-discussion']/../td/fieldset/select[contains(@name,'data[forum]')]"))->selectOptionByLabel("No Access");
+		$this->select($this->byXPath("//select[contains(@name,'data[docman]')]"))->selectOptionByLabel("No Access");
 		$this->clickAndWait("//input[@value='Submit']") ;
 		$this->waitForPageToLoad("30000");
 
diff --git a/tests/func/50_PluginsScmGit/gitSSHTest.php b/tests/func/50_PluginsScmGit/gitSSHTest.php
index dbff68f..51d8594 100644
--- a/tests/func/50_PluginsScmGit/gitSSHTest.php
+++ b/tests/func/50_PluginsScmGit/gitSSHTest.php
@@ -87,7 +87,7 @@ class ScmGitSSHTest extends FForge_SeleniumTestCase
 		$this->activatePlugin('globalactivity');
 
 		$this->open(ROOT.'/plugins/globalactivity/');
-		$this->select($this->byXpath("//select[@name='show[]']"))->selectOptionByLabel("Git Commits");
+		$this->select($this->byXPath("//select[@name='show[]']"))->selectOptionByLabel("Git Commits");
 		$this->clickAndWait("submit");
 		$this->assertTextPresent("scm commit: Modifying file");
 		$this->assertTextPresent("scm commit: Adding file");
diff --git a/tests/func/50_PluginsScmGit/gitSmartHTTPTest.php b/tests/func/50_PluginsScmGit/gitSmartHTTPTest.php
index edd1a4a..0d7c97e 100644
--- a/tests/func/50_PluginsScmGit/gitSmartHTTPTest.php
+++ b/tests/func/50_PluginsScmGit/gitSmartHTTPTest.php
@@ -130,7 +130,7 @@ class ScmGitSmartHTTPTest extends FForge_SeleniumTestCase
 		$this->clickAndWait("link=Admin");
 		$this->clickAndWait("link=Users and permissions");
 		$this->type ("//form[contains(@action,'users.php')]//input[@name='form_unix_name' and @type='text']", "otheruser") ;
-		$this->select($this->byXpath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Admin");
+		$this->select($this->byXPath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Admin");
 		$this->clickAndWait ("//input[@value='Add Member']") ;
 		$this->assertTrue($this->isTextPresent("otheruser Lastname"));
 		$this->assertTrue($this->isElementPresent("//tr/td/a[.='otheruser Lastname']/../../td/div[contains(.,'Admin')]")) ;
diff --git a/tests/func/50_PluginsScmHg/hgHTTPTest.php b/tests/func/50_PluginsScmHg/hgHTTPTest.php
index 8c9dbb7..196e128 100644
--- a/tests/func/50_PluginsScmHg/hgHTTPTest.php
+++ b/tests/func/50_PluginsScmHg/hgHTTPTest.php
@@ -2,7 +2,7 @@
 /**
  * Copyright (C) 2012 Roland Mas
  * Copyright (C) 2015  Inria (Sylvain Beucler)
- * Copyright 2017, Franck Villaume - TrivialDev
+ * Copyright 2017,2019, Franck Villaume - TrivialDev
  *
  * This file is part of FusionForge.
  *
@@ -38,7 +38,7 @@ class ScmHgHTTPTest extends FForge_SeleniumTestCase
 		$this->clickAndWait("link=Admin");
 		$this->clickAndWait("link=Tools");
 		$this->clickAndWait("link=Source Code Admin");
-		$this->click("//input[@name='scmengine[]' and @value='scmhg']");
+		$this->clickAndWait("//input[@name='scmengine[]' and @value='scmhg']");
 		$this->clickAndWait("submit");
 
 		// Create repositories
@@ -88,13 +88,13 @@ class ScmHgHTTPTest extends FForge_SeleniumTestCase
 // 		// Disable anonymous access to gitweb
 // 		$this->openWithOneRetry(ROOT);
 // 		$this->clickAndWait("link=ProjectA");
-// 		$this->click("link=Admin");
+// 		$this->clickAndWait("link=Admin");
 // 		$this->waitForPageToLoad("30000");
 // 		$this->assertTrue($this->isTextPresent("Project Information"));
-// 		$this->click("link=Users and permissions");
+// 		$this->clickAndWait("link=Users and permissions");
 // 		$this->waitForPageToLoad("30000");
 // 		$this->assertTrue($this->isTextPresent("Current Project Members"));
-// 		$this->click("//tr/td/form/div[contains(.,'Anonymous')]/../../../td/form/div/input[contains(@value,'Unlink Role')]");
+// 		$this->clickAndWait("//tr/td/form/div[contains(.,'Anonymous')]/../../../td/form/div/input[contains(@value,'Unlink Role')]");
 // 		$this->waitForPageToLoad("30000");
 // 		$this->assertTrue($this->isTextPresent("Role unlinked successfully"));
 //
@@ -130,7 +130,7 @@ class ScmHgHTTPTest extends FForge_SeleniumTestCase
 // 		$this->clickAndWait("link=Admin");
 // 		$this->clickAndWait("link=Users and permissions");
 // 		$this->type ("//form[contains(@action,'users.php')]//input[@name='form_unix_name' and @type='text']", "otheruser") ;
-// 		$this->select("//input[@value='Add Member']/../fieldset/select[@name='role_id']", "label=Admin");
+// 		$this->select($this->byXPath("//input[@value='Add Member']/../fieldset/select[@name='role_id']"))->selectOptionByLabel("Admin");
 // 		$this->clickAndWait ("//input[@value='Add Member']") ;
 // 		$this->assertTrue($this->isTextPresent("otheruser Lastname"));
 // 		$this->assertTrue($this->isElementPresent("//tr/td/a[.='otheruser Lastname']/../../td/div[contains(.,'Admin')]")) ;
@@ -139,7 +139,7 @@ class ScmHgHTTPTest extends FForge_SeleniumTestCase
 //
 // 		$this->clickAndWait("link=Tools");
 // 		$this->clickAndWait("link=Source Code Admin");
-// 		$this->click("//input[@name='scmengine[]' and @value='scmgit']");
+// 		$this->clickAndWait("//input[@name='scmengine[]' and @value='scmgit']");
 // 		$this->clickAndWait("submit");
 //
 // 		// Create repositories
diff --git a/tests/func/50_PluginsScmHg/hgSSHTest.php b/tests/func/50_PluginsScmHg/hgSSHTest.php
index 34ebcea..0b051af 100644
--- a/tests/func/50_PluginsScmHg/hgSSHTest.php
+++ b/tests/func/50_PluginsScmHg/hgSSHTest.php
@@ -87,7 +87,7 @@ class ScmHgSSHTest extends FForge_SeleniumTestCase
 // 		$this->activatePlugin('globalactivity');
 // 
 // 		$this->open(ROOT.'/plugins/globalactivity/');
-// 		$this->select("//select[@name='show[]']","label=Git Commits");
+// 		$this->select($this->byXPath("//select[@name='show[]']"))->selectOptionByLabel("Hg Commits");
 // 		$this->clickAndWait("submit");
 // 		$this->assertTextPresent("scm commit: Modifying file");
 // 		$this->assertTextPresent("scm commit: Adding file");
diff --git a/tests/func/50_PluginsScmSvn/svnWebDAVTest.php b/tests/func/50_PluginsScmSvn/svnWebDAVTest.php
index c08423c..8394caa 100644
--- a/tests/func/50_PluginsScmSvn/svnWebDAVTest.php
+++ b/tests/func/50_PluginsScmSvn/svnWebDAVTest.php
@@ -2,6 +2,7 @@
 /**
  * Copyright (C) 2012 Roland Mas
  * Copyright (C) 2015  Inria (Sylvain Beucler)
+ * Copyright 2019, Franck Villaume - TrivialDev
  *
  * This file is part of FusionForge.
  *
@@ -39,7 +40,7 @@ class ScmSvnWebDAVTest extends FForge_SeleniumTestCase
 		$this->clickAndWait("link=Admin");
 		$this->clickAndWait("link=Tools");
 		$this->clickAndWait("link=Source Code Admin");
-		$this->click("//input[@name='scmengine[]' and @value='scmsvn']");
+		$this->clickAndWait("//input[@name='scmengine[]' and @value='scmsvn']");
 		$this->clickAndWait("submit");
 
 		// Run the cronjob to create repositories
diff --git a/tests/func/60_PluginsBlocks/blocksTest.php b/tests/func/60_PluginsBlocks/blocksTest.php
index 5e2b1b2..3f417dc 100644
--- a/tests/func/60_PluginsBlocks/blocksTest.php
+++ b/tests/func/60_PluginsBlocks/blocksTest.php
@@ -2,6 +2,7 @@
 /**
  * Copyright (C) 2010 Alcatel-Lucent
  * Copyright (C) 2015  Inria (Sylvain Beucler)
+ * Copyright 2019, Franck Villaume - TrivialDev
  *
  * This file is part of FusionForge.
  *
@@ -57,33 +58,33 @@ class UserBlocks extends FForge_SeleniumTestCase
 
 		$this->gotoProject('ProjectA');
 
-		$this->click("link=Admin");
+		$this->clickAndWait("link=Admin");
 		$this->waitForPageToLoad("30000");
-		$this->click("link=Tools");
+		$this->clickAndWait("link=Tools");
 		$this->waitForPageToLoad("30000");
-		$this->click("use_blocks");
-		$this->click("submit");
+		$this->clickAndWait("use_blocks");
+		$this->clickAndWait("submit");
 		$this->waitForPageToLoad("30000");
 		$this->assertTrue($this->isTextPresent("Project information updated"));
-		$this->click("link=Blocks Admin");
+		$this->clickAndWait("link=Blocks Admin");
 		$this->waitForPageToLoad("30000");
-		$this->click("activate[summary_description]");
-	//    $this->click("activate[summary_right]");
-		$this->click("//input[@value='Save Blocks']");
+		$this->clickAndWait("activate[summary_description]");
+	//    $this->clickAndWait("activate[summary_right]");
+		$this->clickAndWait("//input[@value='Save Blocks']");
 		$this->waitForPageToLoad("30000");
 
 		$this->open("/plugins/blocks/index.php?id=7&type=admin&pluginname=blocks");
-		$this->click("link=Configure");
+		$this->clickAndWait("link=Configure");
 		$this->waitForPageToLoad("30000");
 		$this->type("body", "This is my nice block.");
-		$this->click("//input[@value='Save']");
+		$this->clickAndWait("//input[@value='Save']");
 		$this->waitForPageToLoad("30000");
-	//    $this->click("//main[@id='maindiv']/form/table/tbody/tr[2]/td[4]/a");
+	//    $this->clickAndWait("//main[@id='maindiv']/form/table/tbody/tr[2]/td[4]/a");
 	//    $this->waitForPageToLoad("30000");
 	//    $this->type("body", "{boxTop Project}\nThis is the summary block.\n{boxBottom}");
-	//    $this->click("//input[@value='Save']");
+	//    $this->clickAndWait("//input[@value='Save']");
 	//    $this->waitForPageToLoad("30000");
-		$this->click("link=Summary");
+		$this->clickAndWait("link=Summary");
 		$this->waitForPageToLoad("30000");
 	//    $this->assertText("//td[@id='main']/table[1]/tbody/tr/td[1]", "This is my nice block.");
 	//    $this->assertEquals("This is the summary block.", $this->getText("//td[@id='main']/table[1]/tbody/tr/td[2]/table[1]/tbody/tr[2]/td"));
diff --git a/tests/func/60_PluginsGlobalactivity/globalactivityTest.php b/tests/func/60_PluginsGlobalactivity/globalactivityTest.php
index d810853..16ef356 100644
--- a/tests/func/60_PluginsGlobalactivity/globalactivityTest.php
+++ b/tests/func/60_PluginsGlobalactivity/globalactivityTest.php
@@ -66,7 +66,7 @@ class GlobalActivity extends FForge_SeleniumTestCase
 		$this->gotoProject('ProjectA');
 		$this->clickAndWait("link=Forums");
 		$this->clickAndWait("link=open-discussion");
-		$this->click("link=Start New Thread");
+		$this->clickAndWait("link=Start New Thread");
 		$this->waitForPageToLoad("30000");
 		$this->type("subject", "Message1 in a bottle");
 		$this->type("body", "ninetynine of them on Charlie's wall - also, ZONGO");
@@ -75,7 +75,7 @@ class GlobalActivity extends FForge_SeleniumTestCase
 		$this->createAndGoto('ProjectB');
 		$this->clickAndWait("link=Forums");
 		$this->clickAndWait("link=open-discussion");
-		$this->click("link=Start New Thread");
+		$this->clickAndWait("link=Start New Thread");
 		$this->waitForPageToLoad("30000");
 		$this->type("subject", "Message2");
 		$this->type("body", "Forum post in project B");
@@ -88,10 +88,10 @@ class GlobalActivity extends FForge_SeleniumTestCase
 		$this->clickAndWait("addItemDocmanMenu");
 		// ugly hack until we fix behavior in docman when no folders exist. We need to click twice on the link
 		$this->clickAndWait("addItemDocmanMenu");
-		$this->click("id=tab-new-document");
+		$this->clickAndWait("id=tab-new-document");
 		$this->type("title", "Doc1 Vladimir");
 		$this->type("//textarea[@name='description']", "Main website (the needle) - also, ZONGO");
-		$this->click("//input[@name='type' and @value='pasteurl']");
+		$this->clickAndWait("//input[@name='type' and @value='pasteurl']");
 		$this->type("file_url", "http://fusionforge.org/");
 		$this->clickAndWait("submit");
 
@@ -218,14 +218,14 @@ class GlobalActivity extends FForge_SeleniumTestCase
 		$this->clickAndWait("link=Admin");
 		$this->clickAndWait("link=Users and permissions");
 		$this->clickAndWait ("//td/form/div[contains(.,'Anonymous')]/../div/input[@value='Edit Permissions']") ;
-		$this->select("//select[contains(@name,'data[project_read]')]", "label=Visible");
-		$this->select("//tr/td[.='Bugs']/../td/fieldset/select[contains(@name,'data[tracker]')]", "label=No Access");
-		$this->select("//tr/td[.='Patches']/../td/fieldset/select[contains(@name,'data[tracker]')]", "label=No Access");
-		$this->select("//tr/td[.='To Do']/../td/fieldset/select[contains(@name,'data[pm]')]", "label=No Access");
-		$this->select("//tr/td[.='Next Release']/../td/fieldset/select[contains(@name,'data[pm]')]", "label=No Access");
-		$this->select("//tr/td[.='open-discussion']/../td/fieldset/select[contains(@name,'data[forum]')]", "label=No Access");
-		$this->select("//tr/td[.='developers-discussion']/../td/fieldset/select[contains(@name,'data[forum]')]", "label=No Access");
-		$this->select("//select[contains(@name,'data[docman]')]", "label=Read only");
+		$this->select($this->byXPath("//select[contains(@name,'data[project_read]')]"))->selectOptionByLabel("Visible");
+		$this->select($this->byXPath("//tr/td[.='Bugs']/../td/fieldset/select[contains(@name,'data[tracker]')]"))->selectOptionByLabel("No Access");
+		$this->select($this->byXPath("//tr/td[.='Patches']/../td/fieldset/select[contains(@name,'data[tracker]')]"))->selectOptionByLabel("No Access");
+		$this->select($this->byXPath("//tr/td[.='To Do']/../td/fieldset/select[contains(@name,'data[pm]')]"))->selectOptionByLabel("No Access");
+		$this->select($this->byXPath("//tr/td[.='Next Release']/../td/fieldset/select[contains(@name,'data[pm]')]"))->selectOptionByLabel("No Access");
+		$this->select($this->byXPath("//tr/td[.='open-discussion']/../td/fieldset/select[contains(@name,'data[forum]')]"))->selectOptionByLabel("No Access");
+		$this->select($this->byXPath("//tr/td[.='developers-discussion']/../td/fieldset/select[contains(@name,'data[forum]')]"))->selectOptionByLabel("No Access");
+		$this->select($this->byXPath("//select[contains(@name,'data[docman]')]"))->selectOptionByLabel("Read only");
 		$this->clickAndWait ("//input[@value='Submit']") ;
 
 		// Recheck perms on anonymous global activity page
diff --git a/tests/func/60_PluginsMediawiki/mediawikiTest.php b/tests/func/60_PluginsMediawiki/mediawikiTest.php
index 50d6e5c..661fe6b 100644
--- a/tests/func/60_PluginsMediawiki/mediawikiTest.php
+++ b/tests/func/60_PluginsMediawiki/mediawikiTest.php
@@ -38,7 +38,7 @@ class PluginMediawiki extends FForge_SeleniumTestCase
 		$this->gotoProject('ProjectA');
 		$this->clickAndWait("link=Admin");
 		$this->clickAndWait("link=Tools");
-		$this->click("use_mediawiki");
+		$this->clickAndWait("use_mediawiki");
 		$this->clickAndWait("submit");
 		$this->assertTrue($this->isTextPresent("Project information updated"));
 
diff --git a/tests/func/60_PluginsMoinMoin/moinmoinTest.php b/tests/func/60_PluginsMoinMoin/moinmoinTest.php
index 7c12922..538e5f5 100644
--- a/tests/func/60_PluginsMoinMoin/moinmoinTest.php
+++ b/tests/func/60_PluginsMoinMoin/moinmoinTest.php
@@ -2,6 +2,7 @@
 /**
  * Copyright 2012, Roland Mas
  * Copyright (C) 2015  Inria (Sylvain Beucler)
+ * Copyright 2019, Franck Villaume - TrivialDev
  *
  * This file is part of FusionForge.
  *
@@ -38,7 +39,7 @@ class PluginMoinMoin extends FForge_SeleniumTestCase
 		$this->gotoProject('ProjectA');
 		$this->clickAndWait("link=Admin");
 		$this->clickAndWait("link=Tools");
-		$this->click("use_moinmoin");
+		$this->clickAndWait("use_moinmoin");
 		$this->clickAndWait("submit");
 		$this->assertTrue($this->isTextPresent("Project information updated"));
 
diff --git a/tests/func/60_PluginsOnlineHelp/contextualHelpTest.php b/tests/func/60_PluginsOnlineHelp/contextualHelpTest.php
index a6a9a2e..614ecd0 100644
--- a/tests/func/60_PluginsOnlineHelp/contextualHelpTest.php
+++ b/tests/func/60_PluginsOnlineHelp/contextualHelpTest.php
@@ -2,6 +2,7 @@
 /**
  * Copyright (C) 2010 Alcatel-Lucent
  * Copyright (C) 2015  Inria (Sylvain Beucler)
+ * Copyright 2019, Franck Villaume - TrivialDev
  *
  * This file is part of FusionForge.
  *
@@ -77,7 +78,7 @@ class ContextualHelp extends FForge_SeleniumTestCase
 	function checkWindow($action, $text)
 	{
 		$this->clickAndWait($action);
-		$this->click("link=Get Help");
+		$this->clickAndWait("link=Get Help");
 		sleep(1);
 		$this->waitForPopUp("HelpWindow", "30000");
 		$this->selectWindow("name=HelpWindow");
diff --git a/tests/func/SeleniumForge.php b/tests/func/SeleniumForge.php
index 1c94b92..3358b15 100644
--- a/tests/func/SeleniumForge.php
+++ b/tests/func/SeleniumForge.php
@@ -198,7 +198,7 @@ class FForge_SeleniumTestCase extends PHPUnit_Extensions_Selenium2TestCase
 			$id = substr($link, 3);
 			$myelement = $this->byId($id);
 		} else if (preg_match('/^\/\/[a-z]/', $link)) {
-			$myelement = $this->byXpath($link);
+			$myelement = $this->byXPath($link);
 		} else {
 			//default case
 			$myelement = $this->byName($link);
@@ -427,7 +427,7 @@ class FForge_SeleniumTestCase extends PHPUnit_Extensions_Selenium2TestCase
 		$this->clickAndWait("//input[@name='scm' and @value='$scm']");
 
 		try {
-			$this->select($this->byXpath("//select[@name='built_from_template']"))->selectOptionByLabel("Tmpl");
+			$this->select($this->byXPath("//select[@name='built_from_template']"))->selectOptionByLabel("Tmpl");
 		} catch (Exception $e) {}
 
 		$this->clickAndWait("submit");
@@ -589,15 +589,17 @@ class FForge_SeleniumTestCase extends PHPUnit_Extensions_Selenium2TestCase
 	}
 
 	function isElementPresent($element) {
-		if (preg_match('/^\/\/[a-z]/', $element)) {
-			if ($this->byXpath($element) instanceof PHPUnit_Extensions_Selenium2TestCase_Element) {
-				return true;
-			}
-		} elseif (preg_match('/^link=/', $element)) {
-			if ($this->byLinkText(substr($element, 5)) instanceof PHPUnit_Extensions_Selenium2TestCase_Element) {
-				return true;
+		try {
+			if (preg_match('/^\/\/[a-z]/', $element)) {
+				if ($this->byXPath($element) instanceof PHPUnit_Extensions_Selenium2TestCase_Element) {
+					return true;
+				}
+			} elseif (preg_match('/^link=/', $element)) {
+				if ($this->byLinkText(substr($element, 5)) instanceof PHPUnit_Extensions_Selenium2TestCase_Element) {
+					return true;
+				}
 			}
-		}
+		} catch (Exception $e) {}
 		return false;
 	}
 
@@ -610,7 +612,7 @@ class FForge_SeleniumTestCase extends PHPUnit_Extensions_Selenium2TestCase
 
 	function type($name, $value) {
 		if (preg_match('/^\/\/[a-z]/', $name)) {
-			$myelement = $this->byXpath($name)->value($value);
+			$myelement = $this->byXPath($name)->value($value);
 		} else {
 			$this->byName($name)->value($value);
 		}
@@ -626,14 +628,14 @@ class FForge_SeleniumTestCase extends PHPUnit_Extensions_Selenium2TestCase
 	}
 
 	function check($string) {
-		$myelement = $this->byXpath($string);
+		$myelement = $this->byXPath($string);
 		if (!$myelement->attribute('checked')) {
 			$myelement->click();
 		}
 	}
 
 	function uncheck($string) {
-		$myelement = $this->byXpath($string);
+		$myelement = $this->byXPath($string);
 		if ($myelement->attribute('checked')) {
 			$myelement->click();
 		}

-----------------------------------------------------------------------

Summary of changes:
 tests/func/10_Site/loginTest.php                   |  2 +-
 tests/func/10_Site/projectsTest.php                |  4 +-
 tests/func/20_Docs/createDocURLTest.php            | 16 +++----
 tests/func/20_News/newsTest.php                    |  4 +-
 tests/func/20_Surveys/surveysTest.php              |  8 ++--
 tests/func/20_Tasks/createTaskTest.php             |  2 +-
 tests/func/30_RBAC/rbacTest.php                    | 56 +++++++++++-----------
 tests/func/30_Search/searchTest.php                | 34 ++++++-------
 tests/func/50_PluginsScmGit/gitSSHTest.php         |  2 +-
 tests/func/50_PluginsScmGit/gitSmartHTTPTest.php   |  2 +-
 tests/func/50_PluginsScmHg/hgHTTPTest.php          | 14 +++---
 tests/func/50_PluginsScmHg/hgSSHTest.php           |  2 +-
 tests/func/50_PluginsScmSvn/svnWebDAVTest.php      |  3 +-
 tests/func/60_PluginsBlocks/blocksTest.php         | 27 ++++++-----
 .../globalactivityTest.php                         | 24 +++++-----
 tests/func/60_PluginsMediawiki/mediawikiTest.php   |  2 +-
 tests/func/60_PluginsMoinMoin/moinmoinTest.php     |  3 +-
 .../60_PluginsOnlineHelp/contextualHelpTest.php    |  3 +-
 tests/func/SeleniumForge.php                       | 28 ++++++-----
 19 files changed, 121 insertions(+), 115 deletions(-)


hooks/post-receive
-- 
FusionForge



More information about the Fusionforge-commits mailing list