From c72aada70616a1a94cb1d35bbd81dfb3fc13a541 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Fri, 20 Mar 2020 18:15:38 +0100
Subject: [PATCH] no-jira: update some selenium tests

---
 .../ui/CertificatesOptionsController.java     |  1 +
 .../ui/EfficiencyStatementController.java     |  2 +-
 .../org/olat/selenium/AssessmentTest.java     | 33 ++++++---
 .../page/course/CourseSettingsPage.java       |  2 +-
 .../EfficiencyStatementConfigurationPage.java | 37 +---------
 .../RepositoryCertificateSettingsPage.java    | 70 +++++++++++++++++++
 .../repository/RepositorySettingsPage.java    | 10 +++
 7 files changed, 108 insertions(+), 47 deletions(-)
 create mode 100644 src/test/java/org/olat/selenium/page/repository/RepositoryCertificateSettingsPage.java

diff --git a/src/main/java/org/olat/course/certificate/ui/CertificatesOptionsController.java b/src/main/java/org/olat/course/certificate/ui/CertificatesOptionsController.java
index 160a5503201..f7ba62aff53 100644
--- a/src/main/java/org/olat/course/certificate/ui/CertificatesOptionsController.java
+++ b/src/main/java/org/olat/course/certificate/ui/CertificatesOptionsController.java
@@ -137,6 +137,7 @@ public class CertificatesOptionsController extends FormBasicController {
 	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		setFormTitle("options.certificate.title");
+		formLayout.setElementCssClass("o_sel_certificate_settings");
 		
 		boolean managedEff = RepositoryEntryManagedFlag.isManaged(entry, RepositoryEntryManagedFlag.efficencystatement);
 		String[] pdfCertificatesOptionsValues = new String[] {
diff --git a/src/main/java/org/olat/course/config/ui/EfficiencyStatementController.java b/src/main/java/org/olat/course/config/ui/EfficiencyStatementController.java
index 7ea27d8da7a..52eb7d40be1 100644
--- a/src/main/java/org/olat/course/config/ui/EfficiencyStatementController.java
+++ b/src/main/java/org/olat/course/config/ui/EfficiencyStatementController.java
@@ -86,7 +86,7 @@ public class EfficiencyStatementController extends FormBasicController {
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		setFormTitle("options.efficency.title");
 		setFormContextHelp("Course Settings#_leistungsnachweis");
-		formLayout.setElementCssClass("o_sel_course_certificates");
+		formLayout.setElementCssClass("o_sel_course_efficiency_statements");
 		
 		boolean effEnabled = courseConfig.isEfficencyStatementEnabled();
 		boolean managedEff = RepositoryEntryManagedFlag.isManaged(entry, RepositoryEntryManagedFlag.efficencystatement);
diff --git a/src/test/java/org/olat/selenium/AssessmentTest.java b/src/test/java/org/olat/selenium/AssessmentTest.java
index b5e133c951f..62fa103995d 100644
--- a/src/test/java/org/olat/selenium/AssessmentTest.java
+++ b/src/test/java/org/olat/selenium/AssessmentTest.java
@@ -46,6 +46,7 @@ import org.olat.selenium.page.course.AssessmentToolPage;
 import org.olat.selenium.page.course.BulkAssessmentPage.BulkAssessmentData;
 import org.olat.selenium.page.course.CourseEditorPageFragment;
 import org.olat.selenium.page.course.CoursePageFragment;
+import org.olat.selenium.page.course.CourseSettingsPage;
 import org.olat.selenium.page.course.GroupTaskConfigurationPage;
 import org.olat.selenium.page.course.GroupTaskPage;
 import org.olat.selenium.page.course.GroupTaskToCoachPage;
@@ -659,14 +660,17 @@ public class AssessmentTest extends Deployments {
 			.finish();
 		
 		// return to course
-		courseRuntime = members
+		CourseSettingsPage courseSettings = members
 			.clickToolbarBack()
-			.settings()
-			.efficiencyStatementConfiguration()
+			.settings();
+		courseSettings
+			.certificates()
 			.enableCertificates(false)
 			.enableRecertification()
-			.save()
+			.save();
+		courseSettings
 			.clickToolbarBack();
+		
 		//publish the course
 		courseRuntime
 			.publish();
@@ -761,13 +765,15 @@ public class AssessmentTest extends Deployments {
 			.finish();
 		
 		// return to course
-		courseRuntime = members
+		CourseSettingsPage courseSetting = members
 			.clickToolbarBack()
-			.settings()
-			.efficiencyStatementConfiguration()
+			.settings();
+		courseSetting
+			.certificates()
 			.enableCertificates(true)
 			.enableRecertification()
-			.save()
+			.save();
+		courseSetting
 			.clickToolbarBack();
 		
 		//Participant log in
@@ -847,15 +853,21 @@ public class AssessmentTest extends Deployments {
 			.selectConfigurationWithRubric()
 			.setRubricScore(0.1f, 10.0f, 5.0f);
 		//set the score / passed calculation in root node and publish
-		courseEditor
+		CourseSettingsPage courseSettings = courseEditor
 			.selectRoot()
 			.selectTabScore()
 			.enableRootScoreByNodes()
 			.autoPublish()
-			.settings()
+			.settings();
+		courseSettings
 			.accessConfiguration()
 			.setUserAccess(UserAccess.registred)
 			.save();
+		courseSettings
+			.certificates()
+			.enableCertificates(true)
+			.enableRecertification()
+			.save();
 		
 		//go to members management
 		CoursePageFragment courseRuntime = courseEditor.clickToolbarBack();
@@ -895,6 +907,7 @@ public class AssessmentTest extends Deployments {
 			.assertOnEfficiencyStatmentPage()
 			.assertOnStatement(courseTitle, true)
 			.selectStatement(courseTitle)
+			.selectStatementSegment()
 			.assertOnCourseDetails(assessmentNodeTitle, true);
 	}
 
diff --git a/src/test/java/org/olat/selenium/page/course/CourseSettingsPage.java b/src/test/java/org/olat/selenium/page/course/CourseSettingsPage.java
index b60fc1d6fce..99a41834f83 100644
--- a/src/test/java/org/olat/selenium/page/course/CourseSettingsPage.java
+++ b/src/test/java/org/olat/selenium/page/course/CourseSettingsPage.java
@@ -53,7 +53,7 @@ public class CourseSettingsPage extends RepositorySettingsPage {
 		OOGraphene.waitElement(certificateSegmentBy, browser);
 		browser.findElement(certificateSegmentBy).click();
 		
-		By toolbarSettingsBy = By.cssSelector("fieldset.o_sel_course_certificates");
+		By toolbarSettingsBy = By.cssSelector("fieldset.o_sel_course_efficiency_statements");
 		OOGraphene.waitElement(toolbarSettingsBy, browser);
 
 		return new EfficiencyStatementConfigurationPage(browser);
diff --git a/src/test/java/org/olat/selenium/page/course/EfficiencyStatementConfigurationPage.java b/src/test/java/org/olat/selenium/page/course/EfficiencyStatementConfigurationPage.java
index e338037c0fc..9dbbc74087d 100644
--- a/src/test/java/org/olat/selenium/page/course/EfficiencyStatementConfigurationPage.java
+++ b/src/test/java/org/olat/selenium/page/course/EfficiencyStatementConfigurationPage.java
@@ -36,44 +36,11 @@ public class EfficiencyStatementConfigurationPage {
 	public EfficiencyStatementConfigurationPage(WebDriver browser) {
 		this.browser = browser;
 	}
-	
-	public EfficiencyStatementConfigurationPage enableCertificates(boolean auto) {
-		By by;
-		if(auto) {
-			by = By.cssSelector("fieldset.o_sel_course_certificates div.checkbox input[type='checkbox'][value='auto']");
-		} else {
-			by = By.cssSelector("fieldset.o_sel_course_certificates div.checkbox input[type='checkbox'][value='manual']");
-		}
-		browser.findElement(by).click();
-		OOGraphene.waitBusy(browser);
-		return this;
-	}
-	
-	public EfficiencyStatementConfigurationPage enableRecertification() {
-		By recertificationBy = By.cssSelector("fieldset.o_sel_course_certificates input[type='checkbox'][name='recertification']");
-		browser.findElement(recertificationBy).click();
-		OOGraphene.waitBusy(browser);
-		return this;
-	}
-	
+
 	public EfficiencyStatementConfigurationPage save() {
-		By saveSwitch = By.cssSelector("fieldset.o_sel_course_certificates button.btn.btn-primary");
+		By saveSwitch = By.cssSelector("fieldset.o_sel_course_efficiency_statements button.btn.btn-primary");
 		browser.findElement(saveSwitch).click();
 		OOGraphene.waitBusy(browser);
 		return this;
 	}
-	
-	/**
-	 * Click back to the course
-	 * 
-	 * @return
-	 */
-	public CoursePageFragment clickToolbarBack() {
-		OOGraphene.closeBlueMessageWindow(browser);
-		By toolbarBackBy = By.cssSelector("li.o_breadcrumb_back>a");
-		browser.findElement(toolbarBackBy).click();
-		OOGraphene.waitBusy(browser);
-		return new CoursePageFragment(browser);
-	}
-
 }
diff --git a/src/test/java/org/olat/selenium/page/repository/RepositoryCertificateSettingsPage.java b/src/test/java/org/olat/selenium/page/repository/RepositoryCertificateSettingsPage.java
new file mode 100644
index 00000000000..6f687530049
--- /dev/null
+++ b/src/test/java/org/olat/selenium/page/repository/RepositoryCertificateSettingsPage.java
@@ -0,0 +1,70 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.selenium.page.repository;
+
+import org.olat.selenium.page.graphene.OOGraphene;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+
+/**
+ * 
+ * Initial date: 20 mars 2020<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class RepositoryCertificateSettingsPage {
+	
+	private final WebDriver browser;
+	
+	public RepositoryCertificateSettingsPage(WebDriver browser) {
+		this.browser = browser;
+	}
+	
+	public RepositoryCertificateSettingsPage enableCertificates(boolean auto) {
+		By by;
+		if(auto) {
+			by = By.cssSelector("fieldset.o_sel_certificate_settings div.checkbox input[type='checkbox'][value='auto']");
+		} else {
+			by = By.cssSelector("fieldset.o_sel_certificate_settings div.checkbox input[type='checkbox'][value='manual']");
+		}
+		WebElement checkEl = browser.findElement(by);
+		OOGraphene.check(checkEl, Boolean.TRUE);
+		OOGraphene.waitBusy(browser);
+		return this;
+	}
+	
+	public RepositoryCertificateSettingsPage enableRecertification() {
+		By recertificationBy = By.cssSelector("fieldset.o_sel_certificate_settings input[type='checkbox'][name='recertification']");
+		WebElement checkEl = browser.findElement(recertificationBy);
+		OOGraphene.check(checkEl, Boolean.TRUE);
+		OOGraphene.waitBusy(browser);
+		return this;
+	}
+	
+	public RepositoryCertificateSettingsPage save() {
+		By saveSwitch = By.cssSelector("fieldset.o_sel_certificate_settings button.btn.btn-primary");
+		browser.findElement(saveSwitch).click();
+		OOGraphene.waitBusy(browser);
+		return this;
+	}
+	
+
+}
diff --git a/src/test/java/org/olat/selenium/page/repository/RepositorySettingsPage.java b/src/test/java/org/olat/selenium/page/repository/RepositorySettingsPage.java
index d81d78c30f8..d3d48d828bc 100644
--- a/src/test/java/org/olat/selenium/page/repository/RepositorySettingsPage.java
+++ b/src/test/java/org/olat/selenium/page/repository/RepositorySettingsPage.java
@@ -75,6 +75,16 @@ public class RepositorySettingsPage {
 		return new RepositoryAccessPage(browser);
 	}
 	
+	public RepositoryCertificateSettingsPage certificates() {
+		By accessSegmentBy = By.cssSelector("ul.o_tools_segments a.o_sel_results");
+		OOGraphene.waitElement(accessSegmentBy, browser);
+		browser.findElement(accessSegmentBy).click();
+		
+		By certificatesConfigurationBy = By.cssSelector("fieldset.o_sel_certificate_settings");
+		OOGraphene.waitElement(certificatesConfigurationBy, browser);
+		return new RepositoryCertificateSettingsPage(browser);
+	}
+	
 	public void back() {
 		OOGraphene.clickBreadcrumbBack(browser);
 	}
-- 
GitLab