TASKPM/scripts/functional-tests/administration-management/calendar_test.sah
Manuel Rego Casasnovas 26cc207029 Fix administration-management functional tests
FEA: ItEr76S04BugFixing
2012-07-17 16:24:37 +02:00

161 lines
5.6 KiB
Text

/*
* This file is part of LibrePlan
*
* Copyright (C) 2011 Igalia, S.L.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* Included tests
*
* 1 - Create a new Calendar
* 2 - Create a Calendar with duplicate type (it should be a failure)
* 3 - Create a Calendar with empty type (it should be a failure)
* 4 - Create a derived calendar
* 5 - Edit the Calendar
* 6 - Assign the child calendar to a worker
* 6.1 - Create a worker with the assigned calendar
* 6.2 - Try to delete the assigned calendar (it should be a failure)
* 6.3 - Delete the worker
* 7 - Assign the child calendar to a project
* 7.1 - Create a project with the assigned calendar
* 7.2 - Try to delete the assigned calendar (it should be a failure)
* 7.3 - Delete the project
* 8 - Try to delete the parent calendar (it should be a failure)
* 9 - Delete the child calendar
* 10 - Delete the parent Calendar
*
*/
_include("../common_functions.sah");
function calendarCreateDuplicateType($name) {
commonCreate("Calendars");
commonCalendarForm($name);
calendarNotValid($name);
_log("Do not allow create a calendar with duplicate name", "custom1");
}
function calendarCreateEmpty() {
commonCreate("Calendars");
commonCalendarForm("");
calendarNotEmptyNameValidation();
_log("Do not allow create a calendar without name", "custom1");
}
function calendarCreateChild($parentName, $sonName, $cell) {
calendarGoToCreateChildForm($parentName, $cell);
commonCalendarForm($sonName);
commonSaveValidation("Base calendar", $sonName);
_log("Create a son calendar", "custom1");
}
function calendarEdit($oldName, $newName, $cell) {
commonEdit($oldName, $cell);
commonCalendarForm($newName);
commonSaveValidation("Base calendar", $newName);
_log("Edit the parent calendar", "custom1");
}
function calendarGoToCreateChildForm($name, $cell) {
_click(_link("Calendars"));
_click(_image("ico_derived1.png", _in(_cell($cell, _near(_cell($name))))));
}
function calendarTryDeleteParentWithSon($name, $cell) {
_click(_link("Calendars"));
_click(_image("ico_borrar1.png", _in(_cell($cell, _near(_cell($name))))));
calendarNotAllowDeleteWithChildValidation();
_log("Do not allow delete the parent calendar", "custom1");
}
function calendarCheckCode($name){
commonConfigurationChangeCheckboxMainPreferences("Calendar");
calendarCreateWithoutCode($name);
commonConfigurationChangeCheckboxMainPreferences("Calendar");
_log("Check code label", "custom1");
}
function calendarCreateWithoutCode($name){
commonCreate("Calendars");
calendarForm($name);
commonEmptyCodeValidation();
}
function calendarAssignWorker($name, $id, $calendar) {
commonWorkerCreate($name, $name, $id);
commonResourceEditAssignedCalendarForm("Workers", $name, 5, $calendar);
commonCalendarTryDeleteAssignedCalendar($calendar, 3);
commonWorkerDelete($name);
_log("Assign a calendar to a Worker", "custom1");
}
function calendarAssignProject($projectName, $calendar){
commonCreateProject($projectName, $calendar);
calendarTryDeleteAssignedToProjectCalendar($calendar, 3);
commonDeleteProject($projectName);
_log("Assign Calendar to a project", "custom1");
}
/*
* Validations
*/
function calendarNotEmptyNameValidation(){
_assertExists(_div("cannot be empty"));
_assert(_isVisible(_div("cannot be empty")));
}
function calendarNotValid($calendar){
_assertExists(_div($calendar+" already exists"));
_assert(_isVisible(_div($calendar+" already exists")));
}
function calendarNotAllowDeleteWithChildValidation(){
_assertExists(_span("Calendar cannot be removed as it has other derived calendars from it"));
_assert(_isVisible(_span("Calendar cannot be removed as it has other derived calendars from it")));
}
function calendarTryDeleteAssignedToProjectCalendar($name, $cell) {
_click(_link("Calendars"));
_click(_image("ico_borrar1.png", _in(_cell($cell, _near(_cell($name))))));
_assertExists(_span("Cannot delete calendar. It is being used at this moment by some orders."));
_assert(_isVisible(_span("Cannot delete calendar. It is being used at this moment by some orders.")));
_log("Do not allow delete assigned calendar", "custom1");
}
/* test values */
var $calendarName = "parent";
var $calendarSonName = "Son calendar";
var $calendarNewName = "newest";
var $workerId = "36123456P";
var $workerName = "worker1";
var $projectName = "projectForCalendar";
/* test actions */
commonLogin("admin", "admin");
commonCalendarCreate($calendarName);
calendarCreateDuplicateType($calendarName);
calendarCreateEmpty();
calendarCreateChild($calendarName, $calendarSonName, 3);
calendarEdit($calendarName, $calendarNewName, 3);
calendarAssignWorker($workerName, $workerId, $calendarSonName);
calendarAssignProject($projectName, $calendarSonName);
calendarTryDeleteParentWithSon($calendarNewName, 3);
/* calendarCheckCode($calendarName); PENDING OF A BUG */
commonCalendarDelete($calendarSonName);
commonCalendarDelete($calendarNewName);
commonLogout();