diff --git a/test/cucumber/ResearchProject.feature b/test/cucumber/ResearchProject.feature index e813771d..fbfcb545 100644 --- a/test/cucumber/ResearchProject.feature +++ b/test/cucumber/ResearchProject.feature @@ -16,7 +16,7 @@ Feature: research project Scenario: remove research project Given the system has a research project named as "Implementação Progressiva de Aplicações Orientadas a Objetos Complexas" - And I am logged into the system as administrator of the research group named as "Implementação Progressiva de Aplicações Orientadas a Objetos Complexas" + And I am logged into the system as administrator When I remove the research project named as "Implementação Progressiva de Aplicações Orientadas a Objetos Complexas" Then the research project named as "Implementação Progressiva de Aplicações Orientadas a Objetos Complexas" is properly removed by the system @@ -99,7 +99,7 @@ Feature: research project Then the system shows a list with the research projects where I am a member Scenario: filter research projects by name - Given I am at the research projects list page + Given I am at the research project list page When I fill the project name filter field with "Implementação Progressiva de Aplicações Orientadas a Objetos Complexas" And select the option to filter the research projects Then the system shows the research projects with the name "Implementação Progressiva de Aplicações Orientadas a Objetos Complexas" @@ -112,6 +112,5 @@ Feature: research project Scenario: edit existing research project Given the system has a research project named as "Implementação Progressiva de Aplicações Orientadas a Objetos Complexas" - And I am logged into the system as administrator of the research project named "Implementação Progressiva de Aplicações Orientadas a Objetos Complexas" When I edit the research project "Implementação Progressiva de Aplicações Orientadas a Objetos Complexas" in the system Then the data of the research project named "Implementação Progressiva de Aplicações Orientadas a Objetos Complexas" is updated in the system diff --git a/test/cucumber/steps/ResearchProjectSteps.groovy b/test/cucumber/steps/ResearchProjectSteps.groovy index b141ff75..bac5e1d5 100644 --- a/test/cucumber/steps/ResearchProjectSteps.groovy +++ b/test/cucumber/steps/ResearchProjectSteps.groovy @@ -2,8 +2,11 @@ package steps import org.apache.shiro.SecurityUtils import org.apache.shiro.UnavailableSecurityManagerException +import pages.LoginPage import pages.researchProject.ResearchProjectPage import pages.researchProject.ResearchProjectPageCreatePage +import pages.researchProject.ResearchProjectPageEditPage +import pages.researchProject.ResearchProjectPageShowPage import rgms.authentication.User import rgms.member.Member import rgms.researchProject.ResearchProject @@ -24,13 +27,13 @@ def List oldProjects Given(~'^the system has no research project named as "([^"]*)"$') { String projectName -> if(!checkIfResearchProjectNoExists(projectName)) { ResearchProject.findByProjectName(projectName).delete(); - assert checkIfResearchProjectNoExists(projectName); } + + assert checkIfResearchProjectNoExists(projectName); } When(~'^I create a research project named as "([^"]*)" with all required data$') { String projectName -> ResearchProjectTestDadaAndOperations.createResearchProject(projectName); - assert ResearchProject.findByProjectName(projectName) != null; } Then(~'^the research project "([^"]*)" is properly stored by the system$') { String projectName -> @@ -45,7 +48,7 @@ Then(~'^the research project "([^"]*)" is properly stored by the system$') { Str Given(~'^the system has a research project named as "([^"]*)"$') { String projectName -> ResearchProject project = ResearchProject.findByProjectName(projectName); - if(!project) { + if(project==null) { ResearchProjectTestDadaAndOperations.createResearchProject(projectName); } @@ -66,11 +69,8 @@ Then(~'^the research project "([^"]*)" is not stored twice$') { String projectNa // ------------------------------------------------------------------------------------------------------------------------------ // Scenario: remove research project -Given(~'^I am logged into the system as administrator of the research group named as "([^"]*)"$') { String projectName -> - assert checkIfLoggedUserIsAdminOfResearchProject(projectName); -} - When(~'^I remove the research project named as "([^"]*)"$') { String projectName -> + oldProjects = ResearchProject.findAll(); ResearchProjectTestDadaAndOperations.deleteResearchProject(projectName); } @@ -85,7 +85,6 @@ Then(~'^the research project named as "([^"]*)" is properly removed by the syste When(~'^I create a research project named as "([^"]*)" without funders$'){ String projectName -> ResearchProjectTestDadaAndOperations.createResearchProjectWithoutFunders(projectName); - assert ResearchProject.findByProjectName(projectName) != null; } // ------------------------------------------------------------------------------------------------------------------------------ @@ -133,6 +132,10 @@ Then (~'^the system shows an error message at the research project page$'){ -> // Scenario: list research projects where I am a member Given(~'^I am at the research project list page$') { -> + to LoginPage; + at LoginPage; + page.fillLoginData("admin", "adminadmin"); + to ResearchProjectPage; at ResearchProjectPage; } @@ -141,7 +144,7 @@ When(~'^I select the option to show my research projects$') { -> } Then(~'^the system shows a list with the research projects where I am a member$') { -> - page.checkResearchGroupHasMeAsMember(); + page.checkResearchGroupHasLoggedUserAsMember(); } // ------------------------------------------------------------------------------------------------------------------------------ @@ -167,7 +170,11 @@ Then(~'^the system shows the research projects with the name "([^"]*)"$') { Stri // Scenario: remove research project that does not exist Given(~'^I am logged into the system as administrator$') { -> - TestDataAndOperations.loginController(this); + if(!checkIfLoggedUserIsAdmin()) { + TestDataAndOperations.loginController(this); + } + + assert checkIfLoggedUserIsAdmin(); } // ------------------------------------------------------------------------------------------------------------------------------ @@ -175,27 +182,22 @@ Given(~'^I am logged into the system as administrator$') { -> // ------------------------------------------------------------------------------------------------------------------------------ // Scenario: edit existing research project -def projectDataUpdate = "Descrição teste"; - When(~'^I edit the research project "([^"]*)" in the system$') { String projectName -> + oldProject = ResearchProject.findByProjectName(projectName); + to ResearchProjectPage; + at ResearchProjectPage; page.selectReseachGroup(projectName); at ResearchProjectPageShowPage; page.selectEditReseachGroup(); at ResearchProjectPageEditPage; - page.fillUpdateDescription(projectDataUpdate); + page.fillUpdateDescription("Nova Descrição para Teste"); page.saveUpdates(); } Then(~'^the data of the research project named "([^"]*)" is updated in the system$') { String projectName -> - def check = false; - def rp = ResearchProject.findByProjectName(projectName); - - if(rp!=null && rp.description==projectDataUpdate) { - check = true; - } - - assert check; + newProject = ResearchProject.findByProjectName(projectName); + assert oldProject != newProject; } // ------------------------------------------------------------------------------------------------------------------------------ @@ -321,18 +323,10 @@ def checkIfNoResearchProjectAffected(oldProjects) { check } -def checkIfLoggedUserIsAdminOfResearchProject(String projectName) { - ResearchProject project = ResearchProject.findByProjectName(projectName); - Member author = null; - +def checkIfLoggedUserIsAdmin() { try { - if(SecurityUtils.subject?.principal!=null) { - User user = User.findByUsername(SecurityUtils.subject.principal); - author = user.getAuthor(); - } + return SecurityUtils.subject.principal=="admin"; } catch(UnavailableSecurityManagerException e) { return false; } - - return author.name == project.responsible; } \ No newline at end of file diff --git a/test/functional/pages/researchProject/ResearchProjectPage.groovy b/test/functional/pages/researchProject/ResearchProjectPage.groovy index c2b5646a..4b98f785 100644 --- a/test/functional/pages/researchProject/ResearchProjectPage.groovy +++ b/test/functional/pages/researchProject/ResearchProjectPage.groovy @@ -43,7 +43,7 @@ class ResearchProjectPage extends FormPage { } def myProjects() { - $("a", class: "my-research-projects").click(); + $("a", class: "myProjects").click(); } def hasInvalidXMLSubmited(){ @@ -52,12 +52,7 @@ class ResearchProjectPage extends FormPage { } def selectReseachGroup(String name){ - $("a", text: name).click() - } - - @Override - protected void finalize() throws Throwable { - super.finalize() + $("a", text: name).click(); } def fillFilterResearchProject(projectName) { @@ -94,7 +89,8 @@ class ResearchProjectPage extends FormPage { assert check } - def checkResearchGroupHasMeAsMember() { + def checkResearchGroupHasLoggedUserAsMember() { + // Procura usuário logado no Apache Shiro def User user; try { if(SecurityUtils.subject?.principal!=null) { @@ -105,9 +101,12 @@ class ResearchProjectPage extends FormPage { } boolean check = true; + + // obtém da tela as linhas da tabela que lista os Projetos de Pesquisa def researchGroupRows = getResearchGroupRows() int size = researchGroupRows.size(); + // percorre a tabela para procurar o nome do usuário logado como membro dos Projetos de Pesquisa if(size > 1) { for(int i=0; i Date: Wed, 23 Jul 2014 17:31:31 -0300 Subject: [PATCH 16/19] =?UTF-8?q?Altera=C3=A7=C3=B5es=20requisitadas=20por?= =?UTF-8?q?=20Paulo.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ResearchProjectControllerAspect.groovy | 25 ------------------- .../steps/ResearchProjectSteps.groovy | 17 +++++-------- ...esearchProjectTestDadaAndOperations.groovy | 5 +--- 3 files changed, 7 insertions(+), 40 deletions(-) delete mode 100644 grails-app/controllers/rgms/researchProject/aspect/ResearchProjectControllerAspect.groovy diff --git a/grails-app/controllers/rgms/researchProject/aspect/ResearchProjectControllerAspect.groovy b/grails-app/controllers/rgms/researchProject/aspect/ResearchProjectControllerAspect.groovy deleted file mode 100644 index 182ae1e9..00000000 --- a/grails-app/controllers/rgms/researchProject/aspect/ResearchProjectControllerAspect.groovy +++ /dev/null @@ -1,25 +0,0 @@ -package rgms.researchProject.aspect - -import rgms.researchProject.ResearchProject -import rgms.researchProject.ResearchProjectController - -/** - * Created by Vilmar Nepomuceno on 10/07/2014. - */ -class ResearchProjectControllerAspect { - - def mc = ResearchProjectController.metaClass - def init() { - mc.save = { -> - - def researchProjectInstance = new ResearchProject(params) - - if (!researchProjectInstance.save(flush: true)) { - return - } - - flash.message = message(code: 'default.created.message', args: [message(code: 'researchProject.label', default: 'ResearchProject'), researchProjectInstance.id]) - redirect(action: "show", id: researchProjectInstance.id) - } - } -} diff --git a/test/cucumber/steps/ResearchProjectSteps.groovy b/test/cucumber/steps/ResearchProjectSteps.groovy index bac5e1d5..17b0ef97 100644 --- a/test/cucumber/steps/ResearchProjectSteps.groovy +++ b/test/cucumber/steps/ResearchProjectSteps.groovy @@ -95,6 +95,7 @@ When(~'^I create a research project named as "([^"]*)" without funders$'){ Strin Given(~'^the system has some research project stored$'){ -> initialSize = ResearchProject.findAll().size() + assert initialSize > 0 } When(~'^I upload new research projects from the file "([^"]*)"$') { filename -> @@ -224,11 +225,10 @@ When(~'^I create a research project named as "([^"]*)" with member field duplica Then(~'^the research project "([^"]*)" does not have duplicated members$'){String projectName -> ResearchProject project = ResearchProject.findByProjectName(projectName); boolean check = true - Iterator i = project.members.iterator() - while (i.hasNext() && check) { - String m = i.next() - project.members.remove(m) - if (project.members.contains(m)) { + + project.members.each {member -> + project.members.remove(member) + if (project.members.contains(member)) { check = false } } @@ -312,15 +312,10 @@ def checkIfResearchProjectExists(String projectName){ } def checkIfNoResearchProjectAffected(oldProjects) { - boolean check = true; List beforeProjects = oldProjects List afterProjects = ResearchProject.findAll() - if(!beforeProjects.equals(afterProjects)) { - check = false - } - - check + beforeProjects.equals(afterProjects) } def checkIfLoggedUserIsAdmin() { diff --git a/test/functional/steps/ResearchProjectTestDadaAndOperations.groovy b/test/functional/steps/ResearchProjectTestDadaAndOperations.groovy index 46736694..53c015f9 100644 --- a/test/functional/steps/ResearchProjectTestDadaAndOperations.groovy +++ b/test/functional/steps/ResearchProjectTestDadaAndOperations.groovy @@ -66,11 +66,8 @@ class ResearchProjectTestDadaAndOperations { } } - static ResearchProjectController cont = new ResearchProjectController() - private static void createResearchProjectDefault(String name) { - def contAspect = new ResearchProjectControllerAspect() - contAspect.init() + def cont = new ResearchProjectController() cont.params << findResearchProjectByProjectName(name) cont.request.setContent(new byte[1000]) // Could also vary the request content. cont.create() From 1ca79b5a162c0a5f4f73ef444fd2f64bd97c8158 Mon Sep 17 00:00:00 2001 From: vsnepomuceno Date: Wed, 23 Jul 2014 17:57:13 -0300 Subject: [PATCH 17/19] =?UTF-8?q?Corre=C3=A7=C3=A3o=20no=20passo=20"the=20?= =?UTF-8?q?system=20has=20some=20research=20project=20stored".?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/cucumber/steps/ResearchProjectSteps.groovy | 1 + 1 file changed, 1 insertion(+) diff --git a/test/cucumber/steps/ResearchProjectSteps.groovy b/test/cucumber/steps/ResearchProjectSteps.groovy index 17b0ef97..7c25221a 100644 --- a/test/cucumber/steps/ResearchProjectSteps.groovy +++ b/test/cucumber/steps/ResearchProjectSteps.groovy @@ -94,6 +94,7 @@ When(~'^I create a research project named as "([^"]*)" without funders$'){ Strin // XML import Given(~'^the system has some research project stored$'){ -> + ResearchProjectTestDadaAndOperations.createResearchProject("Implementação Progressiva de Aplicações Orientadas a Objetos Complexas"); initialSize = ResearchProject.findAll().size() assert initialSize > 0 } From a83b7bf4924433f7828974f53844eea92d0e5078 Mon Sep 17 00:00:00 2001 From: vsnepomuceno Date: Wed, 23 Jul 2014 18:28:37 -0300 Subject: [PATCH 18/19] =?UTF-8?q?Remo=C3=A7=C3=A3o=20do=20import=20do=20as?= =?UTF-8?q?pecto=20deletado=20da=20branch.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../functional/steps/ResearchProjectTestDadaAndOperations.groovy | 1 - 1 file changed, 1 deletion(-) diff --git a/test/functional/steps/ResearchProjectTestDadaAndOperations.groovy b/test/functional/steps/ResearchProjectTestDadaAndOperations.groovy index 53c015f9..063e38db 100644 --- a/test/functional/steps/ResearchProjectTestDadaAndOperations.groovy +++ b/test/functional/steps/ResearchProjectTestDadaAndOperations.groovy @@ -3,7 +3,6 @@ package steps import rgms.publication.XMLController import rgms.researchProject.ResearchProject import rgms.researchProject.ResearchProjectController -import rgms.researchProject.aspect.ResearchProjectControllerAspect /** * Created by Bruno Soares on 24/02/14. From b182c28f56216fa418bbe791e09cb71a812ae4e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gert=20Uch=C3=B4a=20M=C3=BCller=20Neto?= Date: Wed, 30 Jul 2014 13:47:25 -0300 Subject: [PATCH 19/19] =?UTF-8?q?Altera=C3=A7=C3=B5es=20solicitadas=20por?= =?UTF-8?q?=20Paulo=20para=20Atividade=205.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- grails-app/i18n/messages.properties | 1 + .../steps/ResearchProjectSteps.groovy | 2 +- .../ResearchProjectPage.groovy | 52 +++++++------------ 3 files changed, 22 insertions(+), 33 deletions(-) diff --git a/grails-app/i18n/messages.properties b/grails-app/i18n/messages.properties index a050fb1a..193df958 100644 --- a/grails-app/i18n/messages.properties +++ b/grails-app/i18n/messages.properties @@ -220,6 +220,7 @@ orientation.tituloTese.unique = Orientation title already registered, you can no #if($researchProject) default.researchProject.label = "ResearchProject" +default.researchproject.myProjects = My Research Projects researchProject.label = ResearchProject default.researchproject.import.flashmessage.success = "The non existent Research Project were successfully imported" #end diff --git a/test/cucumber/steps/ResearchProjectSteps.groovy b/test/cucumber/steps/ResearchProjectSteps.groovy index 7c25221a..1270d750 100644 --- a/test/cucumber/steps/ResearchProjectSteps.groovy +++ b/test/cucumber/steps/ResearchProjectSteps.groovy @@ -199,7 +199,7 @@ When(~'^I edit the research project "([^"]*)" in the system$') { String projectN Then(~'^the data of the research project named "([^"]*)" is updated in the system$') { String projectName -> newProject = ResearchProject.findByProjectName(projectName); - assert oldProject != newProject; + assert (oldProject.description != newProject.description) && (oldProject.projectName == newProject.projectName); } // ------------------------------------------------------------------------------------------------------------------------------ diff --git a/test/functional/pages/researchProject/ResearchProjectPage.groovy b/test/functional/pages/researchProject/ResearchProjectPage.groovy index 4b98f785..891ee8af 100644 --- a/test/functional/pages/researchProject/ResearchProjectPage.groovy +++ b/test/functional/pages/researchProject/ResearchProjectPage.groovy @@ -90,52 +90,40 @@ class ResearchProjectPage extends FormPage { } def checkResearchGroupHasLoggedUserAsMember() { - // Procura usuário logado no Apache Shiro - def User user; + def User user = getLoggedUser(); + def membersColumn = 6; + assert checkResearchProjectFilter(membersColumn, user.getAuthor().getName()); + } + + def checkResearchGroupListFilteredByName(String name) { + def projectNameColumn = 0; + assert checkResearchProjectFilter(projectNameColumn, name); + } + + def getLoggedUser() { try { if(SecurityUtils.subject?.principal!=null) { user = User.findByUsername(SecurityUtils.subject.principal); } } catch(UnavailableSecurityManagerException e) { - return false; - } - - boolean check = true; - - // obtém da tela as linhas da tabela que lista os Projetos de Pesquisa - def researchGroupRows = getResearchGroupRows() - int size = researchGroupRows.size(); - - // percorre a tabela para procurar o nome do usuário logado como membro dos Projetos de Pesquisa - if(size > 1) { - for(int i=0; i 1) { - for(int i=0; i 1) { + for(def row : researchProjectRows) { + if(!row.find('td')[column].text().contains(text)) { check = false; } } } - assert check; + return check; } }