From 92b0ef087b6b7c3143ad7c443069db81fbd9c2b9 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Mon, 15 Jul 2019 20:22:04 +0200
Subject: [PATCH] no-jira: hardened selenium test for Firefox

---
 .../selenium/ImsQTI21InteractionsTest.java    | 42 ++++++++++++-------
 .../olat/selenium/page/core/ContactPage.java  |  3 ++
 .../page/group/MembersWizardPage.java         |  5 ++-
 .../page/repository/AuthoringEnvPage.java     |  7 ++--
 4 files changed, 37 insertions(+), 20 deletions(-)

diff --git a/src/test/java/org/olat/selenium/ImsQTI21InteractionsTest.java b/src/test/java/org/olat/selenium/ImsQTI21InteractionsTest.java
index 49bcf63132d..75cbefc3e76 100644
--- a/src/test/java/org/olat/selenium/ImsQTI21InteractionsTest.java
+++ b/src/test/java/org/olat/selenium/ImsQTI21InteractionsTest.java
@@ -98,7 +98,8 @@ public class ImsQTI21InteractionsTest extends Deployments {
 			.clickToolbarRootCrumb();
 		
 		QTI21Page qtiPage = QTI21Page
-				.getQTI21Page(browser);
+				.getQTI21Page(browser)
+				.assertOnAssessmentItem();
 		qtiPage
 			.settings()
 			.options()
@@ -145,7 +146,8 @@ public class ImsQTI21InteractionsTest extends Deployments {
 			.clickToolbarRootCrumb();
 		
 		QTI21Page qtiPage = QTI21Page
-				.getQTI21Page(browser);
+				.getQTI21Page(browser)
+				.assertOnAssessmentItem();
 		qtiPage
 			.settings()
 			.options()
@@ -197,7 +199,8 @@ public class ImsQTI21InteractionsTest extends Deployments {
 			.clickToolbarRootCrumb();
 		
 		QTI21Page qtiPage = QTI21Page
-				.getQTI21Page(browser);
+				.getQTI21Page(browser)
+				.assertOnAssessmentItem();
 		qtiPage
 			.settings()
 			.options()
@@ -247,7 +250,8 @@ public class ImsQTI21InteractionsTest extends Deployments {
 			.clickToolbarRootCrumb();
 		
 		QTI21Page qtiPage = QTI21Page
-				.getQTI21Page(browser);
+				.getQTI21Page(browser)
+				.assertOnAssessmentItem();
 		qtiPage
 			.settings()
 			.options()
@@ -298,7 +302,8 @@ public class ImsQTI21InteractionsTest extends Deployments {
 			.clickToolbarRootCrumb();
 		
 		QTI21Page qtiPage = QTI21Page
-				.getQTI21Page(browser);
+				.getQTI21Page(browser)
+				.assertOnAssessmentItem();
 		qtiPage
 			.settings()
 			.options()
@@ -347,7 +352,8 @@ public class ImsQTI21InteractionsTest extends Deployments {
 			.clickToolbarRootCrumb();
 		
 		QTI21Page qtiPage = QTI21Page
-				.getQTI21Page(browser);
+				.getQTI21Page(browser)
+				.assertOnAssessmentItem();
 		qtiPage
 			.settings()
 			.options()
@@ -411,7 +417,8 @@ public class ImsQTI21InteractionsTest extends Deployments {
 			.clickToolbarRootCrumb();
 		
 		QTI21Page qtiPage = QTI21Page
-				.getQTI21Page(browser);
+				.getQTI21Page(browser)
+				.assertOnAssessmentItem();
 		qtiPage
 			.settings()
 			.options()
@@ -460,7 +467,8 @@ public class ImsQTI21InteractionsTest extends Deployments {
 			.clickToolbarRootCrumb();
 		
 		QTI21Page qtiPage = QTI21Page
-				.getQTI21Page(browser);
+				.getQTI21Page(browser)
+				.assertOnAssessmentItem();
 		qtiPage
 			.settings()
 			.options()
@@ -507,7 +515,8 @@ public class ImsQTI21InteractionsTest extends Deployments {
 			.clickToolbarRootCrumb();
 		
 		QTI21Page qtiPage = QTI21Page
-				.getQTI21Page(browser);
+				.getQTI21Page(browser)
+				.assertOnAssessmentItem();
 		qtiPage
 			.settings()
 			.options()
@@ -558,7 +567,8 @@ public class ImsQTI21InteractionsTest extends Deployments {
 			.clickToolbarRootCrumb();
 		
 		QTI21Page qtiPage = QTI21Page
-				.getQTI21Page(browser);
+				.getQTI21Page(browser)
+				.assertOnAssessmentItem();
 		qtiPage
 			.settings()
 			.options()
@@ -608,7 +618,8 @@ public class ImsQTI21InteractionsTest extends Deployments {
 			.clickToolbarRootCrumb();
 		
 		QTI21Page qtiPage = QTI21Page
-				.getQTI21Page(browser);
+				.getQTI21Page(browser)
+				.assertOnAssessmentItem();
 		qtiPage
 			.settings()
 			.options()
@@ -655,7 +666,8 @@ public class ImsQTI21InteractionsTest extends Deployments {
 			.clickToolbarRootCrumb();
 		
 		QTI21Page qtiPage = QTI21Page
-				.getQTI21Page(browser);
+				.getQTI21Page(browser)
+				.assertOnAssessmentItem();
 		qtiPage
 			.settings()
 			.options()
@@ -703,7 +715,8 @@ public class ImsQTI21InteractionsTest extends Deployments {
 			.clickToolbarRootCrumb();
 		
 		QTI21Page qtiPage = QTI21Page
-				.getQTI21Page(browser);
+				.getQTI21Page(browser)
+				.assertOnAssessmentItem();
 		qtiPage
 			.settings()
 			.options()
@@ -751,7 +764,8 @@ public class ImsQTI21InteractionsTest extends Deployments {
 			.clickToolbarRootCrumb();
 		
 		QTI21Page qtiPage = QTI21Page
-				.getQTI21Page(browser);
+				.getQTI21Page(browser)
+				.assertOnAssessmentItem();
 		qtiPage
 			.settings()
 			.options()
diff --git a/src/test/java/org/olat/selenium/page/core/ContactPage.java b/src/test/java/org/olat/selenium/page/core/ContactPage.java
index 9fe9bc0d92e..170c28a0c66 100644
--- a/src/test/java/org/olat/selenium/page/core/ContactPage.java
+++ b/src/test/java/org/olat/selenium/page/core/ContactPage.java
@@ -65,6 +65,9 @@ public class ContactPage {
 		OOGraphene.scrollTo(buttonsBy, browser);
 		By sendBy = By.cssSelector("fieldset.o_sel_contact_form button.btn-primary");
 		browser.findElement(sendBy).click();
+		By disabledBy = By.cssSelector("fieldset.o_sel_contact_form div.o_sel_contact_body div.o_disabled");
+		OOGraphene.waitElement(disabledBy, browser);
+		
 		OOGraphene.moveTop(browser);
 		OOGraphene.waitAndCloseBlueMessageWindow(browser);
 		return this;
diff --git a/src/test/java/org/olat/selenium/page/group/MembersWizardPage.java b/src/test/java/org/olat/selenium/page/group/MembersWizardPage.java
index b9f9742f126..22681cd5417 100644
--- a/src/test/java/org/olat/selenium/page/group/MembersWizardPage.java
+++ b/src/test/java/org/olat/selenium/page/group/MembersWizardPage.java
@@ -54,7 +54,7 @@ public class MembersWizardPage {
 	public MembersWizardPage nextOverview() {
 		OOGraphene.nextStep(browser);
 		OOGraphene.closeBlueMessageWindow(browser);
-		OOGraphene.waitElement(By.cssSelector("div.o_sel_edit_permissions"), 5, browser);
+		OOGraphene.waitElement(By.cssSelector("div.o_sel_edit_permissions"), browser);
 		return this;
 	}
 	
@@ -142,8 +142,9 @@ public class MembersWizardPage {
 	
 	public MembersWizardPage selectGroupAsParticipant(String groupName) {
 		By rolesBy = By.xpath("//div[contains(@class,'o_table_wrapper')]//table//tr[td[text()='" + groupName + "']]//label[contains(@class,'o_sel_role_participant')]/input");
-		OOGraphene.waitElement(rolesBy, 5, browser);
+		OOGraphene.waitElement(rolesBy, browser);
 		browser.findElement(rolesBy).click();
+		OOGraphene.waitBusy(browser);
 		return this;
 	}
 }
diff --git a/src/test/java/org/olat/selenium/page/repository/AuthoringEnvPage.java b/src/test/java/org/olat/selenium/page/repository/AuthoringEnvPage.java
index 04c76caeba9..1387b1c18f0 100644
--- a/src/test/java/org/olat/selenium/page/repository/AuthoringEnvPage.java
+++ b/src/test/java/org/olat/selenium/page/repository/AuthoringEnvPage.java
@@ -101,10 +101,9 @@ public class AuthoringEnvPage {
 	 * @return
 	 */
 	public AuthoringEnvPage openCreateDropDown() {
-		WebElement createMenuCaret = browser.findElement(createMenuCaretBy);
-		Assert.assertTrue(createMenuCaret.isDisplayed());
-		createMenuCaret.click();
-		OOGraphene.waitElement(createMenuBy, 5, browser);
+		OOGraphene.waitElement(createMenuCaretBy, browser);
+		browser.findElement(createMenuCaretBy).click();
+		OOGraphene.waitElement(createMenuBy, browser);
 		return this;
 	}
 
-- 
GitLab