Commit a49aca64264c38d9a34747590ad1e33d4e9a0e26

Authored by Alessandro Palmeira + Daniel Alves + Diego Araújo + Guilherme Rojas
Committed by Paulo Meireles
1 parent b6af682e

[Mezuro] More acceptance tests for repository feature.

features/step_definitions/mezuro_steps.rb
... ... @@ -60,11 +60,16 @@ Then /^I should see "([^"]*)" in the "([^"]*)" select$/ do |content, labeltext|
60 60 find_field(labeltext).value.strip.should == content #strip because have empty spaces around some options
61 61 end
62 62  
63   -Then /^I shoud see "([^"]*)" in the process period select field$/ do |content|
  63 +Then /^I should see "([^"]*)" in the process period select field$/ do |content|
64 64 selected = MezuroPlugin::Helpers::ContentViewerHelper.periodicity_options.select { |option| option.first == content }.first
65 65 assert_equal selected.last, find_field("repository_process_period").value.to_i
66 66 end
67 67  
  68 +Then /^I should see "([^"]*)" in the repository configuration select field$/ do |content|
  69 + selected = Kalibro::Configuration.all.select { |option| option.name == content }.first
  70 + assert_equal selected.id, find_field("repository_configuration_id").value.to_i
  71 +end
  72 +
68 73 Then /^I should not see "([^"]*)" button$/ do |button_name|
69 74 find_button(button_name).should be_nil
70 75 end
... ... @@ -91,7 +96,7 @@ When /^I have a Mezuro (project|reading group|configuration|repository) with the
91 96 puts Kalibro::Project.all.last.id
92 97 item.merge(:configuration_id => Kalibro::Configuration.all.last.id)
93 98 result = Kalibro::Repository.new(item)
94   - raise (result.save Kalibro::Project.all.last.id).inspect
  99 + result.save Kalibro::Project.all.last.id
95 100 else
96 101 result.save!
97 102 end
... ... @@ -113,8 +118,8 @@ When /^I fill the fields with the new following data$/ do |fields|
113 118 end
114 119 end
115 120  
116   -When /^I have a Mezuro metric configuration with previous created configuration and reading group/ do
117   - Kalibro::MetricConfiguration.create({
  121 +When /^I have a Mezuro metric configuration with previous created configuration and reading group$/ do
  122 + Kalibro::MetricConfiguration.create({
118 123 :code => 'amloc1',
119 124 :metric => {:name => 'Total Coupling Factor', :compound => "false", :scope => 'SOFTWARE', :language => ['JAVA']},
120 125 :base_tool_name => "Analizo",
... ... @@ -122,5 +127,14 @@ When /^I have a Mezuro metric configuration with previous created configuration
122 127 :aggregation_form => 'AVERAGE',
123 128 :reading_group_id => Kalibro::ReadingGroup.all.last.id,
124 129 :configuration_id => Kalibro::Configuration.all.last.id
125   - })
  130 + })
  131 +end
  132 +
  133 +When /^I follow the (edit|remove) link for "([^"]*)" repository$/ do |action,repository_name|
  134 + project_id = Kalibro::Project.all.last.id
  135 + repositories = Kalibro::Repository.repositories_of project_id
  136 + repository_id = repositories.select {|option| option.name == repository_name}.first.id
  137 + elements = all('a', :text => action.capitalize)
  138 + action_link = elements.select {|element| (/repository_id=#{repository_id}/ =~ element[:href]) }.first
  139 + action_link.click
126 140 end
... ...
plugins/mezuro/features/repository.feature
... ... @@ -81,7 +81,7 @@ Feature: Repository
81 81 And I press "Add"
82 82 Then I should see "Address does not match type GIT chosen." inside an alert
83 83  
84   - @selenium
  84 + @selenium-teste
85 85 Scenario: I want to add a repository with valid attributes
86 86 Given I follow "Add Repository"
87 87 When I fill the fields with the new following data
... ... @@ -100,9 +100,10 @@ Feature: Repository
100 100 And I should see "GIT"
101 101 And I should see "https://github.com/user/project.git"
102 102 And I should see "Sample Configuration"
  103 + And I should see "Status"
103 104  
104 105 #FIXME: create the step given I have repository...
105   - @selenium
  106 + @selenium-teste
106 107 Scenario: I want to see the repository edit form
107 108 Given I follow "Add Repository"
108 109 And I fill the fields with the new following data
... ... @@ -122,11 +123,11 @@ Feature: Repository
122 123 And I should see "Not Periodically" in the process period select field
123 124 And I should see "GIT" in the "repository_type" select
124 125 And I should see "https://github.com/user/project.git" in the "repository_address" input
125   - And I should see "Sample Configuration" in the "repository_configuration_id" select
  126 + And I should see "Sample Configuration" in the repository configuration select field
126 127  
127 128 #FIXME: create the step given I have repository...
128 129 @selenium
129   - Scenario: I want to see the repository edit form
  130 + Scenario: I edit a Mezuro project with valid attributes
130 131 Given I follow "Add Repository"
131 132 And I fill the fields with the new following data
132 133 | repository_name | My Name |
... ... @@ -139,14 +140,23 @@ Feature: Repository
139 140 And I press "Add"
140 141 And I am on article "Sample Project"
141 142 When I follow "Edit"
142   - Then I should see "My Name" in the "repository_name" input
143   - And I should see "My Description" in the "repository_description" input
144   - And I should see "ISC License (ISC)" in the "repository_license" select
145   - And I should see "Not Periodically" in the process period select field
146   - And I should see "GIT" in the "repository_type" select
147   - And I should see "https://github.com/user/project.git" in the "repository_address" input
148   - And I should see "2" in the "repository_configuration_id" select
149   -
  143 + And I fill the fields with the new following data
  144 + | repository_name | Another Name |
  145 + | repository_description | Another Description |
  146 + | repository_license | Apple Public Source License (APSL-2.0) |
  147 + | repository_process_period | Weekly |
  148 + | repository_type | SUBVERSION |
  149 + | repository_address | https://project.svn.sourceforge.net/svnroot/project |
  150 + | repository_configuration_id | Sample Configuration |
  151 + And I press "Add"
  152 + Then I should see "Another Name"
  153 + And I should see "Another Description"
  154 + And I should see "Apple Public Source License (APSL-2.0)"
  155 + And I should see "Weekly"
  156 + And I should see "SUBVERSION"
  157 + And I should see "https://project.svn.sourceforge.net/svnroot/project"
  158 + And I should see "Sample Configuration"
  159 +
150 160 #FIXME: create the step given I have repository...
151 161 @selenium
152 162 Scenario: I try to edit a Mezuro project leaving empty its title
... ... @@ -184,4 +194,59 @@ Feature: Repository
184 194 When I erase the "repository_address" field
185 195 And I press "Add"
186 196 Then I should see "Please fill all fields marked with (*)." inside an alert
  197 +
  198 + #FIXME: create the step given I have repository...
  199 + @selenium
  200 + Scenario: I try to edit a repository with an existing repository name
  201 + Given I follow "Add Repository"
  202 + And I fill the fields with the new following data
  203 + | repository_name | My Name |
  204 + | repository_description | My Description |
  205 + | repository_license | ISC License (ISC) |
  206 + | repository_process_period | Not Periodically |
  207 + | repository_type | GIT |
  208 + | repository_address | https://github.com/user/project.git |
  209 + | repository_configuration_id | Sample Configuration |
  210 + And I press "Add"
  211 + And I am on article "Sample Project"
  212 + And I follow "Add Repository"
  213 + And I fill the fields with the new following data
  214 + | repository_name | Another Name |
  215 + | repository_description | Another Description |
  216 + | repository_license | Apple Public Source License (APSL-2.0) |
  217 + | repository_process_period | Weekly |
  218 + | repository_type | SUBVERSION |
  219 + | repository_address | https://project.svn.sourceforge.net/svnroot/project |
  220 + | repository_configuration_id | Sample Configuration |
  221 + And I press "Add"
  222 + And I am on article "Sample Project"
  223 + When I follow the edit link for "My Name" repository
  224 + And I fill the fields with the new following data
  225 + | repository_name | Another Name |
  226 + | repository_description | Another Description |
  227 + | repository_license | Apple Public Source License (APSL-2.0) |
  228 + | repository_process_period | Weekly |
  229 + | repository_type | SUBVERSION |
  230 + | repository_address | https://project.svn.sourceforge.net/svnroot/project |
  231 + | repository_configuration_id | Sample Configuration |
  232 + And I press "Add"
  233 + #Then I should see "Slug The title (article name) is already being used by another article, please use another title."
  234 + #FIXME fix this validation
  235 +
  236 + #FIXME: Need to define permissions?
  237 + @selenium
  238 + Scenario: I delete a Mezuro repository
  239 + Given I follow "Add Repository"
  240 + And I fill the fields with the new following data
  241 + | repository_name | My Name |
  242 + | repository_description | My Description |
  243 + | repository_license | ISC License (ISC) |
  244 + | repository_process_period | Not Periodically |
  245 + | repository_type | GIT |
  246 + | repository_address | https://github.com/user/project.git |
  247 + | repository_configuration_id | Sample Configuration |
  248 + And I press "Add"
  249 + And I am on article "Sample Project"
  250 + When I follow the remove link for "My Name" repository
  251 + And I should not see "My Name"
187 252  
... ...