Commit a25978cd47b5c44d5c9097e4161477eca0db62e7

Authored by Luciano Prestes
Committed by Arthur Esposte
1 parent e6be3b0c
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

Functional test for add and remove institutions for user into edit profile

(institution_fields)

Signed-off-by: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>
test/functional/profile_editor_controller_test.rb
... ... @@ -13,37 +13,81 @@ class ProfileEditorControllerTest &lt; ActionController::TestCase
13 13 Environment.default.affiliate(@profile, [Environment::Roles.admin(Environment.default.id)] + Profile::Roles.all_roles(Environment.default.id))
14 14 @environment = Environment.default
15 15 @environment.enabled_plugins = ['MpogSoftwarePlugin']
16   -
17   - @govPower = GovernmentalPower.create(:name=>"Some Gov Power")
18   - @govSphere = GovernmentalSphere.create(:name=>"Some Gov Sphere")
19   -
20 16 admin = create_user("adminuser").person
21 17 admin.stubs(:has_permission?).returns("true")
22 18 login_as('adminuser')
23   -
24 19 @environment.add_admin(admin)
25 20 @environment.save
  21 +
  22 + @govPower = GovernmentalPower.create(:name => "Some Gov Power")
  23 + @govSphere = GovernmentalSphere.create(:name => "Some Gov Sphere")
  24 + @juridical_nature = JuridicalNature.create(:name => "Autarquia")
  25 +
26 26 end
27 27  
28   - should "update institution date_modification in your creation" do
29   - institution = create_public_institution("Ministerio Publico da Uniao", "MPU", @govPower, @govSphere)
30   - institution.date_modification = "Invalid Date"
  28 + should "update institution date_modification when edit profile" do
  29 + create_public_institution("Ministerio Publico da Uniao", "MPU", "BR", "DF", "Gama", @juridical_nature, @govPower, @govSphere)
31 30  
32   - post :edit, :profile => Institution.last.community.identifier, :profile_data => {:name => "Ministerio da Saude"}, :institution => institution
  31 + post :edit, :profile => Institution.last.community.identifier, :profile_data => {:name => "Ministerio da Saude"}, :institution => Institution.last
33 32  
34 33 date = Time.now.day.to_s + "/" + Time.now.month.to_s + "/" + Time.now.year.to_s
35 34 assert_equal date, Institution.last.date_modification
36 35 end
37 36  
  37 + should "add new institution for user into edit profile" do
  38 + institutions = []
  39 + institutions << create_public_institution("Ministerio Publico da Uniao", "MPU", "BR", "DF", "Gama", @juridical_nature, @govPower, @govSphere)
  40 + institutions << create_public_institution("Nova Instituicao", "NIN", "BR", "GO", "Goiania", @juridical_nature, @govPower, @govSphere)
  41 + user = fast_create(User)
  42 + user.person = fast_create(Person)
  43 + user.person.user = user
  44 + user.save!
  45 + user.person.save!
  46 +
  47 + params_user = Hash.new
  48 + params_user[:institution_ids] = []
  49 + institutions.each do |institution|
  50 + params_user[:institution_ids] << institution.id
  51 + end
  52 +
  53 + post :edit, :profile => User.last.person.identifier, :user => params_user
  54 +
  55 + assert_equal institutions.count, User.last.institutions.count
  56 + end
  57 +
  58 + should "remove institutions for user into edit profile" do
  59 + user = fast_create(User)
  60 + user.person = fast_create(Person)
  61 +
  62 + user.institutions << create_public_institution("Ministerio Publico da Uniao", "MPU", "BR", "DF", "Gama", @juridical_nature, @govPower, @govSphere)
  63 + user.institutions << create_public_institution("Nova Instituicao", "NIN", "BR", "GO", "Goiania", @juridical_nature, @govPower, @govSphere)
  64 +
  65 + user.person.user = user
  66 + user.save!
  67 + user.person.save!
  68 +
  69 + params_user = Hash.new
  70 + params_user[:institution_ids] = []
  71 +
  72 + post :edit, :profile => User.last.person.identifier, :user => params_user
  73 +
  74 + assert_equal 0, User.last.institutions.count
  75 + end
  76 +
38 77 private
39 78  
40   - def create_public_institution name, acronym, gov_p, gov_s
  79 + def create_public_institution name, acronym, country, state, city, juridical_nature, gov_p, gov_s
41 80 institution_community = fast_create(Community)
42 81 institution_community.name = name
  82 + institution_community.country = country
  83 + institution_community.state = state
  84 + institution_community.city = city
  85 + institution_community.save!
43 86  
44 87 institution = PublicInstitution.new
45 88 institution.community = institution_community
46 89 institution.name = name
  90 + institution.juridical_nature = juridical_nature
47 91 institution.acronym = acronym
48 92 institution.governmental_power = gov_p
49 93 institution.governmental_sphere = gov_s
... ... @@ -51,4 +95,4 @@ class ProfileEditorControllerTest &lt; ActionController::TestCase
51 95 institution
52 96 end
53 97  
54   -end
55 98 \ No newline at end of file
  99 +end
... ...