TASKPM/scripts/functional-tests/scheduling/planning_criteria_test.sah
Vova Perebykivskyi ad57fbfb38 Update root files.
Merge root files from ZK branch.
2016-10-27 10:05:19 +03:00

161 lines
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 Criterion
* 2 - Create a Calendar
* 3 - Create a Worker
* 4 - Assign elements to a worker
* 4.1 - Assign Criterion
* 4.2 - Assign Calendar (Incorrect dates)
* 5 - Create a project
* 6 - Create a Task
* 7 - Try to assign the worker with the incorrect calendar
* 8 - Assign elements to a worker
* 8.1 - Assign Criterion (Incorrect dates)
* 8.2 - Assign Calendar
* 9 - Allocate criterion into the first task
* 10 - Check Project planning filter
* 11 - Delete all required elements
*
*/
_include("../common_functions.sah");
function planningIncludeEndDates($worker, $dates, $dates2){
_click(_link("Workers"));
commonEdit($worker, 5);
planningIncludeCriterionEndDate($dates);
planningIncludeCalendarEndDate($dates2);
}
function planningIncludeCriterionEndDate($dates){
_click(_span("Assigned criteria"));
_setValue(_textbox("z-datebox-input", _near(_div("Starting date"))), $dates[0]);
_setValue(_textbox(3, _near(_div("Starting date"))), $dates[1]);
_click(_cell("Save & Continue"));
commonWorkerAcctionValidation("saved");
_log("Include criterion dates", "custom1");
}
function planningIncludeCalendarEndDate($dates){
_click(_span("Calendar"));
_click(_span("Activation periods"));
_setValue(_textbox(0, _near(_div("Expiry date"))), $dates[0]);
_setValue(_textbox(2, _near(_div("Expiry date"))), $dates[1]);
_click(_cell("Save"));
commonWorkerAcctionValidation("saved");
_log("Include calendar dates", "custom1");
}
function planningAssignWorker($workerName){
_click(_cell("Project Scheduling"));
_doubleClick(_div("box standard-task yui-resize unassigned"));
_setValue(_textbox(0, _near(_span("Select criteria or resources"))), $workerName);
_removeFocus(_textbox(0, _near(_span("Select criteria or resources"))));
_click(_div($workerName+", "+$workerName));
_click(_cell($workerName+", "+$workerName));
_click(_cell("Add"));
_click(_row("Accept[2]"));
planningCheckIncorrectWorkerValidation()
_log("try to assign calendar", "custom1");
}
function planningAssignCriterion($criterion){
_click(_cell("Project Scheduling"));
_doubleClick(_div("box standard-task yui-resize unassigned"));
_setValue(_textbox(0, _near(_span("Select criteria or resources"))), $criterion);
_removeFocus(_textbox(0, _near(_span("Select criteria or resources"))));
_click(_div($criterion+" ( "+$criterion+" )[1]"));
_click(_cell($criterion+" ( "+$criterion+" )[1]"));
_click(_cell("Add"));
_click(_row("Accept[2]"));
planningCheckIncorrectCriterionValidation()
_log("Try to assign criterion", "custom1");
}
function planningAssignCriterionInWBS($projectName, $criterion){
commonEditProject($projectName);
_doubleClick(_span("z-dottree-ico z-dottree-firstspacer"));
_click(_span("Criterion Requirement[1]"));
_click(_cell("z-button-cm", _near(_div("Assigned criterion requirements[1]"))));
_click(_italic(0, _near(_div("Criterion name[1]"))));
_click(_div($criterion));
_click(_image("ico_save.png"));
_click(_cell("OK"));
}
function planningCheckAssignedCriterion($criterion){
_click(_cell("Project Scheduling"));
_click(_image("ico_resources.png"));
commonProjectPlanningFilter($criterion, $criterion)
}
function planningCheckIncorrectWorkerValidation(){
_assertExists(_div("Resource is not available from task's start"));
_assert(_isVisible(_div("Resource is not available from task's start")));
}
function planningCheckIncorrectCriterionValidation(){
_assertExists(_div("There are no days available due to not satisfying the criteria. Another possibility is that the resources do not have days available due to their calendars."));
_assert(_isVisible(_div("There are no days available due to not satisfying the criteria. Another possibility is that the resources do not have days available due to their calendars.")));
}
function deleteRequiredElements(){
commonDeleteProject($projectName);
commonWorkerDelete($workerName);
commonCriteriaDelete($criterion);
commonCalendarDelete($calendar);
}
/* test values */
var $criterion = "Formation";
var $calendar = "calendarForPlanning";
var $workerName = "workerForPlanning";
var $criteriaType2List = ["Spain", "USA"];
var $dates = ["Jul 1, 2011", "Sep 10, 2011"]
var $dates2 = ["Jul 1, 2011", ""]
var $projectName = "ProjectForPlannig";
var $taskName = "taskForPlanning";
var $taskName2 = "taskForPlanning2";
/* test actions */
commonLogin("admin", "admin");
commonCriteriaCreate($criterion, [$criterion]);
commonCalendarCreate($calendar);
commonWorkerCreate($workerName, $workerName, $workerName);
commonResourceEditAssignedCriteriaForm("Workers", $workerName, 5, $criterion);
commonResourceEditAssignedCalendarForm("Workers", $workerName, 5, $calendar);
planningIncludeEndDates($workerName, $dates2, $dates);
commonCreateProject($projectName);
commonCreateTask($projectName, $taskName, "10");
commonCreateTask($projectName, $taskName2, "12");
planningAssignWorker($workerName);
planningIncludeEndDates($workerName, $dates, $dates2);
commonEditProject($projectName);
planningAssignCriterion($criterion);
planningAssignCriterionInWBS($projectName, $criterion);
planningCheckAssignedCriterion($criterion);
deleteRequiredElements();
commonLogout();