diff --git a/src/test/java/org/olat/selenium/CourseElementTest.java b/src/test/java/org/olat/selenium/CourseElementTest.java index d724d235942ef314e168ab11b32b0c1056e623e2..862783da859b385854d0c1afd9589dc53aed47e4 100644 --- a/src/test/java/org/olat/selenium/CourseElementTest.java +++ b/src/test/java/org/olat/selenium/CourseElementTest.java @@ -1435,10 +1435,11 @@ public class CourseElementTest extends Deployments { .resume(); String node1 = "Forums " + UUID.randomUUID(); + String node1Short = "Forum " + JunitTestHelper.miniRandom(); NavigationPage navBar = NavigationPage.load(browser); navBar .openCatalogAdministration() - .addCatalogNode(node1, "First level of the catalog", "First level of the catalog"); + .addCatalogNode(node1, node1Short, "First level of the catalog"); //create a course String courseTitle = "Guest FO " + UUID.randomUUID(); @@ -1481,7 +1482,7 @@ public class CourseElementTest extends Deployments { NavigationPage guestNavBar = NavigationPage.load(guestBrowser); guestNavBar .openCatalog() - .selectCatalogEntry(node1) + .selectCatalogEntry(node1, node1Short) .select(courseTitle) .start(); diff --git a/src/test/java/org/olat/selenium/CourseTest.java b/src/test/java/org/olat/selenium/CourseTest.java index 7a1ee9ececeefec1bd987543c14983353bc62d93..d7049bfb161bb378708733c97c910b2013284cb4 100644 --- a/src/test/java/org/olat/selenium/CourseTest.java +++ b/src/test/java/org/olat/selenium/CourseTest.java @@ -544,6 +544,7 @@ public class CourseTest extends Deployments { .assertOnTitle(newCourseName); } + /** * * Create a catalog, create a course, while publishing add the @@ -560,7 +561,7 @@ public class CourseTest extends Deployments { @Drone @User WebDriver userBrowser) throws IOException, URISyntaxException { - UserVO author = new UserRestClient(deploymentUrl).createAuthor(); + UserVO author = new UserRestClient(deploymentUrl).createRandomAuthor(); UserVO user = new UserRestClient(deploymentUrl).createRandomUser(); //administrator create the categories in the catalog @@ -573,12 +574,15 @@ public class CourseTest extends Deployments { String node1 = "First level " + UUID.randomUUID(); String node2_1 = "Second level first element " + UUID.randomUUID(); String node2_2 = "Second level second element " + UUID.randomUUID(); + String node1Short = "First " + JunitTestHelper.miniRandom(); + String node2_1Short = "1.1l " + JunitTestHelper.miniRandom(); + String node2_2Short = "1.2l " + JunitTestHelper.miniRandom(); adminNavBar .openCatalogAdministration() - .addCatalogNode(node1, "First level of the catalog", "First level of the catalog") - .selectNode(node1) - .addCatalogNode(node2_1, "First element of the second level", "First element of the second level") - .addCatalogNode(node2_2, "Second element of the second level", "Second element of the second level"); + .addCatalogNode(node1, node1Short, "First level of the catalog") + .selectNode(node1Short) + .addCatalogNode(node2_1, node2_1Short, "First element of the second level") + .addCatalogNode(node2_2, node2_2Short, "Second element of the second level"); //An author create a course and publish it under a category //created above @@ -616,8 +620,8 @@ public class CourseTest extends Deployments { userNavBar .openMyCourses() .openCatalog() - .selectCatalogEntry(node1) - .selectCatalogEntry(node2_2) + .selectCatalogEntry(node1Short) + .selectCatalogEntry(node2_2Short) .select(courseTitle)//go to the details page .start(); diff --git a/src/test/java/org/olat/selenium/page/course/MyCoursesPage.java b/src/test/java/org/olat/selenium/page/course/MyCoursesPage.java index 4dffb111a052ce90f26f859ca29cd13086b751e5..ced36123b6e0d3e12bd78d91c6894ed4fabff7b6 100644 --- a/src/test/java/org/olat/selenium/page/course/MyCoursesPage.java +++ b/src/test/java/org/olat/selenium/page/course/MyCoursesPage.java @@ -125,8 +125,9 @@ public class MyCoursesPage { OOGraphene.waitBusy(browser); } - public MyCoursesPage selectCatalogEntry(String title) { - By titleBy = By.xpath("//div[contains(@class,'o_sublevel')]//div[contains(@class,'o_meta')]//h4[contains(@class,'o_title')]/a/span[text()[contains(.,'" + title + "')]]"); + public MyCoursesPage selectCatalogEntry(String shortTitle) { + By titleBy = By.xpath("//div[contains(@class,'o_sublevel')][div[contains(@class,'o_meta')]/h4[@class='o_title'][contains(.,'" + shortTitle + "')]]/div/a"); + OOGraphene.waitElement(titleBy, browser); List<WebElement> titleLinks = browser.findElements(titleBy); Assert.assertEquals(1, titleLinks.size()); titleLinks.get(0).click(); diff --git a/src/test/java/org/olat/selenium/page/repository/CatalogAdminPage.java b/src/test/java/org/olat/selenium/page/repository/CatalogAdminPage.java index 731d4fb820e5c44f57e777b6a6a94c48735262db..5457dd55f88faeaa2ab0fa88f962008d45552c37 100644 --- a/src/test/java/org/olat/selenium/page/repository/CatalogAdminPage.java +++ b/src/test/java/org/olat/selenium/page/repository/CatalogAdminPage.java @@ -19,13 +19,9 @@ */ package org.olat.selenium.page.repository; -import java.util.List; - -import org.junit.Assert; import org.olat.selenium.page.graphene.OOGraphene; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; /** * Drives the catalog administration @@ -59,10 +55,8 @@ public class CatalogAdminPage { By titleBy = By.cssSelector(".o_sel_catalog_add_category_popup .o_sel_cat_name input[type='text']"); OOGraphene.waitElement(titleBy, browser); browser.findElement(titleBy).sendKeys(title); - /* By shortTitleBy = By.cssSelector(".o_sel_catalog_add_category_popup .o_sel_cat_short_title input[type='text']"); browser.findElement(shortTitleBy).sendKeys(shortTitle); - */ OOGraphene.tinymce(description, browser); @@ -70,7 +64,7 @@ public class CatalogAdminPage { By saveBy = By.cssSelector(".o_sel_catalog_add_category_popup .o_sel_catalog_entry_form_buttons button.btn-primary"); browser.findElement(saveBy).click(); OOGraphene.waitBusy(browser); - By nodeTitleBy = By.xpath("//div[contains(@class,'o_meta')]//h4[contains(@class,'o_title')]//a/span[contains(text(),'" + title + "')]"); + By nodeTitleBy = By.xpath("//div[contains(@class,'o_meta')]//h4[contains(@class,'o_title')][contains(text(),'" + shortTitle + "')]"); OOGraphene.waitElement(nodeTitleBy, browser); return this; } @@ -81,11 +75,10 @@ public class CatalogAdminPage { * @param title * @return */ - public CatalogAdminPage selectNode(String title) { - By titleBy = By.xpath("//div[contains(@class,'o_meta')]//h4[contains(@class,'o_title')]/a/span[text()[contains(.,'" + title + "')]]"); - List<WebElement> nodeLinks = browser.findElements(titleBy); - Assert.assertEquals(1, nodeLinks.size()); - nodeLinks.get(0).click(); + public CatalogAdminPage selectNode(String shortTitle) { + By titleBy = By.xpath("//div[contains(@class,'o_sublevel')][div[contains(@class,'o_meta')]//h4[contains(@class,'o_title')][text()[contains(.,'" + shortTitle + "')]]]/div/a"); + OOGraphene.waitElement(titleBy, browser); + browser.findElements(titleBy).get(0).click(); OOGraphene.waitBusy(browser); return this; } diff --git a/src/test/java/org/olat/selenium/page/repository/CatalogPage.java b/src/test/java/org/olat/selenium/page/repository/CatalogPage.java index 6b35dba69e03fd2f74836530a9238b5e147b7a1b..582f966a46c3a06fe8ab2055afe3da1676736c7b 100644 --- a/src/test/java/org/olat/selenium/page/repository/CatalogPage.java +++ b/src/test/java/org/olat/selenium/page/repository/CatalogPage.java @@ -42,15 +42,15 @@ public class CatalogPage { this.browser = browser; } - public CatalogPage selectCatalogEntry(String title) { - By titleBy = By.xpath("//div[contains(@class,'o_sublevel')]//h4[contains(@class,'o_title')]/a/span[text()[contains(.,'" + title + "')]]"); + public CatalogPage selectCatalogEntry(String title, String shortTitle) { + By titleBy = By.xpath("//div[contains(@class,'o_sublevel')][div/h4[contains(@class,'o_title')][text()[contains(.,'" + shortTitle + "')]]]/div/a"); List<WebElement> titleLinks = browser.findElements(titleBy); Assert.assertFalse(titleLinks.isEmpty()); titleLinks.get(0).click(); OOGraphene.waitBusy(browser); By pageTitleBy = By.xpath("//h2[text()[contains(.,'" + title + "')]]"); - OOGraphene.waitElement(pageTitleBy, 5, browser); + OOGraphene.waitElement(pageTitleBy, browser); return this; } diff --git a/src/test/java/org/olat/test/JunitTestHelper.java b/src/test/java/org/olat/test/JunitTestHelper.java index c9a825e844320efbb4bc85baa050631e0328ff04..d5a98d60ad420757c4fbfbbd2c7d5b43087cbf68 100644 --- a/src/test/java/org/olat/test/JunitTestHelper.java +++ b/src/test/java/org/olat/test/JunitTestHelper.java @@ -93,6 +93,17 @@ public class JunitTestHelper { return UUID.randomUUID().toString(); } + /** + * This method returns the first bloc of a UUID. It's + * not really random. But it's only 7 characters long. + * + * @return The first bloc of a UUID + */ + public static final String miniRandom() { + String r = UUID.randomUUID().toString(); + return r.substring(0, r.indexOf('-')); + } + public static final OLATResource createRandomResource() { String resName = UUID.randomUUID().toString().replace("-", ""); long resId = randomResId.nextInt(Integer.MAX_VALUE - 10) + 1; diff --git a/src/test/resources/arquillian.xml b/src/test/resources/arquillian.xml index 1a943c0cbe0cc7063b6daff136f3ee7dbe5963fe..aba2dbb99df659fe0c300cf3020f63104a564913 100644 --- a/src/test/resources/arquillian.xml +++ b/src/test/resources/arquillian.xml @@ -25,7 +25,7 @@ <property name="dimensions">1024x800</property> <!-- <property name="downloadBinaries">no</property> - <property name="chromeDriverBinary">target/drone/57d2a9629298aa6dc2d759fe09da5d13/chromedriver</property> + <property name="chromeDriverBinary">target/drone/675a673c111fdcc9678d11df0e69b334/chromedriver</property> <property name="firefoxDriverBinary">target/drone/ce03addb1fc8c24900011f90fc80f3c1/geckodriver</property> --> <property name="firefoxUserPreferences">src/test/profile/firefox/prefs.js</property>