diff --git a/src/test/java/org/olat/selenium/PortfolioV2Test.java b/src/test/java/org/olat/selenium/PortfolioV2Test.java index 0a4dd270dfedb45981191c5d85a5080ddcccef2f..1080a43e87820e9377aeddb89564160588bc9c2b 100644 --- a/src/test/java/org/olat/selenium/PortfolioV2Test.java +++ b/src/test/java/org/olat/selenium/PortfolioV2Test.java @@ -46,8 +46,11 @@ import org.olat.selenium.page.forum.ForumPage; import org.olat.selenium.page.portfolio.BinderPage; import org.olat.selenium.page.portfolio.MediaCenterPage; import org.olat.selenium.page.portfolio.PortfolioV2HomePage; +import org.olat.selenium.page.repository.AuthoringEnvPage; +import org.olat.selenium.page.repository.FeedPage; import org.olat.selenium.page.repository.AuthoringEnvPage.ResourceType; import org.olat.selenium.page.user.UserToolsPage; +import org.olat.selenium.page.wiki.WikiPage; import org.olat.test.ArquillianDeployments; import org.olat.test.rest.UserRestClient; import org.olat.user.restapi.UserVO; @@ -220,7 +223,7 @@ public class PortfolioV2Test { */ @Test @RunAsClient - public void collectForumArtefactInCourse(@InitialPage LoginPage loginPage) + public void collectForumMediaInCourse(@InitialPage LoginPage loginPage) throws IOException, URISyntaxException { UserVO author = new UserRestClient(deploymentUrl).createAuthor(); @@ -272,5 +275,133 @@ public class PortfolioV2Test { .selectMedia(mediaTitle) .assertOnMediaDetails(mediaTitle); } + + /** + * Create a wiki as resource, add and fill a page. The author + * picks the page as media and go in its media center to see it. + * + * @param loginPage + * @throws IOException + * @throws URISyntaxException + */ + @Test + @RunAsClient + public void collectWikiMediaInWikiResource(@InitialPage LoginPage loginPage) + throws IOException, URISyntaxException { + + UserVO author = new UserRestClient(deploymentUrl).createAuthor(); + loginPage + .loginAs(author.getLogin(), author.getPassword()) + .resume(); + + //go to authoring + AuthoringEnvPage authoringEnv = navBar + .assertOnNavigationPage() + .openAuthoringEnvironment(); + + String title = "PF-Wiki-" + UUID.randomUUID(); + //create a wiki and launch it + authoringEnv + .openCreateDropDown() + .clickCreate(ResourceType.wiki) + .fillCreateForm(title) + .assertOnGeneralTab() + .clickToolbarBack(); + + //create a page in the wiki + String page = "LMS-" + UUID.randomUUID(); + String content = "Learning Management System"; + WikiPage wiki = WikiPage.getWiki(browser); + + //create page and add it as artefact to portfolio + String mediaTitle = "My own wiki page"; + wiki + .createPage(page, content) + .addAsMedia() + .fillForumMedia(mediaTitle, "A post I write"); + + UserToolsPage userTools = new UserToolsPage(browser); + MediaCenterPage mediaCenter = userTools + .openUserToolsMenu() + .openPortfolioV2() + .openMediaCenter(); + mediaCenter + .assertOnMedia(mediaTitle) + .selectMedia(mediaTitle) + .assertOnMediaDetails(mediaTitle); + } + + /** + * Create a blog as learn resource, create a new entry and publish it. + * Than pick the entry as a media and go to the media center to see it. + * + * @param loginPage + * @throws IOException + * @throws URISyntaxException + */ + @Test + @RunAsClient + public void collectBlogEntryMediaInBlogResource(@InitialPage LoginPage loginPage) + throws IOException, URISyntaxException { + UserVO author = new UserRestClient(deploymentUrl).createAuthor(); + loginPage + .loginAs(author.getLogin(), author.getPassword()) + .resume(); + + //create a course + String courseTitle = "Course-With-Blog-" + UUID.randomUUID().toString(); + navBar + .openAuthoringEnvironment() + .createCourse(courseTitle) + .clickToolbarBack(); + + String blogNodeTitle = "Blog-EP-1"; + String blogTitle = "Blog - EP - " + UUID.randomUUID().toString(); + + //create a course element of type blog with a blog + CourseEditorPageFragment courseEditor = CoursePageFragment.getCourse(browser) + .edit(); + courseEditor + .createNode("blog") + .nodeTitle(blogNodeTitle) + .selectTabLearnContent() + .createFeed(blogTitle); + + //publish the course + courseEditor + .publish() + .quickPublish(); + + //open the course and see the CP + CoursePageFragment course = courseEditor + .clickToolbarBack(); + course + .clickTree() + .selectWithTitle(blogNodeTitle); + + String postTitle = "Post-EP-" + UUID.randomUUID(); + String postSummary = "Some explantations as teaser"; + String postContent = "Content of the post"; + + FeedPage feed = FeedPage.getFeedPage(browser); + feed + .newBlog() + .fillPostForm(postTitle, postSummary, postContent) + .publishPost(); + + String mediaTitle = "My very own entry"; + feed + .addAsMedia() + .fillForumMedia(mediaTitle, "A post I write"); + UserToolsPage userTools = new UserToolsPage(browser); + MediaCenterPage mediaCenter = userTools + .openUserToolsMenu() + .openPortfolioV2() + .openMediaCenter(); + mediaCenter + .assertOnMedia(mediaTitle) + .selectMedia(mediaTitle) + .assertOnMediaDetails(mediaTitle); + } } diff --git a/src/test/java/org/olat/selenium/page/repository/FeedPage.java b/src/test/java/org/olat/selenium/page/repository/FeedPage.java index 0c2d36727c9f1fcfbe97e9e6f3011b1e04ee27c8..4be419ca9f27768ef481da55fac555e56d592b31 100644 --- a/src/test/java/org/olat/selenium/page/repository/FeedPage.java +++ b/src/test/java/org/olat/selenium/page/repository/FeedPage.java @@ -24,6 +24,7 @@ import java.util.List; import org.junit.Assert; import org.olat.selenium.page.graphene.OOGraphene; import org.olat.selenium.page.portfolio.ArtefactWizardPage; +import org.olat.selenium.page.portfolio.MediaPage; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; @@ -165,6 +166,20 @@ public class FeedPage { return ArtefactWizardPage.getWizard(browser); } + /** + * Click the button to add a blog entry as media + * to your portfolio. + * + * @return Itself + */ + public MediaPage addAsMedia() { + By addAsMediaBy = By.cssSelector(".o_post .o_portfolio_collector"); + WebElement addAsmediaButton = browser.findElement(addAsMediaBy); + addAsmediaButton.click(); + OOGraphene.waitBusy(browser); + return new MediaPage(browser); + } + /** * Click the first month in the pager * @return diff --git a/src/test/java/org/olat/selenium/page/wiki/WikiPage.java b/src/test/java/org/olat/selenium/page/wiki/WikiPage.java index 86310d1a1f0d02af1165e717392f77a8ad7dad61..133abfbeea59f73ff880d7bf19be910a2dc977d5 100644 --- a/src/test/java/org/olat/selenium/page/wiki/WikiPage.java +++ b/src/test/java/org/olat/selenium/page/wiki/WikiPage.java @@ -26,6 +26,7 @@ import org.jboss.arquillian.graphene.Graphene; import org.junit.Assert; import org.olat.selenium.page.graphene.OOGraphene; import org.olat.selenium.page.portfolio.ArtefactWizardPage; +import org.olat.selenium.page.portfolio.MediaPage; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; @@ -133,5 +134,14 @@ public class WikiPage { OOGraphene.waitBusy(browser); return ArtefactWizardPage.getWizard(browser); } + + public MediaPage addAsMedia() { + By collectBy = By.cssSelector(".o_wikimod_nav .o_portfolio_collector"); + OOGraphene.waitElement(collectBy, 5, browser); + browser.findElement(collectBy).click(); + OOGraphene.waitBusy(browser); + OOGraphene.waitModalDialog(browser); + return new MediaPage(browser); + } }