Skip to content
Snippets Groups Projects
Commit b0a04a1c authored by jkraehemann's avatar jkraehemann
Browse files

OO-297,OO-298: implemented generic code to create repository resource.

parent 3aafb539
No related merge requests found
......@@ -19,6 +19,8 @@
*/
package org.olat.course.nodes.cp;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import org.jboss.arquillian.container.test.api.Deployment;
......@@ -27,13 +29,17 @@ import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.junit.Arquillian;
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.Test;
import org.junit.runner.RunWith;
import org.olat.restapi.support.vo.CourseVO;
import org.olat.test.ArquillianDeployments;
import org.olat.util.FunctionalCourseUtil;
import org.olat.util.FunctionalRepositorySiteUtil;
import org.olat.util.FunctionalUtil;
import org.olat.util.FunctionalVOUtil;
import org.olat.util.FunctionalCourseUtil.CourseNodeAlias;
import com.thoughtworks.selenium.DefaultSelenium;
......@@ -43,6 +49,10 @@ import com.thoughtworks.selenium.DefaultSelenium;
*/
@RunWith(Arquillian.class)
public class FunctionalCPTest {
public final static String CP_LEARNING_CONTENT_SHORT_TITLE = "cp learning content";
public final static String CP_LEARNING_CONTENT_LONG_TITLE = "test cp learning content";
public final static String CP_LEARNING_CONTENT_DESCRIPTION = "learning content";
@Deployment(testable = false)
public static WebArchive createDeployment() {
return ArquillianDeployments.createDeployment();
......@@ -53,24 +63,47 @@ public class FunctionalCPTest {
@ArquillianResource
URL deploymentUrl;
static FunctionalUtil functionalUtil;
static FunctionalRepositorySiteUtil functionalRepositorySiteUtil;
static FunctionalCourseUtil functionalCourseUtil;
static FunctionalVOUtil functionalVOUtil;
FunctionalUtil functionalUtil;
FunctionalVOUtil functionalVOUtil;
FunctionalRepositorySiteUtil functionalRepositorySiteUtil;
static boolean initialized = false;
@Before
public void setup(){
functionalUtil = new FunctionalUtil();
functionalUtil.setDeploymentUrl(deploymentUrl.toString());
functionalVOUtil = new FunctionalVOUtil(functionalUtil.getUsername(), functionalUtil.getPassword());
functionalRepositorySiteUtil = new FunctionalRepositorySiteUtil(functionalUtil);
}
public void setup() throws IOException, URISyntaxException{
if(!initialized){
functionalUtil = new FunctionalUtil();
functionalUtil.setDeploymentUrl(deploymentUrl.toString());
functionalRepositorySiteUtil = new FunctionalRepositorySiteUtil(functionalUtil);
functionalCourseUtil = new FunctionalCourseUtil(functionalUtil, functionalRepositorySiteUtil);
functionalVOUtil = new FunctionalVOUtil(functionalUtil.getUsername(), functionalUtil.getPassword());
initialized = true;
}
}
@Test
@RunAsClient
public void checkCreate(){
//TODO:JK: implement me
public void checkCreate() throws URISyntaxException, IOException{
CourseVO course = functionalVOUtil.importEmptyCourse(deploymentUrl);
/* login for test setup */
Assert.assertTrue(functionalUtil.login(browser, functionalUtil.getUsername(), functionalUtil.getPassword(), true));
/* */
Assert.assertTrue(functionalRepositorySiteUtil.openCourse(browser, course.getRepoEntryKey()));
Assert.assertTrue(functionalCourseUtil.openCourseEditor(browser));
Assert.assertTrue(functionalCourseUtil.createCourseNode(browser, CourseNodeAlias.CP, CP_LEARNING_CONTENT_SHORT_TITLE, CP_LEARNING_CONTENT_LONG_TITLE, CP_LEARNING_CONTENT_DESCRIPTION, 0));
Assert.assertTrue(functionalCourseUtil.createCPLearningContent(browser, CP_LEARNING_CONTENT_SHORT_TITLE, CP_LEARNING_CONTENT_DESCRIPTION));
Assert.assertTrue(functionalCourseUtil.publishEntireCourse(browser, null, null));
Assert.assertTrue(functionalCourseUtil.open(browser, course.getRepoEntryKey(), 0));
}
}
......@@ -22,7 +22,6 @@ package org.olat.course.nodes.iq;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.List;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.container.test.api.RunAsClient;
......@@ -36,13 +35,10 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.olat.restapi.support.vo.CourseVO;
import org.olat.test.ArquillianDeployments;
import org.olat.user.restapi.UserVO;
import org.olat.util.FunctionalCourseUtil;
import org.olat.util.FunctionalCourseUtil.CourseNodeAlias;
import org.olat.util.FunctionalHomeSiteUtil;
import org.olat.util.FunctionalRepositorySiteUtil;
import org.olat.util.FunctionalUtil;
import org.olat.util.FunctionalUtil.OlatSite;
import org.olat.util.FunctionalVOUtil;
import com.thoughtworks.selenium.DefaultSelenium;
......
......@@ -19,6 +19,8 @@
*/
package org.olat.course.nodes.wiki;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import org.jboss.arquillian.container.test.api.Deployment;
......@@ -27,13 +29,17 @@ import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.junit.Arquillian;
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.Test;
import org.junit.runner.RunWith;
import org.olat.restapi.support.vo.CourseVO;
import org.olat.test.ArquillianDeployments;
import org.olat.util.FunctionalCourseUtil;
import org.olat.util.FunctionalRepositorySiteUtil;
import org.olat.util.FunctionalUtil;
import org.olat.util.FunctionalVOUtil;
import org.olat.util.FunctionalCourseUtil.CourseNodeAlias;
import com.thoughtworks.selenium.DefaultSelenium;
......@@ -43,6 +49,11 @@ import com.thoughtworks.selenium.DefaultSelenium;
*/
@RunWith(Arquillian.class)
public class FunctionalWikiTest {
public final static String WIKI_SHORT_TITLE = "wiki";
public final static String WIKI_LONG_TITLE = "test wiki";
public final static String WIKI_DESCRIPTION = "wiki";
@Deployment(testable = false)
public static WebArchive createDeployment() {
return ArquillianDeployments.createDeployment();
......@@ -54,23 +65,45 @@ public class FunctionalWikiTest {
@ArquillianResource
URL deploymentUrl;
FunctionalUtil functionalUtil;
FunctionalVOUtil functionalVOUtil;
FunctionalRepositorySiteUtil functionalRepositorySiteUtil;
static FunctionalUtil functionalUtil;
static FunctionalRepositorySiteUtil functionalRepositorySiteUtil;
static FunctionalCourseUtil functionalCourseUtil;
static FunctionalVOUtil functionalVOUtil;
static boolean initialized = false;
@Before
public void setup(){
functionalUtil = new FunctionalUtil();
functionalUtil.setDeploymentUrl(deploymentUrl.toString());
functionalVOUtil = new FunctionalVOUtil(functionalUtil.getUsername(), functionalUtil.getPassword());
functionalRepositorySiteUtil = new FunctionalRepositorySiteUtil(functionalUtil);
}
public void setup() throws IOException, URISyntaxException{
if(!initialized){
functionalUtil = new FunctionalUtil();
functionalUtil.setDeploymentUrl(deploymentUrl.toString());
functionalRepositorySiteUtil = new FunctionalRepositorySiteUtil(functionalUtil);
functionalCourseUtil = new FunctionalCourseUtil(functionalUtil, functionalRepositorySiteUtil);
functionalVOUtil = new FunctionalVOUtil(functionalUtil.getUsername(), functionalUtil.getPassword());
initialized = true;
}
}
@Test
@RunAsClient
public void checkCreate(){
//TODO:JK: implement me
public void checkCreate() throws URISyntaxException, IOException{
CourseVO course = functionalVOUtil.importEmptyCourse(deploymentUrl);
/* login for test setup */
Assert.assertTrue(functionalUtil.login(browser, functionalUtil.getUsername(), functionalUtil.getPassword(), true));
/* */
Assert.assertTrue(functionalRepositorySiteUtil.openCourse(browser, course.getRepoEntryKey()));
Assert.assertTrue(functionalCourseUtil.openCourseEditor(browser));
Assert.assertTrue(functionalCourseUtil.createCourseNode(browser, CourseNodeAlias.WIKI, WIKI_SHORT_TITLE, WIKI_LONG_TITLE, WIKI_DESCRIPTION, 0));
Assert.assertTrue(functionalCourseUtil.createWiki(browser, WIKI_SHORT_TITLE, WIKI_DESCRIPTION));
Assert.assertTrue(functionalCourseUtil.publishEntireCourse(browser, null, null));
Assert.assertTrue(functionalCourseUtil.open(browser, course.getRepoEntryKey(), 0));
}
}
......@@ -61,7 +61,13 @@ public class FunctionalCourseUtil {
public final static String BLOG_FORM_CSS = "o_sel_blog_form";
public final static String TEST_CHOOSE_REPOSITORY_FILE_CSS = "o_sel_test_choose_repofile";
public final static String TEST_CREATE_RESOURCE_CSS = "o_sel_repo_popup_create_resource";
public final static String CP_CHOOSE_REPOSITORY_FILE_CSS = "o_sel_cp_choose_repofile";
public final static String WIKI_CHOOSE_REPOSITORY_FILE_CSS = "o_sel_wiki_choose_repofile";
public final static String FEED_CHOOSE_REPOSITORY_FILE_CSS = "o_sel_feed_choose_repofile";
public final static String REPOSITORY_POPUP_CREATE_RESOURCE_CSS = "o_sel_repo_popup_create_resource";
public final static String REPOSITORY_SAVE_DETAILS_CSS = "o_sel_repo_save_details";
public final static String REPOSITORY_ADD_FORWARD_CSS = "o_sel_repo_add_forward";
public enum CourseNodeTab {
TITLE_AND_DESCRIPTION,
......@@ -123,6 +129,11 @@ public class FunctionalCourseUtil {
}
public enum CourseNodeAlias {
CP("o_cp_icon"),
BLOG("o_blog_icon"),
PODCAST("o_podcast_icon"),
WIKI("o_wiki_icon"),
PORTFOLIO_TASK("o_ep_icon"),
IQ_TEST("o_iqtest_icon"),
IQ_SELFTEST("o_iqself_icon"),
IQ_QUESTIONAIRE("o_iqsurv_icon");
......@@ -171,6 +182,20 @@ public class FunctionalCourseUtil {
TEST_CONFIGURATION;
}
public enum CourseEditorCpTab {
TITLE_AND_DESCRIPTION,
VISIBILITY,
ACCESS,
LEARNING_CONTENT;
}
public enum CourseEditorWikiTab {
TITLE_AND_DESCRIPTION,
VISIBILITY,
ACCESS,
LEARNING_CONTENT;
}
private String courseRunCss;
private String courseOpenEditorCss;
......@@ -200,7 +225,13 @@ public class FunctionalCourseUtil {
private String blogFormCss;
private String testChooseRepositoryFileCss;
private String testCreateResourceCss;
private String cpChooseRepositoryFileCss;
private String wikiChooseRepositoryFileCss;
private String feedChooseRepositoryFileCss;
private String repositoryPopupCreateResourceCss;
private String repositorySaveDetailsCss;
private String repositoryAddForwardCss;
private FunctionalUtil functionalUtil;
private FunctionalRepositorySiteUtil functionalRepositorySiteUtil;
......@@ -238,7 +269,13 @@ public class FunctionalCourseUtil {
setBlogFormCss(BLOG_FORM_CSS);
setTestChooseRepositoryFileCss(TEST_CHOOSE_REPOSITORY_FILE_CSS);
setTestCreateResourceCss(TEST_CREATE_RESOURCE_CSS);
setCpChooseRepositoryFileCss(CP_CHOOSE_REPOSITORY_FILE_CSS);
setWikiChooseRepositoryFileCss(WIKI_CHOOSE_REPOSITORY_FILE_CSS);
setFeedChooseRepositoryFileCss(FEED_CHOOSE_REPOSITORY_FILE_CSS);
setRepositoryPopupCreateResourceCss(REPOSITORY_POPUP_CREATE_RESOURCE_CSS);
setRepositorySaveDetailsCss(REPOSITORY_SAVE_DETAILS_CSS);
setRepositoryAddForwardCss(REPOSITORY_ADD_FORWARD_CSS);
}
/**
......@@ -789,21 +826,41 @@ public class FunctionalCourseUtil {
/**
* @param browser
* @param tab
* @return true on success
*
* Opens the content package configurations appropriate tab.
*/
public boolean openCourseEditorCpTab(Selenium browser, CourseEditorCpTab tab){
return(functionalUtil.openContentTab(browser, tab.ordinal()));
}
/**
* @param browser
* @param tab
* @return true on success
*
* Opens the wiki configurations appropriate tab.
*/
public boolean openCourseEditorWikiTab(Selenium browser, CourseEditorWikiTab tab){
return(functionalUtil.openContentTab(browser, tab.ordinal()));
}
/**
* @param browser
* @param chooseRepositoryCss
* @param title
* @param description
* @return true on success
*
* Creates a new test.
* Opens and fills in the "create resource" popup.
*/
public boolean createQTITest(Selenium browser, String title, String description){
if(!openCourseEditorIQTestTab(browser, CourseEditorIQTestTab.TEST_CONFIGURATION))
return(false);
private boolean createRepositoryResource(Selenium browser, String chooseRepositoryCss, String title, String description){
/* click on "choose, create or import file" button */
StringBuffer selectorBuffer = new StringBuffer();
selectorBuffer.append("xpath=//a[contains(@class, '")
.append(getTestChooseRepositoryFileCss())
.append(chooseRepositoryCss)
.append("')]");
functionalUtil.waitForPageToLoadElement(browser, selectorBuffer.toString());
......@@ -813,7 +870,7 @@ public class FunctionalCourseUtil {
selectorBuffer = new StringBuffer();
selectorBuffer.append("xpath=//a[contains(@class, '")
.append(getTestCreateResourceCss())
.append(getRepositoryPopupCreateResourceCss())
.append("')]");
functionalUtil.waitForPageToLoadElement(browser, selectorBuffer.toString());
......@@ -834,7 +891,9 @@ public class FunctionalCourseUtil {
/* click save */
selectorBuffer = new StringBuffer();
selectorBuffer.append("xpath=(//div[contains(@class, 'b_window')]//form//div[contains(@class, 'o_sel_repo_save_details')]//button)[1]");
selectorBuffer.append("xpath=(//div[contains(@class, 'b_window')]//form//div[contains(@class, '")
.append(getRepositorySaveDetailsCss())
.append("')]//button)[1]");
functionalUtil.waitForPageToLoadElement(browser, selectorBuffer.toString());
......@@ -843,7 +902,9 @@ public class FunctionalCourseUtil {
/* click next */
selectorBuffer = new StringBuffer();
selectorBuffer.append("xpath=//div[contains(@class, 'b_window')]//a[contains(@class, 'o_sel_repo_add_forward')]");
selectorBuffer.append("xpath=//div[contains(@class, 'b_window')]//a[contains(@class, '")
.append(getRepositoryAddForwardCss())
.append("')]");
functionalUtil.waitForPageToLoadElement(browser, selectorBuffer.toString());
......@@ -854,6 +915,63 @@ public class FunctionalCourseUtil {
return(true);
}
/**
* @param browser
* @param title
* @param description
* @return true on success
*
* Creates a new test.
*/
public boolean createQTITest(Selenium browser, String title, String description){
if(!openCourseEditorIQTestTab(browser, CourseEditorIQTestTab.TEST_CONFIGURATION))
return(false);
if(!createRepositoryResource(browser, getTestChooseRepositoryFileCss(), title, description)){
return(false);
}
return(true);
}
/**
* @param browser
* @param title
* @param description
* @return true on success
*
* Creates a new CP learning content.
*/
public boolean createCPLearningContent(Selenium browser, String title, String description){
if(!openCourseEditorCpTab(browser, CourseEditorCpTab.LEARNING_CONTENT))
return(false);
if(!createRepositoryResource(browser, getCpChooseRepositoryFileCss(), title, description)){
return(false);
}
return(true);
}
/**
* @param browser
* @param title
* @param description
* @return true on success
*
* Creates a new wiki.
*/
public boolean createWiki(Selenium browser, String title, String description){
if(!openCourseEditorWikiTab(browser, CourseEditorWikiTab.LEARNING_CONTENT))
return(false);
if(!createRepositoryResource(browser, getWikiChooseRepositoryFileCss(), title, description)){
return(false);
}
return(true);
}
public FunctionalUtil getFunctionalUtil() {
return functionalUtil;
}
......@@ -1043,12 +1161,52 @@ public class FunctionalCourseUtil {
this.testChooseRepositoryFileCss = testChooseRepositoryFileCss;
}
public String getTestCreateResourceCss() {
return testCreateResourceCss;
public String getCpChooseRepositoryFileCss() {
return cpChooseRepositoryFileCss;
}
public void setCpChooseRepositoryFileCss(String cpChooseRepositoryFileCss) {
this.cpChooseRepositoryFileCss = cpChooseRepositoryFileCss;
}
public String getWikiChooseRepositoryFileCss() {
return wikiChooseRepositoryFileCss;
}
public void setWikiChooseRepositoryFileCss(String wikiChooseRepositoryFileCss) {
this.wikiChooseRepositoryFileCss = wikiChooseRepositoryFileCss;
}
public String getFeedChooseRepositoryFileCss() {
return feedChooseRepositoryFileCss;
}
public void setFeedChooseRepositoryFileCss(String feedChooseRepositoryFileCss) {
this.feedChooseRepositoryFileCss = feedChooseRepositoryFileCss;
}
public String getRepositoryPopupCreateResourceCss() {
return repositoryPopupCreateResourceCss;
}
public void setRepositoryPopupCreateResourceCss(String repositoryPopupCreateResourceCss) {
this.repositoryPopupCreateResourceCss = repositoryPopupCreateResourceCss;
}
public String getRepositorySaveDetailsCss() {
return repositorySaveDetailsCss;
}
public void setRepositorySaveDetailsCss(String repositorySaveDetailsCss) {
this.repositorySaveDetailsCss = repositorySaveDetailsCss;
}
public String getRepositoryAddForwardCss() {
return repositoryAddForwardCss;
}
public void setTestCreateResourceCss(String testCreateResourceCss) {
this.testCreateResourceCss = testCreateResourceCss;
public void setRepositoryAddForwardCss(String repositoryAddForwardCss) {
this.repositoryAddForwardCss = repositoryAddForwardCss;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment