diff --git a/src/test/java/org/olat/course/FunctionalBackTest.java b/src/test/java/org/olat/course/FunctionalBackTest.java index 34f4387f72b4383aeb7e07f289e741f81a6ba3cd..614ecb422a8f5f77611830f48d071b09cc94ca9a 100644 --- a/src/test/java/org/olat/course/FunctionalBackTest.java +++ b/src/test/java/org/olat/course/FunctionalBackTest.java @@ -79,7 +79,7 @@ public class FunctionalBackTest { functionalVOUtil = new FunctionalVOUtil(functionalUtil.getUsername(), functionalUtil.getPassword()); functionalHomeSiteUtil = functionalUtil.getFunctionalHomeSiteUtil(); functionalRepositorySiteUtil = functionalUtil.getFunctionalRepositorySiteUtil(); - functionalCourseUtil = new FunctionalCourseUtil(functionalUtil, functionalRepositorySiteUtil); + functionalCourseUtil = functionalRepositorySiteUtil.getFunctionalCourseUtil(); /* create test user with REST */ List<UserVO> userVO = functionalVOUtil.createTestUsers(deploymentUrl, 1); diff --git a/src/test/java/org/olat/course/FunctionalCourseTest.java b/src/test/java/org/olat/course/FunctionalCourseTest.java index 61ee8e575323e37db2c9877f0a8e64874268c3a9..321c2e3a1eb1d3e18c1dcb9d2c974bbe1eb6fee3 100644 --- a/src/test/java/org/olat/course/FunctionalCourseTest.java +++ b/src/test/java/org/olat/course/FunctionalCourseTest.java @@ -94,7 +94,7 @@ public class FunctionalCourseTest { functionalHtmlUtil = new FunctionalHtmlUtil(); functionalRepositorySiteUtil = functionalUtil.getFunctionalRepositorySiteUtil(); - functionalCourseUtil = new FunctionalCourseUtil(functionalUtil, functionalRepositorySiteUtil); + functionalCourseUtil = functionalRepositorySiteUtil.getFunctionalCourseUtil(); initialized = true; } @@ -179,7 +179,9 @@ public class FunctionalCourseTest { String originalText = functionalHtmlUtil.stripTags(IOUtils.toString(FunctionalCourseTest.class.getResourceAsStream(EDITOR_COURSE_OVERVIEW_FILE)), true); - browser.selectFrame("dom=document.getElementsByClassName('b_module_singlepage_wrapper')[0].getElementsByTagName('iframe')[0]" ); + String spIFrameSelector = "dom=document.getElementsByClassName('b_module_singlepage_wrapper')[0].getElementsByTagName('iframe')[0]"; + functionalUtil.waitForPageToLoadElement(browser, spIFrameSelector); + browser.selectFrame(spIFrameSelector); String source = browser.getHtmlSource(); String currentText = functionalHtmlUtil.stripTags(source, true); browser.selectFrame("relative=up"); diff --git a/src/test/java/org/olat/course/nodes/cp/FunctionalCPTest.java b/src/test/java/org/olat/course/nodes/cp/FunctionalCPTest.java index 1acc24a469255365a960679c15d05b6a4ef5a777..e17e8aefc93bb224344e9cdbfd5c979dc5ae10d6 100644 --- a/src/test/java/org/olat/course/nodes/cp/FunctionalCPTest.java +++ b/src/test/java/org/olat/course/nodes/cp/FunctionalCPTest.java @@ -78,7 +78,7 @@ public class FunctionalCPTest { functionalUtil.setDeploymentUrl(deploymentUrl.toString()); functionalRepositorySiteUtil = functionalUtil.getFunctionalRepositorySiteUtil(); - functionalCourseUtil = new FunctionalCourseUtil(functionalUtil, functionalRepositorySiteUtil); + functionalCourseUtil = functionalRepositorySiteUtil.getFunctionalCourseUtil(); functionalVOUtil = new FunctionalVOUtil(functionalUtil.getUsername(), functionalUtil.getPassword()); diff --git a/src/test/java/org/olat/course/nodes/feed/FunctionalBlogTest.java b/src/test/java/org/olat/course/nodes/feed/FunctionalBlogTest.java index b8a34cdf455a00d6be6a33d57446a532eca4a97f..ab395a2dcf0ca39190da313911c072322e7b7ef8 100644 --- a/src/test/java/org/olat/course/nodes/feed/FunctionalBlogTest.java +++ b/src/test/java/org/olat/course/nodes/feed/FunctionalBlogTest.java @@ -80,7 +80,7 @@ public class FunctionalBlogTest { functionalUtil.setDeploymentUrl(deploymentUrl.toString()); functionalRepositorySiteUtil = functionalUtil.getFunctionalRepositorySiteUtil(); - functionalCourseUtil = new FunctionalCourseUtil(functionalUtil, functionalRepositorySiteUtil); + functionalCourseUtil = functionalRepositorySiteUtil.getFunctionalCourseUtil(); functionalVOUtil = new FunctionalVOUtil(functionalUtil.getUsername(), functionalUtil.getPassword()); diff --git a/src/test/java/org/olat/course/nodes/feed/FunctionalPodcastTest.java b/src/test/java/org/olat/course/nodes/feed/FunctionalPodcastTest.java index dc182c4ec9380e6225cd53c3e513153845229b9a..b4ccb1714001be723fa94c339a7965a115cd86cc 100644 --- a/src/test/java/org/olat/course/nodes/feed/FunctionalPodcastTest.java +++ b/src/test/java/org/olat/course/nodes/feed/FunctionalPodcastTest.java @@ -80,7 +80,7 @@ public class FunctionalPodcastTest { functionalUtil.setDeploymentUrl(deploymentUrl.toString()); functionalRepositorySiteUtil = functionalUtil.getFunctionalRepositorySiteUtil(); - functionalCourseUtil = new FunctionalCourseUtil(functionalUtil, functionalRepositorySiteUtil); + functionalCourseUtil = functionalRepositorySiteUtil.getFunctionalCourseUtil(); functionalVOUtil = new FunctionalVOUtil(functionalUtil.getUsername(), functionalUtil.getPassword()); diff --git a/src/test/java/org/olat/course/nodes/iq/FunctionalIQTestTest.java b/src/test/java/org/olat/course/nodes/iq/FunctionalIQTestTest.java index 433cb344e2394db9ab75ee3bc2e5ee45284bf62e..27b91c554fcbc59fe01ef93ba683856ac770a0aa 100644 --- a/src/test/java/org/olat/course/nodes/iq/FunctionalIQTestTest.java +++ b/src/test/java/org/olat/course/nodes/iq/FunctionalIQTestTest.java @@ -79,7 +79,7 @@ public class FunctionalIQTestTest { functionalUtil.setDeploymentUrl(deploymentUrl.toString()); functionalRepositorySiteUtil = functionalUtil.getFunctionalRepositorySiteUtil(); - functionalCourseUtil = new FunctionalCourseUtil(functionalUtil, functionalRepositorySiteUtil); + functionalCourseUtil = functionalRepositorySiteUtil.getFunctionalCourseUtil(); functionalVOUtil = new FunctionalVOUtil(functionalUtil.getUsername(), functionalUtil.getPassword()); diff --git a/src/test/java/org/olat/course/nodes/portfolio/FunctionalPortfolioTest.java b/src/test/java/org/olat/course/nodes/portfolio/FunctionalPortfolioTest.java index 649f731827873e66c087c2461ecba049b623b7e7..92ab5b2efcfb01b86c46f111e3eaee94c32f3055 100644 --- a/src/test/java/org/olat/course/nodes/portfolio/FunctionalPortfolioTest.java +++ b/src/test/java/org/olat/course/nodes/portfolio/FunctionalPortfolioTest.java @@ -88,7 +88,7 @@ public class FunctionalPortfolioTest { functionalHomeSiteUtil = functionalUtil.getFunctionalHomeSiteUtil(); functionalRepositorySiteUtil = functionalUtil.getFunctionalRepositorySiteUtil(); - functionalCourseUtil = new FunctionalCourseUtil(functionalUtil, functionalRepositorySiteUtil); + functionalCourseUtil = functionalRepositorySiteUtil.getFunctionalCourseUtil(); functionalEPortfolioUtil = new FunctionalEPortfolioUtil(functionalUtil, functionalHomeSiteUtil); functionalVOUtil = new FunctionalVOUtil(functionalUtil.getUsername(), functionalUtil.getPassword()); diff --git a/src/test/java/org/olat/course/nodes/wiki/FunctionalWikiTest.java b/src/test/java/org/olat/course/nodes/wiki/FunctionalWikiTest.java index 732170882a8a4a7d3f1a346d75f4c838356e64ed..d7021cd6267a67c8feda617bcaefd4639c7eaa79 100644 --- a/src/test/java/org/olat/course/nodes/wiki/FunctionalWikiTest.java +++ b/src/test/java/org/olat/course/nodes/wiki/FunctionalWikiTest.java @@ -79,7 +79,7 @@ public class FunctionalWikiTest { functionalUtil.setDeploymentUrl(deploymentUrl.toString()); functionalRepositorySiteUtil = functionalUtil.getFunctionalRepositorySiteUtil(); - functionalCourseUtil = new FunctionalCourseUtil(functionalUtil, functionalRepositorySiteUtil); + functionalCourseUtil = functionalRepositorySiteUtil.getFunctionalCourseUtil(); functionalVOUtil = new FunctionalVOUtil(functionalUtil.getUsername(), functionalUtil.getPassword()); diff --git a/src/test/java/org/olat/login/FunctionalResumeTest.java b/src/test/java/org/olat/login/FunctionalResumeTest.java index d0e44b2b0e4d3142c37b8236bcb40a5b208da792..e43f47d2d4c7ca7caddcd7d624dad6e7f18e81af 100644 --- a/src/test/java/org/olat/login/FunctionalResumeTest.java +++ b/src/test/java/org/olat/login/FunctionalResumeTest.java @@ -79,7 +79,7 @@ public class FunctionalResumeTest { functionalVOUtil = new FunctionalVOUtil(functionalUtil.getUsername(), functionalUtil.getPassword()); functionalHomeSiteUtil = functionalUtil.getFunctionalHomeSiteUtil(); functionalRepositorySiteUtil = functionalUtil.getFunctionalRepositorySiteUtil(); - functionalCourseUtil = new FunctionalCourseUtil(functionalUtil, functionalRepositorySiteUtil); + functionalCourseUtil = functionalRepositorySiteUtil.getFunctionalCourseUtil(); } @Test diff --git a/src/test/java/org/olat/portfolio/FunctionalArtefactTest.java b/src/test/java/org/olat/portfolio/FunctionalArtefactTest.java index afbf92f5bf46ad5627b6164d64e2b90a68a34336..77920136dd58df6ba98c420610e4c413ff9339f3 100644 --- a/src/test/java/org/olat/portfolio/FunctionalArtefactTest.java +++ b/src/test/java/org/olat/portfolio/FunctionalArtefactTest.java @@ -153,7 +153,7 @@ public class FunctionalArtefactTest { functionalHomeSiteUtil = functionalUtil.getFunctionalHomeSiteUtil(); functionalRepositorySiteUtil = functionalUtil.getFunctionalRepositorySiteUtil(); - functionalCourseUtil = new FunctionalCourseUtil(functionalUtil, functionalRepositorySiteUtil); + functionalCourseUtil = functionalRepositorySiteUtil.getFunctionalCourseUtil(); functionalEportfolioUtil = new FunctionalEPortfolioUtil(functionalUtil, functionalHomeSiteUtil); functionalVOUtil = new FunctionalVOUtil(functionalUtil.getUsername(), functionalUtil.getPassword()); diff --git a/src/test/java/org/olat/repository/FunctionalCatalogTest.java b/src/test/java/org/olat/repository/FunctionalCatalogTest.java index 10969056fccd8ab96718272b32a4e61ddd5129c6..a725e23d41c93403caa8f015977a242e4c8b0932 100644 --- a/src/test/java/org/olat/repository/FunctionalCatalogTest.java +++ b/src/test/java/org/olat/repository/FunctionalCatalogTest.java @@ -51,8 +51,6 @@ import com.thoughtworks.selenium.DefaultSelenium; */ @RunWith(Arquillian.class) public class FunctionalCatalogTest { - public final static int COURSES = 2; - public final static String[] SUBCATEGORY_PATHS = { "/programming", "/programming/c", @@ -64,7 +62,7 @@ public class FunctionalCatalogTest { "about the Java programming language" }; - public final static String[] SUBCATECORY_PATHS_INCLUDING_RESOURCE = { + public final static String[] SUBCATEGORY_PATHS_INCLUDING_RESOURCE = { SUBCATEGORY_PATHS[1], SUBCATEGORY_PATHS[2] }; @@ -95,7 +93,7 @@ public class FunctionalCatalogTest { functionalUtil.setDeploymentUrl(deploymentUrl.toString()); functionalRepositorySiteUtil = functionalUtil.getFunctionalRepositorySiteUtil(); - functionalCourseUtil = new FunctionalCourseUtil(functionalUtil, functionalRepositorySiteUtil); + functionalCourseUtil = functionalRepositorySiteUtil.getFunctionalCourseUtil(); functionalVOUtil = new FunctionalVOUtil(functionalUtil.getUsername(), functionalUtil.getPassword()); @@ -106,20 +104,22 @@ public class FunctionalCatalogTest { @Test @RunAsClient public void checkCreateSubcategory() throws URISyntaxException, IOException{ + int courses = SUBCATEGORY_PATHS_INCLUDING_RESOURCE.length; + /* * prerequisites for test created via REST */ /* import wiki */ - RepositoryEntryVO[] wikiVO = new RepositoryEntryVO[COURSES]; + RepositoryEntryVO[] wikiVO = new RepositoryEntryVO[courses]; - for(int i = 0; i < COURSES; i++){ + for(int i = 0; i < courses; i++){ wikiVO[i] = functionalVOUtil.importWiki(deploymentUrl); } /* import course */ - CourseVO[] courseVO = new CourseVO[COURSES]; + CourseVO[] courseVO = new CourseVO[courses]; - for(int i = 0; i < COURSES; i++){ + for(int i = 0; i < courses; i++){ courseVO[i] = functionalVOUtil.importEmptyCourse(deploymentUrl); } @@ -138,14 +138,14 @@ public class FunctionalCatalogTest { } /* edit course and publish thereby adding it to catalog */ - for(int i = 0; i < COURSES; i++){ + for(int i = 0; i < courses; i++){ /* open course in edit mode */ Assert.assertTrue(functionalRepositorySiteUtil.openCourse(browser, courseVO[i].getRepoEntryKey())); Assert.assertTrue(functionalCourseUtil.openCourseEditor(browser)); /* choose wiki */ - String currentPath = SUBCATECORY_PATHS_INCLUDING_RESOURCE[i]; + String currentPath = SUBCATEGORY_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)); @@ -167,7 +167,7 @@ public class FunctionalCatalogTest { Assert.assertTrue(functionalRepositorySiteUtil.openActionByMenuTree(browser, RepositorySiteAction.CATALOG)); /* verify resources */ - for(int i = 0; i < COURSES; i++){ + for(int i = 0; i < courses; i++){ /* click on catalog root */ StringBuffer selectorBuffer = new StringBuffer(); @@ -181,7 +181,7 @@ public class FunctionalCatalogTest { } /* navigate tree */ - String[] selectors = functionalRepositorySiteUtil.createCatalogSelectors(SUBCATECORY_PATHS_INCLUDING_RESOURCE[i]); + String[] selectors = functionalRepositorySiteUtil.createCatalogSelectors(SUBCATEGORY_PATHS_INCLUDING_RESOURCE[i]); for(String currentSelector: selectors){ functionalUtil.waitForPageToLoadElement(browser, currentSelector.toString()); diff --git a/src/test/java/org/olat/util/FunctionalCourseUtil.java b/src/test/java/org/olat/util/FunctionalCourseUtil.java index 64370bd3788ad56b428093ee146e80b27332609a..15cf315c3ef84db0c07c09407807f628e9ac37a8 100644 --- a/src/test/java/org/olat/util/FunctionalCourseUtil.java +++ b/src/test/java/org/olat/util/FunctionalCourseUtil.java @@ -797,6 +797,7 @@ public class FunctionalCourseUtil { functionalUtil.waitForPageToLoadElement(browser, selectorBuffer.toString()); + browser.focus(selectorBuffer.toString()); browser.click(selectorBuffer.toString()); functionalUtil.waitForPageToUnloadElement(browser, selectorBuffer.toString()); diff --git a/src/test/java/org/olat/util/FunctionalRepositorySiteUtil.java b/src/test/java/org/olat/util/FunctionalRepositorySiteUtil.java index 3c1fc67403f7609595ece290351e0a7b9aaf0aff..fefed1e37b5d2146f5224160de228938e0ab03e9 100644 --- a/src/test/java/org/olat/util/FunctionalRepositorySiteUtil.java +++ b/src/test/java/org/olat/util/FunctionalRepositorySiteUtil.java @@ -318,7 +318,11 @@ public class FunctionalRepositorySiteUtil { private String toolboxSharedfolderCss; private String toolboxGlossaryCss; + private String courseTabActiveCss; + private String courseTabCloseCss; + private FunctionalUtil functionalUtil; + private FunctionalCourseUtil functionalCourseUtil; public FunctionalRepositorySiteUtil(FunctionalUtil functionalUtil){ @@ -392,7 +396,11 @@ public class FunctionalRepositorySiteUtil { setToolboxSharedfolderCss(TOOLBOX_SHAREDFOLDER_CSS); setToolboxGlossaryCss(TOOLBOX_GLOSSARY_CSS); + setCourseTabActiveCss(FunctionalCourseUtil.COURSE_TAB_ACTIVE_CSS); + setCourseTabCloseCss(FunctionalCourseUtil.COURSE_TAB_CLOSE_CSS); + setFunctionalUtil(functionalUtil); + functionalCourseUtil = new FunctionalCourseUtil(functionalUtil, this); } /** @@ -688,12 +696,34 @@ public class FunctionalRepositorySiteUtil { .append(selectedCss) .append(" * a"); + functionalUtil.waitForPageToLoadElement(browser, selectorBuffer.toString()); browser.click(selectorBuffer.toString()); functionalUtil.waitForPageToLoad(browser); return(true); } + /** + * @param browser + * @return + * + * Waits until course has been loaded. + */ + private boolean waitForPageToLoadCourse(Selenium browser){ + StringBuffer selectorBuffer = new StringBuffer(); + + //FIXME:JK: this isn't very safe because there may be more than one open courses + selectorBuffer.append("xpath=//li[contains(@class, '") + .append(getCourseTabActiveCss()) + .append("')]//a[contains(@class, '") + .append(getCourseTabCloseCss()) + .append("')]"); + + functionalUtil.waitForPageToLoadElement(browser, selectorBuffer.toString()); + + return(true); + } + /** * @param browser * @param key @@ -703,7 +733,8 @@ public class FunctionalRepositorySiteUtil { */ public boolean openCourse(Selenium browser, long key){ browser.open(functionalUtil.getDeploymentPath() + "/url/RepositoryEntry/" + key); - functionalUtil.waitForPageToLoad(browser); + + waitForPageToLoadCourse(browser); return(true); } @@ -749,7 +780,8 @@ public class FunctionalRepositorySiteUtil { .append("//a"); browser.click(selectorBuffer.toString()); - functionalUtil.waitForPageToLoad(browser); + + waitForPageToLoadCourse(browser); return(true); } @@ -1070,13 +1102,25 @@ public class FunctionalRepositorySiteUtil { } functionalUtil.clickWizardNext(browser); + functionalUtil.waitForPageToUnloadElement(browser, "//div[contains(@class, 'b_wizard')]//input[@type='checkbox']"); /* catalog */ if(catalog != null){ - //TODO:JK: implement me + String[] catalogSelectors = functionalCourseUtil.createCatalogSelectors(catalog); + + for(String catalogSelector: catalogSelectors){ + functionalUtil.waitForPageToLoadElement(browser, catalogSelector); + + if(browser.isElementPresent(catalogSelector + "/../img[contains(@class, 'x-tree-elbow-end-plus')]")){ + browser.doubleClick(catalogSelector); + }else{ + browser.click(catalogSelector); + } + } } functionalUtil.clickWizardNext(browser); + functionalUtil.waitForPageToUnloadElement(browser, "//div[contains(@class, 'b_wizard')]//div[contains(@class, 'x-tree-node')]"); /* publish */ if(!publish){ @@ -1599,6 +1643,22 @@ public class FunctionalRepositorySiteUtil { this.toolboxGlossaryCss = toolboxGlossaryCss; } + public String getCourseTabActiveCss() { + return courseTabActiveCss; + } + + public void setCourseTabActiveCss(String courseTabActiveCss) { + this.courseTabActiveCss = courseTabActiveCss; + } + + public String getCourseTabCloseCss() { + return courseTabCloseCss; + } + + public void setCourseTabCloseCss(String courseTabCloseCss) { + this.courseTabCloseCss = courseTabCloseCss; + } + public FunctionalUtil getFunctionalUtil() { return functionalUtil; } @@ -1606,4 +1666,12 @@ public class FunctionalRepositorySiteUtil { public void setFunctionalUtil(FunctionalUtil functionalUtil) { this.functionalUtil = functionalUtil; } + + public FunctionalCourseUtil getFunctionalCourseUtil() { + return functionalCourseUtil; + } + + public void setFunctionalCourseUtil(FunctionalCourseUtil functionalCourseUtil) { + this.functionalCourseUtil = functionalCourseUtil; + } } diff --git a/src/test/java/org/olat/util/FunctionalUtil.java b/src/test/java/org/olat/util/FunctionalUtil.java index 3b4bb5d050e96b915a1db2526075b378ae78e2d6..6a794644ec2f41061b7a36b5dde91d82aee54d71 100644 --- a/src/test/java/org/olat/util/FunctionalUtil.java +++ b/src/test/java/org/olat/util/FunctionalUtil.java @@ -548,6 +548,7 @@ public class FunctionalUtil { .append(selectedCss) .append(" a"); + waitForPageToLoadElement(browser, selectorBuffer.toString()); browser.click(selectorBuffer.toString()); waitForPageToLoad(browser); waitForPageToLoadElement(browser, selectorBuffer.toString(), WaitLimitAttribute.NORMAL); @@ -937,9 +938,9 @@ public class FunctionalUtil { waitForPageToLoadElement(browser, locatorBuffer.toString()); - //browser.focus(locatorBuffer.toString()); + browser.focus(locatorBuffer.toString()); browser.click(locatorBuffer.toString()); - //waitForPageToUnloadElement(browser, locatorBuffer.toString()); + waitForPageToUnloadElement(browser, locatorBuffer.toString()); return(true); }