Commit d4ebc3c3e9a9d526af7ffb05b10e0efe0f5e9207

Authored by Luciano Prestes
1 parent bbf5a17b
Exists in master and in 79 other branches add_sisp_to_chef, add_super_archives_plugin, api_for_colab, automates_core_packing, backup_not_prod, changes_in_buttons_on_content_panel, colab_automated_login, colab_spb_plugin_recipe, colab_widgets_settings, design_validation, dev_env_minimal, disable_email_dev, fix_breadcrumbs_position, fix_categories_software_link, fix_edit_institution, fix_edit_software_with_another_license, fix_get_license_info, fix_gitlab_assets_permission, fix_list_style_inside_article, fix_list_style_on_folder_elements, fix_members_pagination, fix_merge_request_url, fix_models_translations, fix_no_license, fix_software_api, fix_software_block_migration, fix_software_communities_translations, fix_software_communities_unit_test, fix_style_create_institution_admin_panel, fix_superarchives_imports, fix_sym_links_noosfero, focus_search_field_theme, gov-user-refactoring, gov-user-refactoring-rails4, header_fix, institution_modal_on_rating, kalibro-conf-refactoring, kalibro-processor-package, lxc_settings, margin_fix, mezuro_cookbook, prezento, refactor_download_block, refactor_software_communities, refactor_software_for_sisp, register_page, release-process, release-process-v2, remove-unused-images, remove_broken_theme, remove_secondary_email_from_user, remove_sisp_buttons, removing_super_archives_email, review_message, scope2method, signals_user_noosfero, sisp_catalog_header, sisp_colab_config, sisp_dev, sisp_dev_master, sisp_simple_version, software_as_organization, software_catalog_style_fix, software_communities_html_refactor, software_infos_api, spb_minimal_env, spb_to_rails4, spec_refactor, stable-4.1, stable-4.2, stable-4.x, temp_soft_comm_refactoring, theme_header, theme_javascript_refactory, thread_dropdown, thread_page, update_search_by_categories, update_software_api, update_softwares_boxes

Cucumber and Functional Tests

Signed-off-by: David Carlos <ddavidcarlos1392@gmail.com>
Signed-off-by: Luciano Prestes <lucianopcbr@gmail.com>
controllers/mpog_software_plugin_myprofile_controller.rb
@@ -85,7 +85,7 @@ class MpogSoftwarePluginMyprofileController &lt; MyProfileController @@ -85,7 +85,7 @@ class MpogSoftwarePluginMyprofileController &lt; 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 &lt; MyProfileController @@ -141,8 +141,8 @@ class MpogSoftwarePluginMyprofileController &lt; 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 &lt; ActionController::TestCase @@ -89,4 +89,15 @@ class MpogSoftwarePluginMyprofileControllerTest &lt; 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>