From 6695e43570429489e00b1eb3a5d50976238bb34e Mon Sep 17 00:00:00 2001 From: Victor Lopez Rivero Date: Fri, 11 Jan 2013 21:34:17 +0100 Subject: [PATCH] New functional test for bound resources New file bound_resources.sah added FEA: ItEr77S03Community --- .../resources/bound_resources.sah | 217 ++++++++++++++++++ 1 file changed, 217 insertions(+) create mode 100644 scripts/functional-tests/resources/bound_resources.sah diff --git a/scripts/functional-tests/resources/bound_resources.sah b/scripts/functional-tests/resources/bound_resources.sah new file mode 100644 index 000000000..b002106b8 --- /dev/null +++ b/scripts/functional-tests/resources/bound_resources.sah @@ -0,0 +1,217 @@ +/* + * This file is part of LibrePlan + * + * Copyright (C) 2013 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 . + */ + +/* Included tests + * + * 1 - Create a new project + * 2 - Create a new task in this project + * 3 - Create a new Account + * 4 - Create workers + * 4.1 - Empty bound user + * 4.2 - Existing user + * 4.3 - New bound user + * 5 - Add tasks to the first user + * 6 - Add expenses to the first user + * 7 - Try to delete a project with reported tasks (should not work) + * 8 - Delete all the created things + * +*/ + +_include("../common_functions.sah"); + +function accountsCreate($name, $password) { + commonCreate("User Accounts"); + accountsForm($name, $password); + commonSaveValidation("User", $name); + _log("Create a new Account", "custom1"); +} + +function accountsForm($name, $password) { + _setValue(_textbox(0, _near(_span("Username"))), $name); + _setValue(_password(0, _near(_span("Password"))), $password); + _setValue(_password(0, _near(_span("Password confirmation"))), $password); + _click(_cell("Save")); +} + +function commonWorkerCreateBind($name, $surName, $id, $bind) { + commonCreate("Workers"); + commonWorkerFormBind($name, $surName, $id, $bind); + commonWorkerAcctionValidation("saved"); + _log("Bind an existing user to a worker", "custom1"); +} + +function commonWorkerCreateBindEmptyUser($name, $surName, $id, $bind) { + commonCreate("Workers"); + commonWorkerFormBindEmptyUser($name, $surName, $id, $bind); + _assertExists(_div("please select a user to bound")); + _assert(_isVisible(_div("please select a user to bound"))); + _log("Is not allowed to bound a resource to a non existing user", "custom1"); +} + +function commonWorkerFormBind($name, $surName, $id, $bind) { + _setValue(_textbox(0, _near(_span("First name"))), $name); + _setValue(_textbox(0, _near(_span("Last name"))), $surName); + _setValue(_textbox(0, _near(_span("ID"))), $id); + _click(_radio(1, _near(_span("Bound user")))); + _click(_div($bind)); + _click(_cell("Save")); +} + +function commonWorkerFormBindEmptyUser($name, $surName, $id, $bind) { + _setValue(_textbox(0, _near(_span("First name"))), $name); + _setValue(_textbox(0, _near(_span("Last name"))), $surName); + _setValue(_textbox(0, _near(_span("ID"))), $id); + _click(_radio(1, _near(_span("Bound user")))); + _click(_cell("Save")); +} + +function commonWorkerFormBindNew($name2, $surName2, $id2) { + _setValue(_textbox(0, _near(_span("First name"))), $name2); + _setValue(_textbox(0, _near(_span("Last name"))), $surName2); + _setValue(_textbox(0, _near(_span("ID"))), $id2); + _click(_radio(2, _near(_span("Bound user")))); + _setValue(_textbox(0, _near(_span("Username"))), $user2); + _setValue(_password(0, _near(_span("Password"))), $password); + _setValue(_password(0, _near(_span("Password confirmation"))), $password); + _click(_cell("Save")); +} + +function commonWorkerCreateBindNew($name2, $surName2, $id2) { + commonCreate("Workers"); + commonWorkerFormBindNew($name2, $surName2, $id2); + commonWorkerAcctionValidation("saved"); + _log("Bind a new user to a worker", "custom1"); +} + +function commonAddtasks($hours) { + _click(_span(0, _near(_div("Date")))); + _click(_div("NewProject")); + _click(_cell("Add task")); + _setValue(_textbox(0, _near (_span("NewProject"))), $hours); + _click(_cell("Save")); + _assertExists(_span("/saved/")); + _assert(_isVisible(_div("/saved/"))); + _log("Task added to a month timesheet", "custom1"); +} + +function deleteValidation(){ + _assertExists(_div("/deleted/")); + _assert(_isVisible(_div("/deleted/"))); +} + +function commonAddExpenses($proj, $task, $idp, $idt, $value, $desc) { + _click(_cell("New expense sheet")); + _setValue(_textbox(0, _near(_span("Description"))), $desc); + _click(_div("/" + $proj + "/")); + _click(_div("/" + $task + "/")); + _setValue(_textbox(1, _near(_span("Value"))), $value); + _setValue(_textbox(2, _near(_span("Concept"))), "concept"); + _click(_cell("New")); + _click(_cell("Save")); + _assertExists(_span("/saved/")); + _assert(_isVisible(_div("/saved/"))); + _log("Expense created succesfully", "custom1"); +} + +function unboundResource($something ,$name) { + _click(_link($something)); + _click(_span($name)); + _click(_radio(0, _near(_span("Not bound")))); + _click(_cell("Save")); + _log("Unbounded resource", "custom1"); +} + +function tryDeleteProject($name) { + _click(_link("Projects")); + _click(_image("ico_borrar1.png", _in(_cell(8, _near(_cell($name)))))); + _click(_cell("OK")); + _assertExists(_div("/You can not remove the project/")); + _assert(_isVisible(_div("/You can not remove the project/"))); + _log("Cannot delete a project with reported tasks", "custom1"); +} + +/* test values */ +var $name = "worker1"; +var $name2 = "worker2"; +var $surname = "wor1"; +var $surname2 = "wor2"; +var $id = "abc"; +var $id2 = "cba" +var $user = "newus1"; +var $user2 = "newus2"; +var $password = "12345"; +var $project = "NewProject"; +var $fakebind = "zzzzzz"; +var $task = "taskForWorker"; +var $hours = "100"; +var $value = "100 €"; +var $idp = "ORDER00007"; +var $idt = "00001"; +var $desc = "desc"; +var $hours = "11"; + +/* test actions */ +commonLogin("admin", "admin"); + +commonCreateProject($project); + +commonCreateTask($project, $task, $hours); + +accountsCreate($user, $password); + +commonWorkerCreateBindEmptyUser($name, $surname, $id, $fakebind); + +commonWorkerCreateBind($name, $surname, $id, $user); + +commonWorkerCreateBindNew($name2, $surname2, $id2); + +commonLogout(); + +commonLogin($user, $password); + +commonAddtasks($hours); + +commonAddExpenses($project, $task, $idp, $idt, $value, $desc); + +commonLogout(); +commonLogin("admin", "admin"); + +tryDeleteProject($project); + +commonDelete("Expenses", $desc, 7); +deleteValidation(); + +unboundResource("Workers", $name); +unboundResource("Workers", $name2); + +commonDelete("Timesheets", "/WORK_REPORT/", 5); +commonWorkReportDeleteValidation(); + +commonWorkerDelete($name); +commonWorkerDelete($name2); + +commonDelete("User Accounts", $user, 5); +commonDeleteValidation("User", $user); + +commonDelete("User Accounts", $user2, 5); +commonDeleteValidation("User", $user2); + +commonDeleteProject($project); + +commonLogout();