From 1a9135652b807e1001cf2416a95c673855a8b970 Mon Sep 17 00:00:00 2001
From: jkraehemann <none@none>
Date: Mon, 30 Jul 2012 16:35:19 +0200
Subject: [PATCH] implemented calls to utility methods which still need to be
 implemented.

---
 .../org/olat/login/FunctionalResumeTest.java  |  8 ++
 .../portfolio/FunctionalArtefactTest.java     | 63 +++++++++++---
 .../org/olat/util/FunctionalCourseUtil.java   | 82 ++++++++++++++++++-
 .../olat/util/FunctionalEportfolioUtil.java   | 62 ++++++++++++++
 .../org/olat/util/FunctionalHomeSiteUtil.java |  2 +-
 .../java/org/olat/util/FunctionalUtil.java    |  4 +-
 6 files changed, 203 insertions(+), 18 deletions(-)
 create mode 100644 src/test/java/org/olat/util/FunctionalEportfolioUtil.java

diff --git a/src/test/java/org/olat/login/FunctionalResumeTest.java b/src/test/java/org/olat/login/FunctionalResumeTest.java
index 062266cfa54..3f5f6e61472 100644
--- a/src/test/java/org/olat/login/FunctionalResumeTest.java
+++ b/src/test/java/org/olat/login/FunctionalResumeTest.java
@@ -126,6 +126,14 @@ public class FunctionalResumeTest {
 		/* enable resume on request */
 		functionalHomeSiteUtil.enableResumeOnRequest(browser);
 		
+		/*
+		 * There's a need to click something in the course because
+		 * else it won't open up again after resume.
+		 */
+		functionalCourseUtil.openWithoutBusinessPath(browser, course.getRepoEntryKey(), 4);
+		
+		Assert.assertTrue(functionalUtil.logout(browser));
+		
 		/* login without clicking away dialogs */
 		Assert.assertTrue(functionalUtil.login(browser, false));
 		
diff --git a/src/test/java/org/olat/portfolio/FunctionalArtefactTest.java b/src/test/java/org/olat/portfolio/FunctionalArtefactTest.java
index ea6e4db0a38..92eaf87ff08 100644
--- a/src/test/java/org/olat/portfolio/FunctionalArtefactTest.java
+++ b/src/test/java/org/olat/portfolio/FunctionalArtefactTest.java
@@ -19,6 +19,7 @@
  */
 package org.olat.portfolio;
 
+import java.io.File;
 import java.io.IOException;
 import java.net.URISyntaxException;
 import java.net.URL;
@@ -39,10 +40,10 @@ import org.olat.restapi.support.vo.RepositoryEntryVO;
 import org.olat.test.ArquillianDeployments;
 import org.olat.user.restapi.UserVO;
 import org.olat.util.FunctionalCourseUtil;
+import org.olat.util.FunctionalEportfolioUtil;
 import org.olat.util.FunctionalRepositorySiteUtil;
 import org.olat.util.FunctionalUtil;
 import org.olat.util.FunctionalVOUtil;
-import org.olat.util.FunctionalUtil.OlatSite;
 
 import com.thoughtworks.selenium.DefaultSelenium;
 
@@ -62,6 +63,23 @@ public class FunctionalArtefactTest {
 	public final static String BLOG_POST_DESCRIPTION = "Where you may find useful information about multiplexing.";
 	public final static String BLOG_POST_CONTENT = "Operating Systems: Design & Implementation (by Andrew S. Tanenbaum)";
 	
+	public final static String TEXT_ARTEFACT_CONTENT = "";
+	public final static String TEXT_ARTEFACT_TITLE = "";
+	public final static String TEXT_ARTEFACT_DESCRIPTION = "";
+	public final static String TEXT_ARTEFACT_TAGS = "";
+	public final static String TEXT_ARTEFACT_BINDERPATH = "";
+	
+	public final static String FILE_ARTEFACT_PATH = "";
+	public final static String FILE_ARTEFACT_TITLE = "";
+	public final static String FILE_ARTEFACT_DESCRIPTION = "";
+	public final static String FILE_ARTEFACT_TAGS = "";
+	public final static String FILE_ARTEFACT_BINDERPATH = "";
+
+	public final static String LEARNING_JOURNAL_TITLE = "";
+	public final static String LEARNING_JOURNAL_DESCRIPTION = "";
+	public final static String LEARNING_JOURNAL_TAGS = "";
+	public final static String LEARNING_JOURNAL_BINDERPATH = "";
+	
 	@Deployment(testable = false)
 	public static WebArchive createDeployment() {
 		return ArquillianDeployments.createDeployment();
@@ -76,6 +94,7 @@ public class FunctionalArtefactTest {
 	FunctionalUtil functionalUtil;
 	FunctionalRepositorySiteUtil functionalRepositorySiteUtil;
 	FunctionalCourseUtil functionalCourseUtil;
+	FunctionalEportfolioUtil functionalEportfolioUtil;
 	FunctionalVOUtil functionalVOUtil;
 	
 	UserVO user;
@@ -88,6 +107,7 @@ public class FunctionalArtefactTest {
 
 		functionalRepositorySiteUtil = new FunctionalRepositorySiteUtil(functionalUtil);
 		functionalCourseUtil = new FunctionalCourseUtil(functionalUtil, functionalRepositorySiteUtil);
+		functionalEportfolioUtil = new FunctionalEportfolioUtil(functionalUtil);
 		
 		functionalVOUtil = new FunctionalVOUtil(functionalUtil.getUsername(), functionalUtil.getPassword());
 		
@@ -95,20 +115,22 @@ public class FunctionalArtefactTest {
 		List<UserVO> userVO = functionalVOUtil.createTestUsers(deploymentUrl, 1);
 		
 		user = userVO.get(0);
-
-		/* deploy course with REST */
-		course = functionalVOUtil.importAllElementsCourse(deploymentUrl);
-		
 	}
 	
 	@Test
 	@RunAsClient
-	public void checkCollectForumPost(){
+	public void checkCollectForumPost() throws IOException, URISyntaxException{
+		/* deploy course with REST */
+		course = functionalVOUtil.importAllElementsCourse(deploymentUrl);
+		
 		/* login for test setup */
 		Assert.assertTrue(functionalUtil.login(browser, user.getLogin(), user.getPassword(), true));
 		
-		/* open course and check if it's open */
+		/* post message to forum */
 		Assert.assertTrue(functionalCourseUtil.postForumMessage(browser, course.getRepoEntryKey(), 0, FORUM_POST_TITLE, FORUM_POST_MESSAGE));
+		
+		/* add artefact */
+		//TODO:JK: implement me
 	}
 	
 	@Test
@@ -120,9 +142,11 @@ public class FunctionalArtefactTest {
 		/* login for test setup */
 		Assert.assertTrue(functionalUtil.login(browser, user.getLogin(), user.getPassword(), true));
 		
-		/* open course and check if it's open */
+		/* create an article for the wiki */
 		Assert.assertTrue(functionalCourseUtil.createWikiArticle(browser, vo.getKey(), WIKI_ARTICLE_PAGENAME, WIKI_ARTICLE_CONTENT));
 		
+		/* add artefact */
+		//TODO:JK: implement me
 	}
 	
 	@Test
@@ -134,9 +158,11 @@ public class FunctionalArtefactTest {
 		/* login for test setup */
 		Assert.assertTrue(functionalUtil.login(browser, user.getLogin(), user.getPassword(), true));
 		
-		/* open course and check if it's open */
+		/* blog */
 		Assert.assertTrue(functionalCourseUtil.createBlogEntry(browser, vo.getKey(), BLOG_POST_TITLE, BLOG_POST_DESCRIPTION, BLOG_POST_CONTENT));
 		
+		/* add artefact */
+		//TODO:JK: implement me
 	}
 	
 	@Test
@@ -145,14 +171,24 @@ public class FunctionalArtefactTest {
 		/* login for test setup */
 		Assert.assertTrue(functionalUtil.login(browser, user.getLogin(), user.getPassword(), true));
 		
+		/* add text artefact */
+		Assert.assertTrue(functionalEportfolioUtil.addTextArtefact(browser, TEXT_ARTEFACT_CONTENT,
+				TEXT_ARTEFACT_TITLE, TEXT_ARTEFACT_DESCRIPTION,
+				TEXT_ARTEFACT_TAGS,
+				TEXT_ARTEFACT_BINDERPATH));
 	}
 	
 	@Test
 	@RunAsClient
-	public void checkUploadFileArtefact(){
+	public void checkUploadFileArtefact() throws URISyntaxException{
 		/* login for test setup */
 		Assert.assertTrue(functionalUtil.login(browser, user.getLogin(), user.getPassword(), true));
-		
+
+		/* upload file artefact */
+		Assert.assertTrue(functionalEportfolioUtil.uploadFileArtefact(browser, new File(FunctionalArtefactTest.class.getResource(FILE_ARTEFACT_PATH).toURI()),
+				FILE_ARTEFACT_TITLE, FILE_ARTEFACT_DESCRIPTION,
+				FILE_ARTEFACT_TAGS,
+				FILE_ARTEFACT_BINDERPATH));
 	}
 	
 	@Test
@@ -161,5 +197,10 @@ public class FunctionalArtefactTest {
 		/* login for test setup */
 		Assert.assertTrue(functionalUtil.login(browser, user.getLogin(), user.getPassword(), true));
 		
+		/* create learning journal */
+		Assert.assertTrue(functionalEportfolioUtil.createLearningJournal(browser,
+				LEARNING_JOURNAL_TITLE, LEARNING_JOURNAL_DESCRIPTION,
+				LEARNING_JOURNAL_TAGS,
+				LEARNING_JOURNAL_BINDERPATH));
 	}
 }
diff --git a/src/test/java/org/olat/util/FunctionalCourseUtil.java b/src/test/java/org/olat/util/FunctionalCourseUtil.java
index a1386f8aa28..74db08dc7cf 100644
--- a/src/test/java/org/olat/util/FunctionalCourseUtil.java
+++ b/src/test/java/org/olat/util/FunctionalCourseUtil.java
@@ -27,11 +27,28 @@ import com.thoughtworks.selenium.Selenium;
  * @author jkraehemann, joel.kraehemann@frentix.com, frentix.com
  */
 public class FunctionalCourseUtil {
+	public final static String EPORTFOLIO_ADD_CSS = "b_eportfolio_add";
+	
 	public final static String FORUM_ICON_CSS = "o_fo_icon";
+	
 	public final static String FORUM_TOOLBAR_CSS = "o_forum_toolbar";
+	public final static String FORUM_THREAD_NEW_CSS = "o_sel_forum_thread_new";
+	public final static String FORUM_ARCHIVE_CSS = "o_sel_forum_archive";
+	public final static String FORUM_FILTER_CSS = "o_sel_forum_filter";
+	
+	public final static String WIKI_CREATE_ARTICLE_CSS = "o_sel_wiki_search";
+	
+	private String eportfolioAddCss;
 	
 	private String forumIconCss;
 	
+	private String forumToolbarCss;
+	private String forumThreadNewCss;
+	private String forumArchiveCss;
+	private String forumFilterCss;
+	
+	private String wikiCreateArticleCss;
+	
 	private FunctionalUtil functionalUtil;
 	private FunctionalRepositorySiteUtil functionalRepositorySiteUtil;
 	
@@ -39,7 +56,16 @@ public class FunctionalCourseUtil {
 		this.functionalUtil = functionalUtil;
 		this.functionalRepositorySiteUtil = functionalRepositorySiteUtil;
 		
+		setEportfolioAddCss(EPORTFOLIO_ADD_CSS);
+		
 		setForumIconCss(FORUM_ICON_CSS);
+		
+		setForumToolbarCss(FORUM_TOOLBAR_CSS);
+		setForumThreadNewCss(FORUM_THREAD_NEW_CSS);
+		setForumArchiveCss(FORUM_ARCHIVE_CSS);
+		setForumFilterCss(FORUM_FILTER_CSS);
+		
+		setWikiCreateArticleCss(WIKI_CREATE_ARTICLE_CSS);
 	}
 	
 	/**
@@ -56,9 +82,9 @@ public class FunctionalCourseUtil {
 		
 		StringBuffer selectorBuffer = new StringBuffer();
 
-		selectorBuffer.append("xpath=//ul[contains(@class, 'b_tree_l1']//li//a[")
+		selectorBuffer.append("xpath=//ul[contains(@class, 'b_tree_l1')]//li[")
 		.append(nth + 1)
-		.append("]");
+		.append("]//a");
 		
 		browser.click(selectorBuffer.toString());
 		
@@ -80,9 +106,9 @@ public class FunctionalCourseUtil {
 		
 		StringBuffer selectorBuffer = new StringBuffer();
 
-		selectorBuffer.append("xpath=//ul[contains(@class, 'b_tree_l1']//li//a[")
+		selectorBuffer.append("xpath=//ul[contains(@class, 'b_tree_l1')]//li[")
 		.append(nth + 1)
-		.append("]");
+		.append("]//a");
 		
 		browser.click(selectorBuffer.toString());
 		
@@ -216,6 +242,14 @@ public class FunctionalCourseUtil {
 		this.functionalRepositorySiteUtil = functionalRepositorySiteUtil;
 	}
 
+	public String getEportfolioAddCss() {
+		return eportfolioAddCss;
+	}
+
+	public void setEportfolioAddCss(String eportfolioAddCss) {
+		this.eportfolioAddCss = eportfolioAddCss;
+	}
+
 	public String getForumIconCss() {
 		return forumIconCss;
 	}
@@ -223,5 +257,45 @@ public class FunctionalCourseUtil {
 	public void setForumIconCss(String forumIconCss) {
 		this.forumIconCss = forumIconCss;
 	}
+
+	public String getForumToolbarCss() {
+		return forumToolbarCss;
+	}
+
+	public void setForumToolbarCss(String forumToolbarCss) {
+		this.forumToolbarCss = forumToolbarCss;
+	}
+
+	public String getForumThreadNewCss() {
+		return forumThreadNewCss;
+	}
+
+	public void setForumThreadNewCss(String forumThreadNewCss) {
+		this.forumThreadNewCss = forumThreadNewCss;
+	}
+
+	public String getForumArchiveCss() {
+		return forumArchiveCss;
+	}
+
+	public void setForumArchiveCss(String forumArchiveCss) {
+		this.forumArchiveCss = forumArchiveCss;
+	}
+
+	public String getForumFilterCss() {
+		return forumFilterCss;
+	}
+
+	public void setForumFilterCss(String forumFilterCss) {
+		this.forumFilterCss = forumFilterCss;
+	}
+
+	public String getWikiCreateArticleCss() {
+		return wikiCreateArticleCss;
+	}
+
+	public void setWikiCreateArticleCss(String wikiCreateArticleCss) {
+		this.wikiCreateArticleCss = wikiCreateArticleCss;
+	}
 	
 }
diff --git a/src/test/java/org/olat/util/FunctionalEportfolioUtil.java b/src/test/java/org/olat/util/FunctionalEportfolioUtil.java
new file mode 100644
index 00000000000..23095d44d20
--- /dev/null
+++ b/src/test/java/org/olat/util/FunctionalEportfolioUtil.java
@@ -0,0 +1,62 @@
+/**
+ * <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.util;
+
+import java.io.File;
+
+import com.thoughtworks.selenium.Selenium;
+
+/**
+ * 
+ * @author jkraehemann, joel.kraehemann@frentix.com, frentix.com
+ */
+public class FunctionalEportfolioUtil {
+	private FunctionalUtil functionalUtil;
+	
+	public FunctionalEportfolioUtil(FunctionalUtil functionalUtil){
+		this.functionalUtil = functionalUtil;
+	}
+
+	public boolean addTextArtefact(Selenium browser, String content, String title, String description, String tags, String binderPath){
+		//TODO:JK: implement me
+		
+		return(false);
+	}
+	
+	public boolean uploadFileArtefact(Selenium browser, File file, String title, String description, String tags, String binderPath){
+		//TODO:JK: implement me
+		
+		return(false);
+	}
+	
+	public boolean createLearningJournal(Selenium browser, String title, String description, String tags, String binderPath){
+		//TODO:JK: implement me
+		
+		return(false);
+	}
+
+	public FunctionalUtil getFunctionalUtil() {
+		return functionalUtil;
+	}
+
+	public void setFunctionalUtil(FunctionalUtil functionalUtil) {
+		this.functionalUtil = functionalUtil;
+	}
+}
diff --git a/src/test/java/org/olat/util/FunctionalHomeSiteUtil.java b/src/test/java/org/olat/util/FunctionalHomeSiteUtil.java
index e723d0be6b5..b2b108ddf1e 100644
--- a/src/test/java/org/olat/util/FunctionalHomeSiteUtil.java
+++ b/src/test/java/org/olat/util/FunctionalHomeSiteUtil.java
@@ -113,7 +113,7 @@ public class FunctionalHomeSiteUtil {
 
 	public final static String NO_VALUE = "none";
 	public final static String YES_AUTOMATICALLY_VALUE = "auto";
-	public final static String YES_ON_REQUEST_VALUE = "request";
+	public final static String YES_ON_REQUEST_VALUE = "ondemand";
 
 	public final static String OFF_VALUE = "no";
 	public final static String ON_VALUE = "yes";
diff --git a/src/test/java/org/olat/util/FunctionalUtil.java b/src/test/java/org/olat/util/FunctionalUtil.java
index 3edd0681214..e4bd806a376 100644
--- a/src/test/java/org/olat/util/FunctionalUtil.java
+++ b/src/test/java/org/olat/util/FunctionalUtil.java
@@ -42,7 +42,7 @@ public class FunctionalUtil {
 	public final static String LOGIN_PAGE = "dmz";
 	public final static String ACKNOWLEDGE_CHECKBOX = "acknowledge_checkbox";
 	
-	public final static String INFO_DIALOG = "b_info";
+	public final static String INFO_DIALOG = "o_interceptionPopup";
 
 	public enum OlatSite {
 		HOME,
@@ -370,7 +370,7 @@ public class FunctionalUtil {
 	    	//TODO:JK: find a way to solve endless loop
 	    	//while(browser.isElementPresent("class="+ getInfoDialog())){
 	    		/* click last button */
-	    	if(browser.isElementPresent("class="+ getInfoDialog())){
+	    	if(browser.isElementPresent("id="+ getInfoDialog())){
 	    		browser.click("xpath=//form//div//button[@type='button']/../../span/a[@class='b_button']");
 	    		browser.waitForPageToLoad(getWaitLimit());
 	    	}
-- 
GitLab