Search in sources :

Example 21 with GroupPage

use of org.olat.selenium.page.group.GroupPage in project openolat by klemens.

the class BusinessGroupTest method enrollmentWithUnlimitedBusinessGroups.

/**
 * Variant from the above test where the business group is not
 * limited in size. This was a bug while development of the 10.3
 * release.
 *
 * @param authorLoginPage
 * @param ryomouBrowser
 * @param reiBrowser
 * @param kanuBrowser
 * @throws IOException
 * @throws URISyntaxException
 */
@Test
@RunAsClient
public void enrollmentWithUnlimitedBusinessGroups(@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-3-" + 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 - 3";
    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
    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(3, participants);
    Assert.assertEquals(0, errors);
}
Also used : WebDriver(org.openqa.selenium.WebDriver) GroupPage(org.olat.selenium.page.group.GroupPage) CoursePageFragment(org.olat.selenium.page.course.CoursePageFragment) UserRestClient(org.olat.test.rest.UserRestClient) CourseEditorPageFragment(org.olat.selenium.page.course.CourseEditorPageFragment) UserVO(org.olat.user.restapi.UserVO) NavigationPage(org.olat.selenium.page.NavigationPage) EnrollmentPage(org.olat.selenium.page.course.EnrollmentPage) MembersPage(org.olat.selenium.page.course.MembersPage) EnrollmentConfigurationPage(org.olat.selenium.page.course.EnrollmentConfigurationPage) RunAsClient(org.jboss.arquillian.container.test.api.RunAsClient) Test(org.junit.Test)

Example 22 with GroupPage

use of org.olat.selenium.page.group.GroupPage in project openolat by klemens.

the class BusinessGroupTest method groupChat.

/**
 * An author create a group, set the visibility to true for owners
 * and participants, enable the tools and add 2 users to it. The 2
 * users joins the chat. All three send some messages and read them.
 *
 * @param loginPage
 * @param kanuBrowser
 * @param ryomouBrowser
 * @throws IOException
 * @throws URISyntaxException
 */
@Test
@RunAsClient
public void groupChat(@InitialPage LoginPage loginPage, @Drone @Participant WebDriver kanuBrowser, @Drone @User WebDriver ryomouBrowser) throws IOException, URISyntaxException {
    UserVO author = new UserRestClient(deploymentUrl).createAuthor();
    UserVO kanu = new UserRestClient(deploymentUrl).createRandomUser("Kanu");
    UserVO ryomou = new UserRestClient(deploymentUrl).createRandomUser("Ryomou");
    loginPage.loginAs(author.getLogin(), author.getPassword()).resume();
    // go to groups
    String groupName = "Group-Chat-1-" + UUID.randomUUID();
    GroupPage group = navBar.openGroups(browser).createGroup(groupName, "A very little group to chat");
    group.openAdministration().openAdminTools().enableTools().openAdminMembers().setVisibility(true, true, false);
    // add Kanu to the group
    group.openAdminMembers().addMember().searchMember(kanu, true).nextUsers().nextOverview().nextPermissions().finish();
    // add Ryomou
    group.addMember().searchMember(ryomou, true).nextUsers().nextOverview().nextPermissions().finish();
    // Kanu open the group
    LoginPage kanuLoginPage = LoginPage.getLoginPage(kanuBrowser, deploymentUrl);
    kanuLoginPage.loginAs(kanu.getLogin(), kanu.getPassword()).resume();
    NavigationPage kanuNavBar = new NavigationPage(kanuBrowser);
    GroupPage kanuGroup = kanuNavBar.openGroups(kanuBrowser).selectGroup(groupName);
    // Ryomou open the group
    LoginPage ryomouLoginPage = LoginPage.getLoginPage(ryomouBrowser, deploymentUrl);
    ryomouLoginPage.loginAs(ryomou.getLogin(), ryomou.getPassword()).resume();
    NavigationPage ryomouNavBar = new NavigationPage(ryomouBrowser);
    IMPage ryomouIM = ryomouNavBar.openGroups(ryomouBrowser).selectGroup(groupName).openChat().openGroupChat();
    // Author send a message to Kanu
    String msg1 = "Hello Kanu " + UUID.randomUUID();
    IMPage authorIM = group.openChat().openGroupChat().sendMessage(msg1).assertOnMessage(msg1);
    String msg2 = "Hello dear author " + UUID.randomUUID();
    // Kanu opens her chat window
    IMPage kanuIM = kanuGroup.openChat().openGroupChat().assertOnMessage(msg1).sendMessage(msg2);
    String msg3 = "Hello Kanu and author " + UUID.randomUUID();
    // Ryomou reads her messages
    ryomouIM.sendMessage(msg3).assertOnMessage(msg1).assertOnMessage(msg2);
    // Kanu reads her message
    kanuIM.assertOnMessage(msg3);
    // Author reads too
    authorIM.assertOnMessage(msg2).assertOnMessage(msg3);
}
Also used : UserVO(org.olat.user.restapi.UserVO) NavigationPage(org.olat.selenium.page.NavigationPage) GroupPage(org.olat.selenium.page.group.GroupPage) IMPage(org.olat.selenium.page.core.IMPage) LoginPage(org.olat.selenium.page.LoginPage) UserRestClient(org.olat.test.rest.UserRestClient) RunAsClient(org.jboss.arquillian.container.test.api.RunAsClient) Test(org.junit.Test)

Aggregations

RunAsClient (org.jboss.arquillian.container.test.api.RunAsClient)22 Test (org.junit.Test)22 GroupPage (org.olat.selenium.page.group.GroupPage)22 UserRestClient (org.olat.test.rest.UserRestClient)22 UserVO (org.olat.user.restapi.UserVO)22 NavigationPage (org.olat.selenium.page.NavigationPage)16 LoginPage (org.olat.selenium.page.LoginPage)10 CourseEditorPageFragment (org.olat.selenium.page.course.CourseEditorPageFragment)8 CoursePageFragment (org.olat.selenium.page.course.CoursePageFragment)8 EnrollmentConfigurationPage (org.olat.selenium.page.course.EnrollmentConfigurationPage)6 EnrollmentPage (org.olat.selenium.page.course.EnrollmentPage)6 MembersPage (org.olat.selenium.page.course.MembersPage)6 WebDriver (org.openqa.selenium.WebDriver)6 CalendarPage (org.olat.selenium.page.core.CalendarPage)4 File (java.io.File)2 URL (java.net.URL)2 AdministrationPage (org.olat.selenium.page.core.AdministrationPage)2 IMPage (org.olat.selenium.page.core.IMPage)2 GroupTaskConfigurationPage (org.olat.selenium.page.course.GroupTaskConfigurationPage)2 GroupTaskPage (org.olat.selenium.page.course.GroupTaskPage)2