diff --git a/src/test/java/org/olat/repository/FunctionalCatalogTest.java b/src/test/java/org/olat/repository/FunctionalCatalogTest.java index 802f812d8459f1f878b0f723fbfaee9328834b8d..10969056fccd8ab96718272b32a4e61ddd5129c6 100644 --- a/src/test/java/org/olat/repository/FunctionalCatalogTest.java +++ b/src/test/java/org/olat/repository/FunctionalCatalogTest.java @@ -31,7 +31,6 @@ import org.jboss.arquillian.test.api.ArquillianResource; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.junit.Assert; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.olat.restapi.support.vo.CourseVO; @@ -104,7 +103,6 @@ public class FunctionalCatalogTest { } } - @Ignore @Test @RunAsClient public void checkCreateSubcategory() throws URISyntaxException, IOException{ @@ -147,14 +145,14 @@ public class FunctionalCatalogTest { Assert.assertTrue(functionalCourseUtil.openCourseEditor(browser)); /* choose wiki */ - String currentPath = SUBCATEGORY_PATHS[i]; + String currentPath = SUBCATECORY_PATHS_INCLUDING_RESOURCE[i]; String currentName = currentPath.substring(currentPath.lastIndexOf('/') + 1); Assert.assertTrue(functionalCourseUtil.createCourseNode(browser, CourseNodeAlias.WIKI, "wiki", currentName + " wiki", "colaborative " + currentName + " wiki", 0)); Assert.assertTrue(functionalCourseUtil.chooseWiki(browser, wikiVO[i].getKey())); /* publish course */ - Assert.assertTrue(functionalCourseUtil.publishEntireCourse(browser, null, SUBCATEGORY_PATHS[i])); + Assert.assertTrue(functionalCourseUtil.publishEntireCourse(browser, null, currentPath)); /* close course */ Assert.assertTrue(functionalCourseUtil.closeActiveTab(browser)); @@ -170,30 +168,57 @@ public class FunctionalCatalogTest { /* verify resources */ for(int i = 0; i < COURSES; i++){ + + /* click on catalog root */ + StringBuffer selectorBuffer = new StringBuffer(); + + selectorBuffer.append("xpath=//div[contains(@class, '") + .append(functionalRepositorySiteUtil.getCatalogNavigationCss()) + .append("')]//a"); + + if(browser.isElementPresent(selectorBuffer.toString())){ + browser.click(selectorBuffer.toString()); + } + + /* navigate tree */ String[] selectors = functionalRepositorySiteUtil.createCatalogSelectors(SUBCATECORY_PATHS_INCLUDING_RESOURCE[i]); for(String currentSelector: selectors){ - /* click first course and retrieve business path */ - StringBuffer selectorBuffer = new StringBuffer(); - - selectorBuffer.append("xpath=//a[contains(@class, '") - .append(functionalRepositorySiteUtil.getCourseModuleIconCss()) - .append("')]"); - - browser.click(selectorBuffer.toString()); - + functionalUtil.waitForPageToLoadElement(browser, currentSelector.toString()); + browser.click(currentSelector); + } + + functionalUtil.waitForPageToLoad(browser); + + /* click first course and retrieve business path */ + selectorBuffer = new StringBuffer(); + + selectorBuffer.append("xpath=(//a[contains(@class, '") + .append(functionalRepositorySiteUtil.getCourseModuleIconCss()) + .append("')])"); + + /* create business path and try to find it */ + String businessPath0 = functionalUtil.getDeploymentPath() + "/url/RepositoryEntry/" + courseVO[i].getRepoEntryKey(); + boolean found = false; + + for(int j = 0; j < browser.getXpathCount(selectorBuffer.toString().substring(6)).intValue(); j++){ + functionalUtil.waitForPageToLoadElement(browser, selectorBuffer.toString()); + + browser.click(selectorBuffer.toString() + "[" + (j + 1) + "]"); + functionalUtil.waitForPageToLoad(browser); - - String businessPath0 = functionalUtil.currentBusinessPath(browser); - - /* open course and retrieve business path */ - functionalRepositorySiteUtil.openCourse(browser, courseVO[i].getRepoEntryKey()); - + String businessPath1 = functionalUtil.currentBusinessPath(browser); + functionalCourseUtil.closeActiveTab(browser); - /* assert collected business paths to be equal */ - Assert.assertEquals(businessPath1, businessPath0); + if(businessPath1.contains(businessPath0)){ + found = true; + break; + } } + + /* assert collected business paths to be equal */ + Assert.assertTrue(found); } } diff --git a/src/test/java/org/olat/util/FunctionalCourseUtil.java b/src/test/java/org/olat/util/FunctionalCourseUtil.java index fe5e2d9a36e7c40f9d183f04cdd6c1a464eebff0..64370bd3788ad56b428093ee146e80b27332609a 100644 --- a/src/test/java/org/olat/util/FunctionalCourseUtil.java +++ b/src/test/java/org/olat/util/FunctionalCourseUtil.java @@ -54,8 +54,8 @@ public class FunctionalCourseUtil { public final static String ADD_TO_CATALOG_YES_VALUE = "yes"; public final static String ADD_TO_CATALOG_NO_VALUE = "no"; public final static String CATALOG_SUBCATEGORY_ICON_CSS = "o_catalog_cat_icon"; - public final static String ADD_TO_CATALOG_CSS = null; //TODO:JK: add css class - public final static String CATALOG_CSS = null; //TODO:JK: add css class + public final static String ADD_TO_CATALOG_CSS = "o_sel_publish_add_to_catalog"; + public final static String CATALOG_CSS = "o_sel_catalog_chooser_tree"; public final static String COURSE_EDITOR_INSERT_CONTENT_CSS = "b_toolbox_content"; public final static String CREATE_COURSE_NODE_TARGET_POSITION_ITEM_CSS = "b_selectiontree_item"; @@ -699,7 +699,7 @@ public class FunctionalCourseUtil { selectorBuffer.append("xpath=//li//a[contains(@class, '") .append(functionalUtil.getTreeNodeAnchorCss()) - .append("')]//a"); + .append("')]"); selectors.add(selectorBuffer.toString()); @@ -707,10 +707,10 @@ public class FunctionalCourseUtil { StringBuffer selector = new StringBuffer(); selector.append("xpath=//li//a[contains(@class, '") - .append(functionalUtil.getTreeNodeAnchorCss()) - .append("')]//a//span[text()='") + .append(functionalUtil.getTreeNodeCss()) + .append("')]//span[text()='") .append(categoryMatcher.group(1)) - .append("')]/.."); + .append("']/.."); selectors.add(selector.toString()); } @@ -747,6 +747,7 @@ public class FunctionalCourseUtil { functionalUtil.waitForPageToLoadElement(browser, selectorBuffer.toString()); browser.click(selectorBuffer.toString()); + functionalUtil.waitForPageToLoad(browser); functionalUtil.clickWizardNext(browser); /* access options */ @@ -777,7 +778,12 @@ public class FunctionalCourseUtil { for(String catalogSelector: catalogSelectors){ functionalUtil.waitForPageToLoadElement(browser, catalogSelector); - browser.click(catalogSelector); + + if(browser.isElementPresent(catalogSelector + "/../img[contains(@class, 'x-tree-elbow-end-plus')]")){ + browser.doubleClick(catalogSelector); + }else{ + browser.click(catalogSelector); + } } /* click choose */