use of org.olat.selenium.page.portfolio.PortfolioV2HomePage in project OpenOLAT by OpenOLAT.
the class PortfolioV2Test method binderInvitation.
/**
* A user create a binder with some sections and pages.
* It invites a second person on the last page it creates.
* This page is not published for the moment. The invitee
* follow the invitation URL and see an empty binder.<br>
* The author publish the last entry. The invitee come back
* to the list of entries, find the page and open it.
*
* @param loginPage
* @param inviteeBrowser
* @throws IOException
* @throws URISyntaxException
*/
@Test
@RunAsClient
public void binderInvitation(@InitialPage LoginPage loginPage, @Drone @User WebDriver inviteeBrowser) throws IOException, URISyntaxException {
UserVO author = new UserRestClient(deploymentUrl).createRandomUser("rei");
loginPage.loginAs(author.getLogin(), author.getPassword()).resume();
UserToolsPage userTools = new UserToolsPage(browser);
PortfolioV2HomePage portfolio = userTools.openUserToolsMenu().openPortfolioV2();
String binderTitle = "Binder on invitation " + UUID.randomUUID();
BinderPage binder = portfolio.openMyBinders().createBinder(binderTitle, "A brand new binder");
// create 2 sections and 3 entries
binder.selectEntries().createSection("1. Section").assertOnSectionTitleInEntries("1. Section").createEntry("1. Page").assertOnPage("1. Page").selectEntries().createSection("2. Section").createEntry("2. Page").assertOnPage("2. Page").selectEntries().createEntry("3. Page", 1).assertOnPage("3. Page");
BinderPublicationPage binderPublish = binder.selectPublish().openAccessMenu().addInvitation("c.l@frentix.com").fillInvitation("Clara", "Vigne").fillAccessRights("3. Page", Boolean.TRUE);
String url = binderPublish.getInvitationURL();
binderPublish.save();
// invitee come to see the bidner
inviteeBrowser.get(url);
BinderPage invitee = new BinderPage(inviteeBrowser);
invitee.assertOnBinder().selectEntries().assertNoPagesInEntries();
// author publish an entry
binder.selectTableOfContent().selectEntryInToc("3. Page").publishEntry();
// return in entries to check the changes
invitee.selectTableOfContent().selectEntries().assertOnPageInEntries("3. Page").selectEntryInEntries("3. Page").assertOnPage("3. Page");
}
use of org.olat.selenium.page.portfolio.PortfolioV2HomePage in project OpenOLAT by OpenOLAT.
the class PortfolioV2Test method editPage.
/**
* A user create a page / entry, it edit it
* and add a title, an image, a document
* and a citation. It toggles between the editor
* mode and the view mode to check if the parts it
* add in the page are really there.
*
* @param loginPage
* @throws IOException
* @throws URISyntaxException
*/
@Test
@RunAsClient
public void editPage(@InitialPage LoginPage loginPage) throws IOException, URISyntaxException {
UserVO user = new UserRestClient(deploymentUrl).createRandomUser("rei");
loginPage.loginAs(user.getLogin(), user.getPassword()).resume();
UserToolsPage userTools = new UserToolsPage(browser);
PortfolioV2HomePage portfolio = userTools.openUserToolsMenu().openPortfolioV2();
String pageTitle = "My page " + UUID.randomUUID();
EntryPage entry = portfolio.openMyEntries().newPage(pageTitle).assertOnPage(pageTitle);
// add a title
String title = "My long title " + UUID.randomUUID();
entry.addTitle(title).setTitleSize(4).closeEditFragment().assertOnTitle(title, 4);
// add an image
URL imageUrl = JunitTestHelper.class.getResource("file_resources/IMG_1484.jpg");
File imageFile = new File(imageUrl.toURI());
entry.addImage("Blue is the new black", imageFile).assertOnImage(imageFile);
// close the editor and check
entry.toggleEditor().assertOnTitle(title, 4).assertOnImage(imageFile);
// reopen the editor and add a document
URL pdfUrl = JunitTestHelper.class.getResource("file_resources/handInTopic1.pdf");
File pdfFile = new File(pdfUrl.toURI());
entry.toggleEditor().addDocument("Anything about", pdfFile).assertOnDocument(pdfFile);
// and a citation
String citation = "Close the world, open the next.";
entry.addCitation("Serial experiment", citation).assertOnCitation(citation);
// close the editor and check all parts
entry.toggleEditor().assertOnTitle(title, 4).assertOnImage(imageFile).assertOnDocument(pdfFile).assertOnCitation(citation);
}
use of org.olat.selenium.page.portfolio.PortfolioV2HomePage in project openolat by klemens.
the class PortfolioV2Test method deletePage.
/**
* A user create a binder with a section and two pages. It deletes
* one, go to the trash, find the delete page, restore it and go
* again in the binder. It move a second time the page to the trash
* and delete it definitively.
*
* @param loginPage
* @throws IOException
* @throws URISyntaxException
*/
@Test
@RunAsClient
public void deletePage(@InitialPage LoginPage loginPage) throws IOException, URISyntaxException {
UserVO author = new UserRestClient(deploymentUrl).createRandomUser("rei");
loginPage.loginAs(author.getLogin(), author.getPassword()).resume();
UserToolsPage userTools = new UserToolsPage(browser);
PortfolioV2HomePage portfolio = userTools.openUserToolsMenu().openPortfolioV2();
String binderTitle = "Binder del " + UUID.randomUUID();
BinderPage binder = portfolio.openMyBinders().createBinder(binderTitle, "A binder where I want to delete some pages");
String sectionTitle = "Section one " + UUID.randomUUID();
binder.selectEntries().createSection(sectionTitle).assertOnSectionTitleInEntries(sectionTitle);
String pageTitle = "Page two " + UUID.randomUUID();
String pageToDelete = "Page del " + UUID.randomUUID();
binder.createEntry(pageToDelete).assertOnPage(pageToDelete).selectEntries().createEntry(pageTitle).assertOnPage(pageTitle).selectTableOfContent().selectEntryInToc(pageToDelete).moveEntryToTrash().assertOnPageInToc(pageTitle).assertOnPageNotInToc(pageToDelete);
EntriesPage trash = portfolio.clickToolbarBack().clickToolbarBack().openDeletedEntries();
trash.assertOnPage(pageToDelete).switchTableView().restore(pageToDelete, binderTitle, sectionTitle);
portfolio.clickToolbarBack().openMyBinders().selectBinder(binderTitle).assertOnPageInToc(pageToDelete).selectEntryInToc(pageToDelete).moveEntryToTrash();
trash = portfolio.clickToolbarBack().clickToolbarBack().openDeletedEntries();
trash.switchTableView().assertOnPageTableView(pageToDelete).switchTableView().selectPageInTableView(pageToDelete).deleteEntry().assertEmptyTableView();
}
use of org.olat.selenium.page.portfolio.PortfolioV2HomePage in project openolat by klemens.
the class PortfolioV2Test method editPage.
/**
* A user create a page / entry, it edit it
* and add a title, an image, a document
* and a citation. It toggles between the editor
* mode and the view mode to check if the parts it
* add in the page are really there.
*
* @param loginPage
* @throws IOException
* @throws URISyntaxException
*/
@Test
@RunAsClient
public void editPage(@InitialPage LoginPage loginPage) throws IOException, URISyntaxException {
UserVO user = new UserRestClient(deploymentUrl).createRandomUser("rei");
loginPage.loginAs(user.getLogin(), user.getPassword()).resume();
UserToolsPage userTools = new UserToolsPage(browser);
PortfolioV2HomePage portfolio = userTools.openUserToolsMenu().openPortfolioV2();
String pageTitle = "My page " + UUID.randomUUID();
EntryPage entry = portfolio.openMyEntries().newPage(pageTitle).assertOnPage(pageTitle);
// add a title
String title = "My long title " + UUID.randomUUID();
entry.addTitle(title).setTitleSize(4).closeEditFragment().assertOnTitle(title, 4);
// add an image
URL imageUrl = JunitTestHelper.class.getResource("file_resources/IMG_1484.jpg");
File imageFile = new File(imageUrl.toURI());
entry.addImage("Blue is the new black", imageFile).assertOnImage(imageFile);
// close the editor and check
entry.toggleEditor().assertOnTitle(title, 4).assertOnImage(imageFile);
// reopen the editor and add a document
URL pdfUrl = JunitTestHelper.class.getResource("file_resources/handInTopic1.pdf");
File pdfFile = new File(pdfUrl.toURI());
entry.toggleEditor().addDocument("Anything about", pdfFile).assertOnDocument(pdfFile);
// and a citation
String citation = "Close the world, open the next.";
entry.addCitation("Serial experiment", citation).assertOnCitation(citation);
// close the editor and check all parts
entry.toggleEditor().assertOnTitle(title, 4).assertOnImage(imageFile).assertOnDocument(pdfFile).assertOnCitation(citation);
}
use of org.olat.selenium.page.portfolio.PortfolioV2HomePage in project OpenOLAT by OpenOLAT.
the class PortfolioV2Test method binderAssessment.
/**
* This is a long test. It's test the whole process to assess a binder from
* the template create by the author, to the assessment value saved in the
* assessment tool of the course.<br>
* The author creates a portfolio template with 2 sections and 2 assignments,
* it creates a course with a portfolio element and bind the template to it. It
* add a user as participant.<br>
* The participant starts the course, pick the binder and do every assignment.
* It edits the sharing settings to add the author as a coach.<br>
* The author assesses the sections and set the binder as done. Than it goes
* to the course, opens the assessment tool and check the participant passed
* the binder.
*
* @param loginPage
* @param reiBrowser
* @throws IOException
* @throws URISyntaxException
*/
@Test
@RunAsClient
public void binderAssessment(@InitialPage LoginPage loginPage, @Drone @User WebDriver reiBrowser) throws IOException, URISyntaxException {
UserVO author = new UserRestClient(deploymentUrl).createAuthor();
UserVO rei = new UserRestClient(deploymentUrl).createRandomUser("rei");
loginPage.loginAs(author.getLogin(), author.getPassword()).resume();
String binderTitle = "Binder to assess " + UUID.randomUUID();
navBar.openAuthoringEnvironment().createPortfolioBinder(binderTitle).clickToolbarBack();
// create a binder template with 2 sections and
// an assignment in each
String section1Title = "Section 1 " + UUID.randomUUID();
String assignment1Title = "Assignment 1 " + UUID.randomUUID();
String section2Title = "Section 2 " + UUID.randomUUID();
String assignment2Title = "Assignment 2 " + UUID.randomUUID();
BinderPage binderTemplate = new BinderPage(browser);
binderTemplate.assertOnBinder().selectTableOfContent().deleteSection().selectEntries().createSectionInEntries(section1Title).createAssignmentForSection(section1Title, assignment1Title, "Write a small summary", "Your task is...").assertOnAssignmentInEntries(assignment1Title).createSection(section2Title).createAssignmentForSection(section2Title, assignment2Title, "Second part to do", "you have to work").assertOnAssignmentInEntries(assignment2Title);
// create a course
String courseTitle = "ASPF Course " + UUID.randomUUID();
navBar.openAuthoringEnvironment().createCourse(courseTitle).clickToolbarBack();
String portfolioNodeTitle = "Template-ASPF-v2";
// create a course element of type portfolio and choose the one we created above
CourseEditorPageFragment courseEditor = CoursePageFragment.getCourse(browser).edit();
courseEditor.createNode("ep").nodeTitle(portfolioNodeTitle).selectTabLearnContent().choosePortfolio(binderTitle);
// configure the assessment
AssessmentCEConfigurationPage assessmentConfig = new AssessmentCEConfigurationPage(browser);
assessmentConfig.selectConfiguration().setScoreAuto(0.0f, 10.0f, 5.0f);
courseEditor.publish().quickPublish(UserAccess.membersOnly);
MembersPage membersPage = courseEditor.clickToolbarBack().members();
membersPage.importMembers().setMembers(rei).nextUsers().nextOverview().nextPermissions().finish();
// Participant log in
LoginPage reiLoginPage = LoginPage.getLoginPage(reiBrowser, deploymentUrl);
reiLoginPage.loginAs(rei).resume();
// open the course
NavigationPage reiNavBar = new NavigationPage(reiBrowser);
reiNavBar.openMyCourses().select(courseTitle);
// go to the portfolio course element
CoursePageFragment reiTestCourse = new CoursePageFragment(reiBrowser);
reiTestCourse.clickTree().selectWithTitle(portfolioNodeTitle);
PortfolioElementPage portfolioCourseEl = new PortfolioElementPage(reiBrowser);
BinderPage reiBinder = portfolioCourseEl.pickPortfolio().goToPortfolioV2();
OOGraphene.waitAndCloseBlueMessageWindow(reiBrowser);
reiBinder.selectEntries().pickAssignment(assignment1Title).publishEntry();
reiBinder.selectEntries().pickAssignment(assignment2Title).publishEntry();
// add the author as coach
reiBinder.selectPublish().openAccessMenu().addMember().searchMember(author, false).nextUsers().nextOverview().fillAccessRights(binderTitle, Boolean.TRUE).nextPermissions().deSelectEmail().finish();
// the author come to see the binder
UserToolsPage userTools = new UserToolsPage(browser);
PortfolioV2HomePage portfolio = userTools.openUserToolsMenu().openPortfolioV2();
portfolio.openSharedWithMe().openSharedBindersWithMe().assertOnBinder(binderTitle).selectBinder(binderTitle).selectAssessment().passed(section1Title).save().close(section1Title).passed(section2Title).save().close(section2Title).done().assertPassed(2);
// than go to the course and check the results in the assessment tool
// author take the lead and check the assessment tool
navBar.openMyCourses().select(courseTitle);
// open the assessment tool
AssessmentToolPage assessmentTool = new CoursePageFragment(browser).assessmentTool();
// check that rei has passed the test
assessmentTool.users().assertOnUsers(rei).selectUser(rei).assertPassed(rei);
}
Aggregations