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 85 @software_categories = @software_info.software_categories
86 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 90 if request.post?
91 91 params[:software][:public_software] ||= false
... ... @@ -141,8 +141,8 @@ class MpogSoftwarePluginMyprofileController &lt; MyProfileController
141 141 end
142 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 146 end
147 147  
148 148 def community_must_be_approved
... ...
features/public_software_validation.feature
1   -Feature: edit adherent fields
  1 +Feature: edit adherent fields
2 2 As a user
3   - I want to edit adherent fields
  3 + I want to edit adherent fields
4 4 to mantain my public software up to date.
5 5  
6 6 Background:
... ... @@ -20,26 +20,35 @@ Feature: edit adherent fields
20 20 And I fill in "software_info_finality" with "basic software finality"
21 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 24 Given I am logged in as "joaosilva"
25 25 And I go to /myprofile/basic-software/plugin/mpog_software/edit_software
26 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 30 Given I am logged in as mpog_admin
31 31 And I go to /myprofile/basic-software/plugin/mpog_software/edit_software
32 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 36 Scenario: Show adherent fields when checkbox are checked
36 37 Given I am logged in as mpog_admin
37 38 And I go to /myprofile/basic-software/plugin/mpog_software/edit_software
38 39 And I follow "Specifications"
  40 + And I uncheck "software[public_software]"
39 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 47 And I go to /myprofile/basic-software/plugin/mpog_software/edit_software
42 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 92 .text(link);
93 93 }
94 94  
95   - function hide_infos(){
  95 + function hide_infos() {
96 96 jQuery(".language-info").hide();
97 97 jQuery(".database-info").hide();
98 98 jQuery(".libraries-info").hide();
... ... @@ -103,6 +103,13 @@
103 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 113 jQuery(document).ready(function(){
107 114 var dynamic_tables = ["dynamic-databases", "dynamic-languages", "dynamic-libraries","dynamic-operating_systems"];
108 115  
... ... @@ -183,5 +190,7 @@
183 190 jQuery(".libraries-button-show").hide();
184 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 89 assert_equal SoftwareInfo.last.acronym, "test"
90 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 103 end
... ...
views/mpog_software_plugin_myprofile/_public_software_info.html.erb
... ... @@ -43,56 +43,61 @@
43 43 <%= text_field_tag("software[demonstration_url]", @software_info.demonstration_url) %>
44 44 </div>
45 45  
  46 +<br>
  47 +
46 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 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 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 102 </div>
97   -<% end %>
98 103 </div>
... ...