public function testCalendarEntryEditTest() { //edit date $row = self::$webDriver->findElement(WebDriverBy::xpath("//tr[contains(text(), " . "CalendarTestBooking" . ")]/td[8]")); $row->findElement(WebDriverBy::linkText('Bearbeiten'))->click(); self::$webDriver->findElement(WebDriverBy::id('from[date]_d'))->sendKeys(date('d') + 1); self::$webDriver->findElement(WebDriverBy::id('from[date]_m'))->sendKeys(date('m')); self::$webDriver->findElement(WebDriverBy::id('from[date]_y'))->sendKeys(date('Y')); self::$webDriver->findElement(WebDriverBy::id('from[time]_h'))->sendKeys("14"); self::$webDriver->findElement(WebDriverBy::id('from[time]_m'))->sendKeys("00"); self::$webDriver->findElement(WebDriverBy::id('to[date]_d'))->sendKeys(date('d') + 1); self::$webDriver->findElement(WebDriverBy::id('to[date]_m'))->sendKeys(date('m')); self::$webDriver->findElement(WebDriverBy::id('to[date]_y'))->sendKeys(date('Y')); self::$webDriver->findElement(WebDriverBy::id('to[time]_h'))->sendKeys("15"); self::$webDriver->findElement(WebDriverBy::id('to[time]_m'))->sendKeys("10"); self::$webDriver->findElement(WebDriverBy::name('cmd[saveEditBooking]'))->click(); $this->assertContains("Buchung erfolgreich bearbeitet", self::$helper->getSuccMessage()); self::$webDriver->findElement(WebDriverBy::linkText('Zurück zu den Buchungen'))->click(); // check calendar for booking self::$webDriver->findElement(WebDriverBy::linkText(self::$helper->getCurrentMonth() . ' ' . date('Y')))->click(); $this->assertContains("14:00 CalendarTestBooking", self::$webDriver->findElement(webDriverBy::cssSelector("div.ilTabContentOuter.ilTabsTableCell"))->getText()); // go back to bookings self::$webDriver->findElement(WebDriverBy::linkText('Termine'))->click(); }
public function deleteOneAttributeForBooking() { $this->webDriver->findElement(webDriverBy::partialLinkText('Attribute'))->click(); $this->webDriver->findElement(webDriverBy::partialLinkText('Attribute für Buchungen'))->click(); $this->webDriver->findElement(webDriverBy::id('radio_action_mode_delete_attribute'))->click(); $this->webDriver->findElement(webDriverBy::cssSelector('div.ilFormFooter.ilFormCommands > input[name="cmd[executeBookingAttributeAction]"]'))->click(); }
public function testAppointmentPrivileges() { #1 check without any privilege self::$helper->logout(); self::$helper->login(self::$new_user_1_login, self::$new_user_1_pw); self::$helper->toRSS(); try { $webDriver->findElement(webDriverBy::linkText('Termine')); $this->fail("#1 Appointments are displayed even if there's no privilege"); } catch (Exception $ex) { //Nothing to do here - the Element musn't be found! } #2 check with the privilege to see appointments and administrate booking attributes self::$helper->logout(); self::$helper->login(self::$login_root, self::$pass_root); self::$helper->toRSS(); self::$webDriver->findElement(webDriverBy::linkText('Privilegien'))->click(); $class_1_id = self::$helper->getPrivilegeClassIDByNamePartial(self::$classname_1); self::$helper->grantPrivilege('accessAppointments', $class_1_id); self::$helper->grantPrivilege('adminBookingAttributes', $class_1_id); self::$helper->logout(); self::$helper->login(self::$new_user_1_login, self::$new_user_1_pw); self::$helper->toRSS(); $this->assertEquals(true, self::$webDriver->findElement(webDriverBy::linkText('Termine'))->isDisplayed(), '#2 - 1 Appointments are not displayed even the privilege is granted'); $this->assertEquals(true, self::$webDriver->findElement(webDriverBy::linkText('Termine'))->isDisplayed(), '#2 - 2 Attributes are not displayed even the privilege is granted'); # Check if non_public bookings are not displayed self::$helper->logout(); self::$helper->login(self::$login_root, self::$pass_root); self::$helper->toRSS(); //Create a non-public booking self::$helper->createRoom(self::$standard_roomname, '1', '10'); self::$helper->searchForRoomByName(self::$standard_roomname); self::$webDriver->findElement(WebDriverBy::linktext('Buchen'))->click(); self::$helper->doABooking(self::$standard_subject, "1", "1", date("Y") + 1, "12", "00", "1", "1", date("Y") + 1, "13", "00", ''); self::$helper->logout(); self::$helper->login(self::$new_user_1_login, self::$new_user_1_pw); self::$helper->toRSS(); $this->assertEquals(0, self::$helper->getNoOfResults(), "#3 A non-public booking is visible to an user without the privilege"); #4 Check the privilege to see non-public bookings self::$helper->logout(); self::$helper->login(self::$login_root, self::$pass_root); self::$helper->toRSS(); self::$webDriver->findElement(webDriverBy::linkText('Privilegien'))->click(); self::$helper->grantPrivilege('seeNonPublicBookingInformation', $class_1_id); self::$helper->logout(); self::$helper->login(self::$new_user_1_login, self::$new_user_1_pw); self::$helper->toRSS(); $this->assertEquals(1, self::$helper->getNoOfResults(), "#4 A non-public booking is not visible to an user with the privilege"); #5 Check if the search is accessible self::$helper->logout(); self::$helper->login(self::$login_root, self::$pass_root); self::$helper->toRSS(); self::$webDriver->findElement(webDriverBy::linkText('Privilegien'))->click(); self::$helper->grantPrivilege('accessSearch', $class_1_id); self::$helper->logout(); self::$helper->login(self::$new_user_1_login, self::$new_user_1_pw); self::$helper->toRSS(); $this->assertEquals(true, self::$webDriver->findElement(webDriverBy::linkText('Suche'))->isDisplayed(), '#5 Search is not displayed even the privilege is granted'); #6 Check if the "add booking"-link is not showed, if the privilege isn't given try { $webDriver->findElement(webDriverBy::partialLinkText('Buchung hinzufügen'))->click(); $this->fail('#6 Add Booking is acceptible without the privilege'); } catch (Exception $ex) { //Nothing to do - the exception should come } #7 Check if the "add booking"-link is showed if the privilege is given self::$helper->logout(); self::$helper->login(self::$login_root, self::$pass_root); self::$helper->toRSS(); self::$webDriver->findElement(webDriverBy::linkText('Privilegien'))->click(); self::$helper->grantPrivilege('addOwnBookings', $class_1_id); self::$helper->logout(); self::$helper->login(self::$new_user_1_login, self::$new_user_1_pw); self::$helper->toRSS(); $this->assertEquals(true, self::$webDriver->findElement(webDriverBy::partialLinkText('Buchung hinzufügen'))->isDisplayed(), '#7 Add Booking is not displayed even the privilege is granted'); #8 Check if a user with a higher Priority can oust another booking self::$helper->searchForRoomByName(self::$standard_roomname); self::$webDriver->findElement(WebDriverBy::linktext('Buchen'))->click(); self::$helper->doABooking(self::$standard_subject, "1", "1", date("Y") + 1, "15", "00", "1", "1", date("Y") + 1, "16", "00", ''); self::$helper->searchForRoomByName(self::$standard_roomname); self::$webDriver->findElement(WebDriverBy::linktext('Buchen'))->click(); self::$helper->doABooking(self::$standard_subject, "1", "1", date("Y") + 1, "17", "00", "1", "1", date("Y") + 1, "18", "00", ''); self::$helper->logout(); self::$helper->login(self::$login_root, self::$pass_root); self::$helper->toRSS(); self::$webDriver->findElement(webDriverBy::linkText('Privilegien'))->click(); $class_2_id = self::$helper->getPrivilegeClassIDByNamePartial(self::$classname_2); self::$helper->grantPrivilege('cancelBookingLowerPriority', $class_2_id); self::$helper->grantPrivilege('accessSearch', $class_2_id); self::$helper->grantPrivilege('seeNonPublicBookingInformation', $class_2_id); self::$helper->grantPrivilege('accessAppointments', $class_2_id); self::$helper->grantPrivilege('addOwnBookings', $class_2_id); self::$helper->logout(); self::$helper->login(self::$new_user_2_login, self::$new_user_2_pw); self::$helper->toRSS(); self::$helper->searchForRoomByName(self::$standard_roomname); self::$webDriver->findElement(WebDriverBy::linktext('Buchen'))->click(); self::$helper->doABooking(self::$standard_subject, "1", "1", date("Y") + 1, "15", "00", "1", "1", date("Y") + 1, "16", "00", ''); try { self::$webDriver->findElement(WebDriverBy::className("ilFailureMessage")); $this->fail("#8 Booking with ousting a lower-priority booking does not succeed"); } catch (Exception $ex) { } #9 Check if user with higher priority can cancel bookings with lower priority self::$helper->toRSS(); self::$webDriver->findElement(webDriverBy::id('chb_select_all_'))->click(); self::$webDriver->findElement(webDriverBy::cssSelector('div.ilTableCommandRow > div > input[name="cmd[confirmMultipleCancels]"]'))->click(); self::$webDriver->findElement(webDriverBy::name('cmd[cancelMultipleBookings]'))->click(); try { self::$webDriver->findElement(WebDriverBy::className("ilFailureMessage")); $this->fail('#9 Cancelling a booking with a lower priority is impossible'); } catch (Exception $ex) { } #10 Check if serial bookings can be made and if unlimited bookings are possible self::$helper->logout(); self::$helper->login(self::$login_root, self::$pass_root); self::$helper->toRSS(); self::$webDriver->findElement(webDriverBy::linkText('Privilegien'))->click(); self::$helper->grantPrivilege('addSequenceBookings', $class_1_id); self::$helper->grantPrivilege('addUnlimitedBookings', $class_1_id); self::$helper->logout(); self::$helper->login(self::$new_user_1_login, self::$new_user_1_pw); self::$helper->toRSS(); self::$helper->searchForRoomByName(self::$standard_roomname); self::$webDriver->findElement(WebDriverBy::linktext('Buchen'))->click(); try { $this->assertEquals(true, self::$webDriver->findElement(webDriverBy::id('il_recurrence_1'))->isDisplayed(), "#10 Sequence Bookings are impossible"); } catch (Exception $ex) { $this->fail("#10 Sequence Bookings are impossible"); } self::$helper->toRSS(); self::$helper->searchForRoomByName(self::$standard_roomname); self::$webDriver->findElement(WebDriverBy::linktext('Buchen'))->click(); self::$helper->doABooking(self::$standard_subject, "1", "1", date("Y") + 1, "20", "00", "1", "1", date("Y") + 2, "11", "00", ''); try { self::$webDriver->findElement(WebDriverBy::className("ilFailureMessage")); $this->fail('#10 Unlimited Bookings are impossible'); } catch (Exception $ex) { } #11 Import Bookings self::$helper->logout(); self::$helper->login(self::$login_root, self::$pass_root); self::$helper->toRSS(); self::$webDriver->findElement(webDriverBy::linkText('Privilegien'))->click(); self::$helper->grantPrivilege('accessImport', $class_1_id); self::$helper->logout(); self::$helper->login(self::$new_user_1_login, self::$new_user_1_pw); self::$helper->toRSS(); try { $this->assertEquals(true, self::$webDriver->findElement(webDriverBy::partialLinkText('Import'))->isDisplayed(), "#11 Import is not accessible"); } catch (Exception $ex) { $this->fail("#11 Import is not accessible"); } //Not implemented: Preferences for notifications. The ID for this privilege // (to be used in grantPrivilege() is 'notificationSettings' }