Commit d4ebc3c3e9a9d526af7ffb05b10e0efe0f5e9207
1 parent
bbf5a17b
Exists in
master
and in
79 other branches
Cucumber and Functional Tests
Signed-off-by: David Carlos <ddavidcarlos1392@gmail.com> Signed-off-by: Luciano Prestes <lucianopcbr@gmail.com>
Showing
5 changed files
with
94 additions
and
60 deletions
Show diff stats
controllers/mpog_software_plugin_myprofile_controller.rb
@@ -85,7 +85,7 @@ class MpogSoftwarePluginMyprofileController < MyProfileController | @@ -85,7 +85,7 @@ class MpogSoftwarePluginMyprofileController < MyProfileController | ||
85 | @software_categories = @software_info.software_categories | 85 | @software_categories = @software_info.software_categories |
86 | @software_categories = SoftwareCategories.new if @software_categories.blank? | 86 | @software_categories = SoftwareCategories.new if @software_categories.blank? |
87 | 87 | ||
88 | - @show_public_software_field = show_public_software_field | 88 | + @disabled_public_software_field = disabled_public_software_field |
89 | 89 | ||
90 | if request.post? | 90 | if request.post? |
91 | params[:software][:public_software] ||= false | 91 | params[:software][:public_software] ||= false |
@@ -141,8 +141,8 @@ class MpogSoftwarePluginMyprofileController < MyProfileController | @@ -141,8 +141,8 @@ class MpogSoftwarePluginMyprofileController < MyProfileController | ||
141 | end | 141 | end |
142 | end | 142 | end |
143 | 143 | ||
144 | - def show_public_software_field | ||
145 | - environment.admins.include?(current_user.person) | 144 | + def disabled_public_software_field |
145 | + !environment.admins.include?(current_user.person) | ||
146 | end | 146 | end |
147 | 147 | ||
148 | def community_must_be_approved | 148 | def community_must_be_approved |
features/public_software_validation.feature
1 | -Feature: edit adherent fields | 1 | +Feature: edit adherent fields |
2 | As a user | 2 | As a user |
3 | - I want to edit adherent fields | 3 | + I want to edit adherent fields |
4 | to mantain my public software up to date. | 4 | to mantain my public software up to date. |
5 | 5 | ||
6 | Background: | 6 | Background: |
@@ -20,26 +20,35 @@ Feature: edit adherent fields | @@ -20,26 +20,35 @@ Feature: edit adherent fields | ||
20 | And I fill in "software_info_finality" with "basic software finality" | 20 | And I fill in "software_info_finality" with "basic software finality" |
21 | And I press "Create" | 21 | And I press "Create" |
22 | 22 | ||
23 | - Scenario: Don't show public software checkbox to no enviroment admin | 23 | + Scenario: Disable public software checkbox to non admin users |
24 | Given I am logged in as "joaosilva" | 24 | Given I am logged in as "joaosilva" |
25 | And I go to /myprofile/basic-software/plugin/mpog_software/edit_software | 25 | And I go to /myprofile/basic-software/plugin/mpog_software/edit_software |
26 | And I follow "Specifications" | 26 | And I follow "Specifications" |
27 | - Then I should not see "Is a public software" | 27 | + Then I should see "Public software" within ".public_software_disabled" |
28 | 28 | ||
29 | - Scenario: Show public software checkbox no enviroment admin | 29 | + Scenario: Enable public software checkbox to admin users |
30 | Given I am logged in as mpog_admin | 30 | Given I am logged in as mpog_admin |
31 | And I go to /myprofile/basic-software/plugin/mpog_software/edit_software | 31 | And I go to /myprofile/basic-software/plugin/mpog_software/edit_software |
32 | And I follow "Specifications" | 32 | And I follow "Specifications" |
33 | - Then I should see "Is a public software" | 33 | + Then I should see "Public software" within ".public_software_enabled" |
34 | 34 | ||
35 | + @selenium | ||
35 | Scenario: Show adherent fields when checkbox are checked | 36 | Scenario: Show adherent fields when checkbox are checked |
36 | Given I am logged in as mpog_admin | 37 | Given I am logged in as mpog_admin |
37 | And I go to /myprofile/basic-software/plugin/mpog_software/edit_software | 38 | And I go to /myprofile/basic-software/plugin/mpog_software/edit_software |
38 | And I follow "Specifications" | 39 | And I follow "Specifications" |
40 | + And I uncheck "software[public_software]" | ||
39 | And I check "software[public_software]" | 41 | And I check "software[public_software]" |
40 | - And I press "Save" | 42 | + Then I should see "Adherent to e-ping ?" |
43 | + | ||
44 | + @selenium | ||
45 | + Scenario: Don't show adherent fields when checkbox are not checked | ||
46 | + Given I am logged in as mpog_admin | ||
41 | And I go to /myprofile/basic-software/plugin/mpog_software/edit_software | 47 | And I go to /myprofile/basic-software/plugin/mpog_software/edit_software |
42 | And I follow "Specifications" | 48 | And I follow "Specifications" |
43 | - Then I should see "Adherent to e-ping ?" | 49 | + And I check "software[public_software]" |
50 | + And I uncheck "software[public_software]" | ||
51 | + Then I should not see "Adherent to e-ping ?" | ||
52 | + | ||
44 | 53 | ||
45 | 54 |
public/mpog-software-validations.js
@@ -92,7 +92,7 @@ | @@ -92,7 +92,7 @@ | ||
92 | .text(link); | 92 | .text(link); |
93 | } | 93 | } |
94 | 94 | ||
95 | - function hide_infos(){ | 95 | + function hide_infos() { |
96 | jQuery(".language-info").hide(); | 96 | jQuery(".language-info").hide(); |
97 | jQuery(".database-info").hide(); | 97 | jQuery(".database-info").hide(); |
98 | jQuery(".libraries-info").hide(); | 98 | jQuery(".libraries-info").hide(); |
@@ -103,6 +103,13 @@ | @@ -103,6 +103,13 @@ | ||
103 | jQuery(".operating-system-button-hide").hide(); | 103 | jQuery(".operating-system-button-hide").hide(); |
104 | } | 104 | } |
105 | 105 | ||
106 | + function hide_show_public_software_fields() { | ||
107 | + if (jQuery("#software_public_software").prop("checked")) | ||
108 | + jQuery(".public-software-fields").show(); | ||
109 | + else | ||
110 | + jQuery(".public-software-fields").hide(); | ||
111 | + } | ||
112 | + | ||
106 | jQuery(document).ready(function(){ | 113 | jQuery(document).ready(function(){ |
107 | var dynamic_tables = ["dynamic-databases", "dynamic-languages", "dynamic-libraries","dynamic-operating_systems"]; | 114 | var dynamic_tables = ["dynamic-databases", "dynamic-languages", "dynamic-libraries","dynamic-operating_systems"]; |
108 | 115 | ||
@@ -183,5 +190,7 @@ | @@ -183,5 +190,7 @@ | ||
183 | jQuery(".libraries-button-show").hide(); | 190 | jQuery(".libraries-button-show").hide(); |
184 | jQuery(".libraries-button-hide").show(); | 191 | jQuery(".libraries-button-hide").show(); |
185 | }); | 192 | }); |
193 | + hide_show_public_software_fields(); | ||
194 | + jQuery("#software_public_software").click(hide_show_public_software_fields); | ||
186 | }); | 195 | }); |
187 | })(); | 196 | })(); |
test/functional/mpog_software_plugin_myprofile_controller_test.rb
@@ -89,4 +89,15 @@ class MpogSoftwarePluginMyprofileControllerTest < ActionController::TestCase | @@ -89,4 +89,15 @@ class MpogSoftwarePluginMyprofileControllerTest < ActionController::TestCase | ||
89 | assert_equal SoftwareInfo.last.acronym, "test" | 89 | assert_equal SoftwareInfo.last.acronym, "test" |
90 | end | 90 | end |
91 | 91 | ||
92 | + should 'upgrade a generic software to a public software' do | ||
93 | + fields_software = software_fields | ||
94 | + fields = software_edit_specific_fields | ||
95 | + | ||
96 | + fields[4]['public_software'] = true | ||
97 | + software = create_software fields_software | ||
98 | + post :edit_software, :profile => software.community.identifier, :library => fields[0], :language => fields[1], | ||
99 | + :database => fields[2], :operating_system => fields[3], :software => fields[4], :software_categories => fields[5], :license => fields[6] | ||
100 | + assert_equal true, SoftwareInfo.last.public_software? | ||
101 | + end | ||
102 | + | ||
92 | end | 103 | end |
views/mpog_software_plugin_myprofile/_public_software_info.html.erb
@@ -43,56 +43,61 @@ | @@ -43,56 +43,61 @@ | ||
43 | <%= text_field_tag("software[demonstration_url]", @software_info.demonstration_url) %> | 43 | <%= text_field_tag("software[demonstration_url]", @software_info.demonstration_url) %> |
44 | </div> | 44 | </div> |
45 | 45 | ||
46 | +<br> | ||
47 | + | ||
46 | <div id = "public_software"> | 48 | <div id = "public_software"> |
47 | - <% if @show_public_software_field %> | 49 | + <% if @disabled_public_software_field == true %> |
50 | + <%= check_box_tag("software[public_software]", "true", @software_info.public_software?, :disabled => "disabled") %> | ||
51 | + <%= label_tag _("Public Software"), _("Public software"), :class => "public_software_disabled" %> | ||
52 | + <% else %> | ||
48 | <%= check_box_tag("software[public_software]", "true", @software_info.public_software?) %> | 53 | <%= check_box_tag("software[public_software]", "true", @software_info.public_software?) %> |
49 | - <%= label_tag _("Public Software"), _("Is a public software") %> | 54 | + <%= label_tag _("Public Software"), _("Public software"), :class => "public_software_enabled" %> |
50 | <% end %> | 55 | <% end %> |
51 | - <% if @software_info.public_software? %> | ||
52 | - <h4> <%= _("Public Software") %> </h4> | ||
53 | - <div class="formfieldline"> | ||
54 | - <%= label_tag _("Adherent to e-PING ?") %> | ||
55 | - | ||
56 | - <%= label_tag "e_ping_true", "Yes" %> | ||
57 | - <%= radio_button_tag("software[e_ping]", true, @software_info.e_ping)%> | ||
58 | - <%= label_tag "e_ping_false", "No"%> | ||
59 | - <%= radio_button_tag("software[e_ping]", false, !@software_info.e_ping)%> | ||
60 | - </div> | ||
61 | - | ||
62 | - <div class="formfieldline"> | ||
63 | - <%= label_tag _("Adherent to e-MAG ?") %> | ||
64 | - | ||
65 | - <%= label_tag "e_mag_true", "Yes"%> | ||
66 | - <%= radio_button_tag("software[e_mag]", true, @software_info.e_mag)%> | ||
67 | - <%= label_tag "e_mag_false", "No"%> | ||
68 | - <%= radio_button_tag("software[e_mag]", false, !@software_info.e_mag)%> | ||
69 | - </div> | ||
70 | - | ||
71 | - <div class="formfieldline"> | ||
72 | - <%= label_tag _("Adherent to ICP-Brasil ?") %> | ||
73 | - | ||
74 | - <%= label_tag "icp_brasil_true", "Yes"%> | ||
75 | - <%= radio_button_tag("software[icp_brasil]", true, @software_info.icp_brasil)%> | ||
76 | - <%= label_tag "icp_brasil_false", "No"%> | ||
77 | - <%= radio_button_tag("software[icp_brasil]", false, !@software_info.icp_brasil)%> | ||
78 | - </div> | ||
79 | - | ||
80 | - <div class="formfieldline"> | ||
81 | - <%= label_tag _("Adherent to e-ARQ ?") %> | ||
82 | - | ||
83 | - <%= label_tag "e_arq_true", "Yes"%> | ||
84 | - <%= radio_button_tag("software[e_arq]", true, @software_info.e_arq)%> | ||
85 | - <%= label_tag "e_arq_false", "No"%> | ||
86 | - <%= radio_button_tag("software[e_arq]", false, !@software_info.e_arq)%> | ||
87 | - </div> | ||
88 | - | ||
89 | - <div class="formfieldline"> | ||
90 | - <%= label_tag _("Internacionalizable ?") %> | ||
91 | - | ||
92 | - <%= label_tag "intern_true", "Yes" %> | ||
93 | - <%= radio_button_tag("software[intern]", true, @software_info.intern)%> | ||
94 | - <%= label_tag "intern_false", "No"%> | ||
95 | - <%= radio_button_tag("software[intern]", false, !@software_info.intern)%> | 56 | + <div class="public-software-fields"> |
57 | + <h4> <%= _("Public Software") %> </h4> | ||
58 | + <div class="formfieldline"> | ||
59 | + <%= label_tag _("Adherent to e-PING ?") %> | ||
60 | + | ||
61 | + <%= label_tag "e_ping_true", "Yes" %> | ||
62 | + <%= radio_button_tag("software[e_ping]", true, @software_info.e_ping)%> | ||
63 | + <%= label_tag "e_ping_false", "No"%> | ||
64 | + <%= radio_button_tag("software[e_ping]", false, !@software_info.e_ping)%> | ||
65 | + </div> | ||
66 | + | ||
67 | + <div class="formfieldline"> | ||
68 | + <%= label_tag _("Adherent to e-MAG ?") %> | ||
69 | + | ||
70 | + <%= label_tag "e_mag_true", "Yes"%> | ||
71 | + <%= radio_button_tag("software[e_mag]", true, @software_info.e_mag)%> | ||
72 | + <%= label_tag "e_mag_false", "No"%> | ||
73 | + <%= radio_button_tag("software[e_mag]", false, !@software_info.e_mag)%> | ||
74 | + </div> | ||
75 | + | ||
76 | + <div class="formfieldline"> | ||
77 | + <%= label_tag _("Adherent to ICP-Brasil ?") %> | ||
78 | + | ||
79 | + <%= label_tag "icp_brasil_true", "Yes"%> | ||
80 | + <%= radio_button_tag("software[icp_brasil]", true, @software_info.icp_brasil)%> | ||
81 | + <%= label_tag "icp_brasil_false", "No"%> | ||
82 | + <%= radio_button_tag("software[icp_brasil]", false, !@software_info.icp_brasil)%> | ||
83 | + </div> | ||
84 | + | ||
85 | + <div class="formfieldline"> | ||
86 | + <%= label_tag _("Adherent to e-ARQ ?") %> | ||
87 | + | ||
88 | + <%= label_tag "e_arq_true", "Yes"%> | ||
89 | + <%= radio_button_tag("software[e_arq]", true, @software_info.e_arq)%> | ||
90 | + <%= label_tag "e_arq_false", "No"%> | ||
91 | + <%= radio_button_tag("software[e_arq]", false, !@software_info.e_arq)%> | ||
92 | + </div> | ||
93 | + | ||
94 | + <div class="formfieldline"> | ||
95 | + <%= label_tag _("Internacionalizable ?") %> | ||
96 | + | ||
97 | + <%= label_tag "intern_true", "Yes" %> | ||
98 | + <%= radio_button_tag("software[intern]", true, @software_info.intern)%> | ||
99 | + <%= label_tag "intern_false", "No"%> | ||
100 | + <%= radio_button_tag("software[intern]", false, !@software_info.intern)%> | ||
101 | + </div> | ||
96 | </div> | 102 | </div> |
97 | -<% end %> | ||
98 | </div> | 103 | </div> |