use of org.olat.test.rest.UserRestClient in project openolat by klemens.
the class BusinessGroupTest method groupCalendar_addEditEvent.
/**
* A coach create a group, enable the calendar, create an event
* and save it. Reopen it, edit it and save it.
*
* @param loginPage
* @throws IOException
* @throws URISyntaxException
*/
@Test
@RunAsClient
public void groupCalendar_addEditEvent(@InitialPage LoginPage loginPage) throws IOException, URISyntaxException {
UserVO coach = new UserRestClient(deploymentUrl).createAuthor();
loginPage.loginAs(coach.getLogin(), coach.getPassword()).resume();
// go to groups
String groupName = "iCal-1-" + UUID.randomUUID();
GroupPage group = navBar.openGroups(browser).createGroup(groupName, "A very little group to delete");
group.openAdministration().openAdminTools().enableCalendarTool();
// add an event to the calendar
CalendarPage calendar = group.openCalendar().assertOnCalendar().addEvent(2).setDescription("Hello", "Very important event", "here or there").save().assertOnEvent("Hello");
// edit the event
calendar.openDetails("Hello").edit().setDescription("Bye", null, null).save();
// check the changes
calendar.assertOnEvent("Bye");
}
use of org.olat.test.rest.UserRestClient in project openolat by klemens.
the class BusinessGroupTest method enrollment.
/**
* An author create a course and a business group in the members
* management. It has max. participants set to 1 and no waiting list.
* Than it returns in the course editor to create an enrollment
* course element. It configure it and select the group created before.<br>
*
* Three users goes to the course and try to enroll. One will become
* a participant, the 2 others get an error message.
*
* @param authorLoginPage
* @param ryomouBrowser
* @param reiBrowser
* @param kanuBrowser
* @throws IOException
* @throws URISyntaxException
*/
@Test
@RunAsClient
public void enrollment(@InitialPage LoginPage authorLoginPage, @Drone @User WebDriver ryomouBrowser, @Drone @Participant WebDriver reiBrowser, @Drone @Student WebDriver kanuBrowser) throws IOException, URISyntaxException {
UserVO author = new UserRestClient(deploymentUrl).createAuthor();
UserVO rei = new UserRestClient(deploymentUrl).createRandomUser("Rei");
UserVO kanu = new UserRestClient(deploymentUrl).createRandomUser("kanu");
UserVO ryomou = new UserRestClient(deploymentUrl).createRandomUser("Ryomou");
authorLoginPage.loginAs(author.getLogin(), author.getPassword());
// create a course
String courseTitle = "Enrollment-2-" + UUID.randomUUID();
navBar.openAuthoringEnvironment().createCourse(courseTitle).clickToolbarBack();
// create a group in members management
String groupName = "Enroll - " + UUID.randomUUID();
CoursePageFragment authorCourse = CoursePageFragment.getCourse(browser);
MembersPage membersPage = authorCourse.members().selectBusinessGroups().createBusinessGroup(groupName, "-", 1, false, false);
// back to the members page
navBar.openCourse(courseTitle);
authorCourse = membersPage.clickToolbarBack();
// create an enrollment course element
String enNodeTitle = "Enroll - 2";
CourseEditorPageFragment courseEditor = authorCourse.edit().createNode("en").nodeTitle(enNodeTitle);
// select the group created above
EnrollmentConfigurationPage enrolmentConfig = new EnrollmentConfigurationPage(browser);
enrolmentConfig.selectConfiguration().selectBusinessGroups();
// publish the course
courseEditor.publish().quickPublish(UserAccess.registred);
GroupPage authorGroup = navBar.openGroups(browser).selectGroup(groupName).openAdministration().openAdminMembers().setVisibility(false, true, false).openMembers().assertParticipantList();
Enrollment[] participantDrivers = new Enrollment[] { new Enrollment(ryomou, ryomouBrowser), new Enrollment(rei, reiBrowser), new Enrollment(kanu, kanuBrowser) };
for (Enrollment enrollment : participantDrivers) {
WebDriver driver = enrollment.getDriver();
LoginPage.getLoginPage(driver, deploymentUrl).loginAs(enrollment.getUser()).resume();
NavigationPage participantNavBar = new NavigationPage(driver);
participantNavBar.openMyCourses().openSearch().extendedSearch(courseTitle).select(courseTitle).start();
// go to the enrollment
CoursePageFragment participantCourse = new CoursePageFragment(driver);
participantCourse.clickTree().selectWithTitle(enNodeTitle);
EnrollmentPage enrollmentPage = new EnrollmentPage(driver);
enrollmentPage.assertOnEnrolmentPage();
enrollment.setEnrollmentPage(enrollmentPage);
}
// enroll
for (Enrollment enrollment : participantDrivers) {
enrollment.getEnrollmentPage().enrollNoWait();
}
// wait
for (Enrollment enrollment : participantDrivers) {
OOGraphene.waitBusy(enrollment.getDriver());
}
int errors = 0;
for (Enrollment enrollment : participantDrivers) {
if (enrollment.getEnrollmentPage().hasError()) {
errors++;
}
}
// author check the lists
authorGroup.openMembers();
// must a participant and 2 in waiting list
int participants = 0;
for (Enrollment enrollment : participantDrivers) {
if (authorGroup.isInMembersParticipantList(enrollment.getUser())) {
participants++;
}
}
Assert.assertEquals(1, participants);
Assert.assertEquals(participantDrivers.length - 1, errors);
}
use of org.olat.test.rest.UserRestClient in project openolat by klemens.
the class BusinessGroupTest method groupMembersVisibility.
/**
* An author create a group, set the visibility to
* show owners and participants. Add a member to the
* group.
*
* The participant log in, search the group and open it.
*
* @param loginPage
* @throws IOException
* @throws URISyntaxException
*/
@Test
@RunAsClient
public void groupMembersVisibility(@InitialPage LoginPage loginPage, @Drone @Participant WebDriver participantBrowser) throws IOException, URISyntaxException {
UserVO author = new UserRestClient(deploymentUrl).createRandomUser("Selena");
UserVO participant = new UserRestClient(deploymentUrl).createRandomUser("Aoi");
loginPage.loginAs(author.getLogin(), author.getPassword()).resume();
// go to groups
String groupName = "Group-1-" + UUID.randomUUID();
GroupPage group = navBar.openGroups(browser).createGroup(groupName, "A very little group");
MembersWizardPage members = group.openAdministration().openAdminMembers().setVisibility(true, true, false).addMember();
members.searchMember(participant, false).nextUsers().nextOverview().nextPermissions().finish();
LoginPage participantLoginPage = LoginPage.getLoginPage(participantBrowser, deploymentUrl);
// tools
participantLoginPage.loginAs(participant.getLogin(), participant.getPassword()).resume();
NavigationPage participantNavBar = new NavigationPage(participantBrowser);
participantNavBar.openGroups(participantBrowser).selectGroup(groupName);
WebElement contentEl = participantBrowser.findElement(By.id("o_main_center_content_inner"));
String content = contentEl.getText();
Assert.assertTrue(content.contains(groupName));
}
use of org.olat.test.rest.UserRestClient in project openolat by klemens.
the class BusinessGroupTest method collaborativeTools.
/**
* Configure group tools: create a group, go to administration > tools
* select the informations for members and write some message. Select
* all tools: contact, calendar, folder, forum, chat, wiki and portfolio.<br>
*
* Check that all these functions are available.
*
* @param loginPage
* @param participantBrowser
* @throws IOException
* @throws URISyntaxException
*/
@Test
@RunAsClient
public void collaborativeTools(@InitialPage LoginPage loginPage) throws IOException, URISyntaxException {
UserVO author = new UserRestClient(deploymentUrl).createRandomUser("Selena");
loginPage.loginAs(author.getLogin(), author.getPassword()).resume();
// go to groups
String groupName = "Group-1-" + UUID.randomUUID();
GroupPage group = navBar.openGroups(browser).createGroup(groupName, "A very little group");
group.openAdministration().openAdminTools().enableTools();
// check the news
group.openNews().createMessage().setMessage("Information 0", "A very important info").next().finish().assertOnMessageTitle("Information 0");
// check calendar
group.openCalendar().assertOnCalendar();
// check members @see other selenium test dedicated to this one
// check contact
group.openContact().assertOnContact();
// check folder
String directoryName = "New directory";
group.openFolder().assertOnFolderCmp().createDirectory(directoryName).assertOnDirectory(directoryName).createHTMLFile("New file", "Some really cool content.").assertOnFile("new file.html");
// check forum
String threadBodyMarker = UUID.randomUUID().toString();
group.openForum().createThread("New thread in a group", "Very interessant discussion in a group" + threadBodyMarker, null).assertMessageBody(threadBodyMarker);
// check chat @see other selenium test dedicated to this one
// check wiki
String wikiMarker = UUID.randomUUID().toString();
group.openWiki().createPage("Group page", "Content for the group's wiki " + wikiMarker).assertOnContent(wikiMarker);
// check portfolio
String pageTitle = "Portfolio page " + UUID.randomUUID();
String sectionTitle = "Section " + UUID.randomUUID();
group.openPortfolio().assertOnBinder().selectTableOfContent().selectEntries().createSection(sectionTitle).assertOnSectionTitleInEntries(sectionTitle).createEntry(pageTitle).selectEntries().assertOnPageInEntries(pageTitle).selectTableOfContent().assertOnPageInToc(pageTitle);
}
use of org.olat.test.rest.UserRestClient in project openolat by klemens.
the class CourseElementTest method createCourseWithPodcast_externalFeed.
/**
* Create a course with a course element of type podcast. Create
* a podcast, publish the course, go the the course and configure
* the podcast to read an external feed.
*
* @param loginPage
* @throws IOException
* @throws URISyntaxException
*/
@Test
@RunAsClient
public void createCourseWithPodcast_externalFeed(@InitialPage LoginPage loginPage) throws IOException, URISyntaxException {
UserVO author = new UserRestClient(deploymentUrl).createAuthor();
loginPage.loginAs(author.getLogin(), author.getPassword());
// create a course
String courseTitle = "Course-With-Podcast-" + UUID.randomUUID();
navBar.openAuthoringEnvironment().createCourse(courseTitle).clickToolbarBack();
String podcastNodeTitle = "Podcats-1";
String podcastTitle = "Podcast - " + UUID.randomUUID();
// create a course element of type podcast
CourseEditorPageFragment courseEditor = CoursePageFragment.getCourse(browser).edit();
courseEditor.createNode("podcast").nodeTitle(podcastNodeTitle).selectTabLearnContent().createFeed(podcastTitle);
// publish the course
courseEditor.publish().quickPublish();
// open the course and see the podcast
CoursePageFragment course = courseEditor.clickToolbarBack();
course.clickTree().selectWithTitle(podcastNodeTitle);
// check that the title of the podcast is correct
WebElement podcastH2 = browser.findElement(By.cssSelector("div.o_podcast_info>h2>i.o_FileResource-PODCAST_icon"));
Assert.assertNotNull(podcastH2);
// Assert.assertEquals(podcastTitle, podcastH2.getText().trim());
FeedPage feed = FeedPage.getFeedPage(browser);
feed.newExternalPodcast(podcastTitle, "http://podcasts.srf.ch/rock_special_mpx.xml");
// check only that the "episodes" title is visible
/*
By episodeTitleby = By.cssSelector("div.o_podcast_episodes>h4.o_title");
OOGraphene.waitElement(episodeTitleby, 20, browser);
WebElement episodeH4 = browser.findElement(episodeTitleby);
Assert.assertNotNull(episodeH4);
*/
}
Aggregations