Commit 5e076253c1d50b911ef2621c444c9322b64cf3c9

Authored by Rodrigo Souto
1 parent 6ead4aee

gov-user: adequate models with proper namespacese

Signed-off-by: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>
Signed-off-by: Thiago Ribeiro <thiagitosouza@hotmail.com>
Signed-off-by: Tallys Martins <tallysmartins@yahoo.com.br>

Closes #323
Showing 58 changed files with 902 additions and 915 deletions   Show diff stats
src/noosfero-spb/gov_user/controllers/gov_user_plugin_controller.rb
... ... @@ -18,7 +18,6 @@ class GovUserPluginController &lt; ApplicationController
18 18  
19 19 def create_institution
20 20 create_institution_view_variables
21   -
22 21 if request.xhr?
23 22 render :layout=>false
24 23 else
... ... @@ -57,7 +56,7 @@ class GovUserPluginController &lt; ApplicationController
57 56 def institution_already_exists
58 57 redirect_to "/" if !request.xhr? || params[:name].blank?
59 58  
60   - already_exists = !Institution.find_by_name(params[:name]).nil?
  59 + already_exists = !GovUserPlugin::Institution.find_by_name(params[:name]).nil?
61 60  
62 61 render :json=>already_exists.to_json
63 62 end
... ... @@ -65,7 +64,7 @@ class GovUserPluginController &lt; ApplicationController
65 64 def get_institutions
66 65 redirect_to "/" if !request.xhr? || params[:query].blank?
67 66  
68   - institutions = Institution.search_institution(params[:query]).select([:id, :name])
  67 + institutions = GovUserPlugin::Institution.search_institution(params[:query]).select([:id, :name])
69 68 institutions_list = institutions.map { |institution|
70 69 {:value=>institution.name, :id=>institution.id}
71 70 }
... ... @@ -135,17 +134,17 @@ class GovUserPluginController &lt; ApplicationController
135 134  
136 135 def get_governmental_spheres
137 136 spheres = [[_("Select a Governmental Sphere"), 0]]
138   - spheres.concat get_model_as_option_list(GovernmentalSphere)
  137 + spheres.concat get_model_as_option_list(GovUserPlugin::GovernmentalSphere)
139 138 end
140 139  
141 140 def get_governmental_powers
142 141 powers = [[_("Select a Governmental Power"), 0]]
143   - powers.concat get_model_as_option_list(GovernmentalPower)
  142 + powers.concat get_model_as_option_list(GovUserPlugin::GovernmentalPower)
144 143 end
145 144  
146 145 def get_juridical_natures
147 146 natures = [[_("Select a Juridical Nature"), 0]]
148   - natures.concat get_model_as_option_list(JuridicalNature)
  147 + natures.concat get_model_as_option_list(GovUserPlugin::JuridicalNature)
149 148 end
150 149  
151 150 def get_model_as_option_list model
... ... @@ -157,10 +156,10 @@ class GovUserPluginController &lt; ApplicationController
157 156 :governmental_sphere,
158 157 :juridical_nature
159 158 )
160   - if params[:institutions][:type] == "PublicInstitution"
161   - PublicInstitution::new institution_params
  159 + if params[:institutions][:type] == "GovUserPlugin::PublicInstitution"
  160 + GovUserPlugin::PublicInstitution::new institution_params
162 161 else
163   - PrivateInstitution::new institution_params
  162 + GovUserPlugin::PrivateInstitution::new institution_params
164 163 end
165 164 end
166 165  
... ... @@ -168,9 +167,9 @@ class GovUserPluginController &lt; ApplicationController
168 167 inst_fields = params[:institutions]
169 168  
170 169 begin
171   - gov_power = GovernmentalPower.find inst_fields[:governmental_power]
172   - gov_sphere = GovernmentalSphere.find inst_fields[:governmental_sphere]
173   - jur_nature = JuridicalNature.find inst_fields[:juridical_nature]
  170 + gov_power = GovUserPlugin::GovernmentalPower.find inst_fields[:governmental_power]
  171 + gov_sphere = GovUserPlugin::GovernmentalSphere.find inst_fields[:governmental_sphere]
  172 + jur_nature = GovUserPlugin::JuridicalNature.find inst_fields[:juridical_nature]
174 173  
175 174 institution.juridical_nature = jur_nature
176 175 institution.governmental_power = gov_power
... ... @@ -191,7 +190,7 @@ class GovUserPluginController &lt; ApplicationController
191 190 institution.name = community[:name]
192 191 institution.community = community
193 192  
194   - if institution.type == "PublicInstitution"
  193 + if institution.type == "GovUserPlugin::PublicInstitution"
195 194 set_public_institution_fields institution
196 195 end
197 196  
... ...
src/noosfero-spb/gov_user/controllers/gov_user_plugin_myprofile_controller.rb
... ... @@ -20,7 +20,7 @@ class GovUserPluginMyprofileController &lt; MyProfileController
20 20 def update_institution
21 21 @institution.community.update_attributes(params[:community])
22 22 @institution.update_attributes(params[:institutions].except(:governmental_power, :governmental_sphere, :juridical_nature))
23   - if @institution.type == "PublicInstitution"
  23 + if @institution.type == "GovUserPlugin::PublicInstitution"
24 24 begin
25 25 governmental_updates
26 26 rescue
... ... @@ -36,15 +36,13 @@ class GovUserPluginMyprofileController &lt; MyProfileController
36 36 end
37 37  
38 38 def governmental_updates
39   - gov_power = GovernmentalPower.find params[:institutions][:governmental_power]
40   - gov_sphere = GovernmentalSphere.find params[:institutions][:governmental_sphere]
41   - jur_nature = JuridicalNature.find params[:institutions][:juridical_nature]
  39 + gov_power = GovUserPlugin::GovernmentalPower.find params[:institutions][:governmental_power]
  40 + gov_sphere = GovUserPlugin::GovernmentalSphere.find params[:institutions][:governmental_sphere]
  41 + jur_nature = GovUserPlugin::JuridicalNature.find params[:institutions][:juridical_nature]
42 42  
43 43 @institution.juridical_nature = jur_nature
44 44 @institution.governmental_power = gov_power
45 45 @institution.governmental_sphere = gov_sphere
46 46 @institution.save
47 47 end
48   -
49   -
50 48 end
... ...
src/noosfero-spb/gov_user/db/migrate/20151019174219_rename_tables_with_plugin_namespace.rb 0 → 100644
... ... @@ -0,0 +1,9 @@
  1 +class RenameTablesWithPluginNamespace < ActiveRecord::Migration
  2 + def change
  3 + rename_table :institutions, :gov_user_plugin_institutions
  4 + rename_table :governmental_spheres, :gov_user_plugin_governmental_spheres
  5 + rename_table :governmental_powers, :gov_user_plugin_governmental_powers
  6 + rename_table :juridical_natures, :gov_user_plugin_juridical_natures
  7 + rename_table :institutions_users, :gov_user_plugin_institutions_users
  8 + end
  9 +end
... ...
src/noosfero-spb/gov_user/features/institution_registration.feature
... ... @@ -4,13 +4,9 @@ Feature: Institution Field
4 4 So others users can use it
5 5  
6 6 Background:
7   - Given "GovUserPlugin" plugin is enabled
  7 + Given plugin GovUser is enabled on environment
8 8 And I am logged in as mpog_admin
9   - And I go to /admin/plugins
10   - And I check "GovUserPlugin"
11   - And I press "Save changes"
12 9 And Institutions has initial default values on database
13   - And I am logged in as mpog_admin
14 10  
15 11 @selenium
16 12 Scenario: Show new institution fields when clicked in create new institution
... ...
src/noosfero-spb/gov_user/features/step_definitions/gov_user_steps.rb 0 → 100644
... ... @@ -0,0 +1,90 @@
  1 +Given /^Institutions has initial default values on database$/ do
  2 + GovUserPlugin::GovernmentalPower.create(:name => "Executivo")
  3 + GovUserPlugin::GovernmentalPower.create(:name => "Legislativo")
  4 + GovUserPlugin::GovernmentalPower.create(:name => "Judiciario")
  5 +
  6 + GovUserPlugin::GovernmentalSphere.create(:name => "Federal")
  7 +
  8 + GovUserPlugin::JuridicalNature.create(:name => "Autarquia")
  9 + GovUserPlugin::JuridicalNature.create(:name => "Administracao Direta")
  10 + GovUserPlugin::JuridicalNature.create(:name => "Empresa Publica")
  11 + GovUserPlugin::JuridicalNature.create(:name => "Fundacao")
  12 + GovUserPlugin::JuridicalNature.create(:name => "Orgao Autonomo")
  13 + GovUserPlugin::JuridicalNature.create(:name => "Sociedade")
  14 + GovUserPlugin::JuridicalNature.create(:name => "Sociedade Civil")
  15 + GovUserPlugin::JuridicalNature.create(:name => "Sociedade de Economia Mista")
  16 +
  17 + national_region = NationalRegion.new
  18 + national_region.name = "Distrito Federal"
  19 + national_region.national_region_code = '35'
  20 + national_region.national_region_type_id = NationalRegionType::STATE
  21 + national_region.save
  22 +end
  23 +
  24 +Given /^I type in "([^"]*)" in autocomplete list "([^"]*)" and I choose "([^"]*)"$/ do |typed, input_field_selector, should_select|
  25 +# Wait the page javascript load
  26 +sleep 1
  27 +# Basicaly it, search for the input field, type something, wait for ajax end select an item
  28 +page.driver.browser.execute_script %Q{
  29 + var search_query = "#{input_field_selector}.ui-autocomplete-input";
  30 + var input = jQuery(search_query).first();
  31 +
  32 + input.trigger('click');
  33 + input.val('#{typed}');
  34 + input.trigger('keydown');
  35 +
  36 + window.setTimeout(function(){
  37 + search_query = ".ui-menu-item a:contains('#{should_select}')";
  38 + var typed = jQuery(search_query).first();
  39 +
  40 + typed.trigger('mouseenter').trigger('click');
  41 + console.log(jQuery('#license_info_id'));
  42 + }, 1000);
  43 + }
  44 + sleep 1
  45 +end
  46 +
  47 +Given /^the following public institutions?$/ do |table|
  48 + # table is a Cucumber::Ast::Table
  49 + table.hashes.each do |item|
  50 + community = Community.new
  51 + community.name = item[:name]
  52 + community.country = item[:country]
  53 + community.state = item[:state]
  54 + community.city = item[:city]
  55 + community.save!
  56 +
  57 + governmental_power = GovUserPlugin::GovernmentalPower.where(:name => item[:governmental_power]).first
  58 + governmental_sphere = GovUserPlugin::GovernmentalSphere.where(:name => item[:governmental_sphere]).first
  59 +
  60 + juridical_nature = GovUserPlugin::JuridicalNature.create(:name => item[:juridical_nature])
  61 +
  62 + institution = GovUserPlugin::PublicInstitution.new(:name => item[:name], :type => "GovUserPlugin::PublicInstitution", :acronym => item[:acronym], :cnpj => item[:cnpj], :juridical_nature => juridical_nature, :governmental_power => governmental_power, :governmental_sphere => governmental_sphere)
  63 + institution.community = community
  64 + institution.corporate_name = item[:corporate_name]
  65 + institution.save!
  66 + end
  67 +end
  68 +
  69 +Given /^I sleep for (\d+) seconds$/ do |time|
  70 + sleep time.to_i
  71 +end
  72 +
  73 +Given /^I am logged in as mpog_admin$/ do
  74 + visit('/account/logout')
  75 +
  76 + user = User.new(:login => 'admin_user', :password => '123456', :password_confirmation => '123456', :email => 'admin_user@example.com')
  77 + person = Person.new :name=>"Mpog Admin", :identifier=>"mpog-admin"
  78 + user.person = person
  79 + user.save!
  80 +
  81 + user.activate
  82 + e = Environment.default
  83 + e.add_admin(user.person)
  84 +
  85 + visit('/account/login')
  86 + fill_in("Username", :with => user.login)
  87 + fill_in("Password", :with => '123456')
  88 + click_button("Log in")
  89 +end
  90 +
... ...
src/noosfero-spb/gov_user/features/steps_definitions/gov_user_steps.rb
... ... @@ -1,90 +0,0 @@
1   -Given /^Institutions has initial default values on database$/ do
2   - GovernmentalPower.create(:name => "Executivo")
3   - GovernmentalPower.create(:name => "Legislativo")
4   - GovernmentalPower.create(:name => "Judiciario")
5   -
6   - GovernmentalSphere.create(:name => "Federal")
7   -
8   - JuridicalNature.create(:name => "Autarquia")
9   - JuridicalNature.create(:name => "Administracao Direta")
10   - JuridicalNature.create(:name => "Empresa Publica")
11   - JuridicalNature.create(:name => "Fundacao")
12   - JuridicalNature.create(:name => "Orgao Autonomo")
13   - JuridicalNature.create(:name => "Sociedade")
14   - JuridicalNature.create(:name => "Sociedade Civil")
15   - JuridicalNature.create(:name => "Sociedade de Economia Mista")
16   -
17   - national_region = NationalRegion.new
18   - national_region.name = "Distrito Federal"
19   - national_region.national_region_code = '35'
20   - national_region.national_region_type_id = NationalRegionType::STATE
21   - national_region.save
22   -end
23   -
24   -Given /^I type in "([^"]*)" in autocomplete list "([^"]*)" and I choose "([^"]*)"$/ do |typed, input_field_selector, should_select|
25   -# Wait the page javascript load
26   -sleep 1
27   -# Basicaly it, search for the input field, type something, wait for ajax end select an item
28   -page.driver.browser.execute_script %Q{
29   - var search_query = "#{input_field_selector}.ui-autocomplete-input";
30   - var input = jQuery(search_query).first();
31   -
32   - input.trigger('click');
33   - input.val('#{typed}');
34   - input.trigger('keydown');
35   -
36   - window.setTimeout(function(){
37   - search_query = ".ui-menu-item a:contains('#{should_select}')";
38   - var typed = jQuery(search_query).first();
39   -
40   - typed.trigger('mouseenter').trigger('click');
41   - console.log(jQuery('#license_info_id'));
42   - }, 1000);
43   - }
44   - sleep 1
45   -end
46   -
47   -Given /^the following public institutions?$/ do |table|
48   - # table is a Cucumber::Ast::Table
49   - table.hashes.each do |item|
50   - community = Community.new
51   - community.name = item[:name]
52   - community.country = item[:country]
53   - community.state = item[:state]
54   - community.city = item[:city]
55   - community.save!
56   -
57   - governmental_power = GovernmentalPower.where(:name => item[:governmental_power]).first
58   - governmental_sphere = GovernmentalSphere.where(:name => item[:governmental_sphere]).first
59   -
60   - juridical_nature = JuridicalNature.create(:name => item[:juridical_nature])
61   -
62   - institution = PublicInstitution.new(:name => item[:name], :type => "PublicInstitution", :acronym => item[:acronym], :cnpj => item[:cnpj], :juridical_nature => juridical_nature, :governmental_power => governmental_power, :governmental_sphere => governmental_sphere)
63   - institution.community = community
64   - institution.corporate_name = item[:corporate_name]
65   - institution.save!
66   - end
67   -end
68   -
69   -Given /^I sleep for (\d+) seconds$/ do |time|
70   - sleep time.to_i
71   -end
72   -
73   -Given /^I am logged in as mpog_admin$/ do
74   - visit('/account/logout')
75   -
76   - user = User.new(:login => 'admin_user', :password => '123456', :password_confirmation => '123456', :email => 'admin_user@example.com')
77   - person = Person.new :name=>"Mpog Admin", :identifier=>"mpog-admin"
78   - user.person = person
79   - user.save!
80   -
81   - user.activate
82   - e = Environment.default
83   - e.add_admin(user.person)
84   -
85   - visit('/account/login')
86   - fill_in("Username", :with => user.login)
87   - fill_in("Password", :with => '123456')
88   - click_button("Log in")
89   -end
90   -
src/noosfero-spb/gov_user/features/user_profile_edition.feature
... ... @@ -4,14 +4,11 @@ Feature: Institution Field
4 4 So I can maintain my personal data updated
5 5  
6 6 Background:
7   - Given "GovUserPlugin" plugin is enabled
  7 + Given plugin GovUser is enabled on environment
8 8 And the following users
9 9 | login | name |
10 10 | joao | Joao Silva |
11 11 And I am logged in as admin
12   - And I go to /admin/plugins
13   - And I check "GovUserPlugin"
14   - And I press "Save changes"
15 12 And feature "skip_new_user_email_confirmation" is enabled on environment
16 13 And I go to /admin/features/manage_fields
17 14 And I check "person_fields_country_active"
... ... @@ -44,11 +41,8 @@ Feature: Institution Field
44 41 Given I am logged in as "joao"
45 42 And I am on joao's control panel
46 43 When I follow "Edit Profile"
47   - And I follow "Add new institution"
48 44 And I type in "Minis" in autocomplete list "#input_institution" and I choose "Ministerio do Planejamento"
49   - And I follow "Add new institution"
50 45 And I type in "Gover" in autocomplete list "#input_institution" and I choose "Governo do DF"
51   - And I follow "Add new institution"
52 46 Then I should see "Ministerio do Planejamento" within ".institutions_added"
53 47 And I should see "Governo do DF" within ".institutions_added"
54 48  
... ...
src/noosfero-spb/gov_user/lib/ext/community.rb
1 1 require_dependency 'community'
2 2  
3 3 class Community
4   - has_one :institution, :dependent=>:destroy
  4 + has_one :institution, :class_name => 'GovUserPlugin::Institution', :dependent=>:destroy
5 5  
6 6 def institution?
7 7 return !institution.nil?
... ...
src/noosfero-spb/gov_user/lib/ext/organization_rating.rb
... ... @@ -2,7 +2,7 @@ require_dependency &quot;organization_rating&quot;
2 2  
3 3 OrganizationRating.class_eval do
4 4  
5   - belongs_to :institution
  5 + belongs_to :institution, :class_name => 'GovUserPlugin::Institution'
6 6  
7 7 attr_accessible :institution, :institution_id
8 8  
... ... @@ -12,7 +12,7 @@ OrganizationRating.class_eval do
12 12  
13 13 def verify_institution
14 14 if self.institution != nil
15   - institution = Institution.find_by_id self.institution.id
  15 + institution = GovUserPlugin::Institution.find_by_id self.institution.id
16 16 self.errors.add :institution, _("not found") unless institution
17 17 end
18 18 end
... ...
src/noosfero-spb/gov_user/lib/ext/search_controller.rb
... ... @@ -14,7 +14,9 @@ class SearchController
14 14 end
15 15  
16 16 def institutions
17   - @titles[:institutions] = _("Institution Catalog")
  17 + @asset = "gov_user_plugin/institutions"
  18 + @assets = [@asset]
  19 + @titles["gov_user_plugin/institutions"] = _("Institution Catalog")
18 20 results = filter_communities_list{|community| community.institution?}
19 21 results = results.paginate(:per_page => 24, :page => params[:page])
20 22 @searches[@asset] = {:results => results}
... ...
src/noosfero-spb/gov_user/lib/ext/search_helper.rb
... ... @@ -3,6 +3,6 @@ require_dependency &#39;search_helper&#39;
3 3 module SearchHelper
4 4  
5 5 COMMON_PROFILE_LIST_BLOCK ||= []
6   - COMMON_PROFILE_LIST_BLOCK << :institutions
  6 + COMMON_PROFILE_LIST_BLOCK << "gov_user_plugin/institution"
7 7  
8 8 end
... ...
src/noosfero-spb/gov_user/lib/ext/user.rb
... ... @@ -4,7 +4,7 @@ class User
4 4  
5 5 GOV_SUFFIX = /^.*@[gov.br|jus.br|leg.br|mp.br]+$/
6 6  
7   - has_and_belongs_to_many :institutions
  7 + has_and_belongs_to_many :institutions, :class_name => 'GovUserPlugin::Institution', :join_table => 'gov_user_plugin_institutions_users'
8 8  
9 9 validate :email_different_secondary?, :email_has_already_been_used?,
10 10 :secondary_email_format
... ...
src/noosfero-spb/gov_user/lib/gov_user_plugin.rb
... ... @@ -86,7 +86,7 @@ class GovUserPlugin &lt; Noosfero::Plugin
86 86  
87 87 def self.extra_blocks
88 88 {
89   - InstitutionsBlock => { :type => [Environment, Person] }
  89 + GovUserPlugin::InstitutionsBlock => { :type => [Environment, Person] }
90 90 }
91 91 end
92 92  
... ... @@ -223,7 +223,7 @@ class GovUserPlugin &lt; Noosfero::Plugin
223 223 end
224 224  
225 225 if context.params.has_key?(:institution)
226   - Institution.transaction do
  226 + GovUserPlugin::Institution.transaction do
227 227 context.profile.
228 228 institution.
229 229 update_attributes!(context.params[:institution])
... ... @@ -277,7 +277,7 @@ class GovUserPlugin &lt; Noosfero::Plugin
277 277 context.params[:user][:institution_ids].delete('')
278 278  
279 279 context.params[:user][:institution_ids].each do |id|
280   - new_communities << Institution.find(id).community
  280 + new_communities << GovUserPlugin::Institution.find(id).community
281 281 end
282 282 end
283 283  
... ... @@ -320,7 +320,7 @@ class GovUserPlugin &lt; Noosfero::Plugin
320 320  
321 321 def update_user_institutions(user)
322 322 context.params[:user][:institution_ids].each do |institution_id|
323   - institution = Institution.find institution_id
  323 + institution = GovUserPlugin::Institution.find institution_id
324 324 user.institutions << institution
325 325  
326 326 if institution.community.admins.blank?
... ...
src/noosfero-spb/gov_user/lib/gov_user_plugin/governmental_power.rb 0 → 100644
... ... @@ -0,0 +1,6 @@
  1 +class GovUserPlugin::GovernmentalPower < Noosfero::Plugin::ActiveRecord
  2 + attr_accessible :name
  3 +
  4 + validates :name, :presence=>true, :uniqueness=>true
  5 + has_many :institutions, :class_name => 'GovUserPlugin::Institution'
  6 +end
... ...
src/noosfero-spb/gov_user/lib/gov_user_plugin/governmental_sphere.rb 0 → 100644
... ... @@ -0,0 +1,7 @@
  1 +class GovUserPlugin::GovernmentalSphere < Noosfero::Plugin::ActiveRecord
  2 + attr_accessible :name
  3 +
  4 + validates :name, :presence=>true, :uniqueness=>true
  5 +
  6 + has_many :institutions, :class_name => 'GovUserPlugin::Institution'
  7 +end
... ...
src/noosfero-spb/gov_user/lib/gov_user_plugin/institution.rb 0 → 100644
... ... @@ -0,0 +1,109 @@
  1 +class GovUserPlugin::Institution < Noosfero::Plugin::ActiveRecord
  2 + has_many :comments
  3 +
  4 + SEARCH_FILTERS = {
  5 + :order => %w[],
  6 + :display => %w[compact]
  7 + }
  8 +
  9 + def self.default_search_display
  10 + 'compact'
  11 + end
  12 +
  13 + belongs_to :governmental_power, :class_name => 'GovUserPlugin::GovernmentalPower'
  14 + belongs_to :governmental_sphere, :class_name => 'GovUserPlugin::GovernmentalSphere'
  15 + belongs_to :juridical_nature, :class_name => 'GovUserPlugin::JuridicalNature'
  16 +
  17 + has_and_belongs_to_many :users, :join_table => 'gov_user_plugin_institutions_users'
  18 +
  19 + attr_accessible :name, :acronym, :unit_code, :parent_code, :unit_type,
  20 + :sub_juridical_nature, :normalization_level,
  21 + :version, :cnpj, :type, :governmental_power,
  22 + :governmental_sphere, :sisp, :juridical_nature,
  23 + :corporate_name, :siorg_code, :community
  24 +
  25 + validates :name, :presence=>true, :uniqueness=>true
  26 +
  27 + before_save :verify_institution_type
  28 +
  29 + belongs_to :community
  30 +
  31 + scope :public, :conditions => { :type => "GovUserPlugin::PublicInstitution" }
  32 + scope :private, :conditions => { :type => "GovUserPlugin::PrivateInstitution" }
  33 + scope :search_institution, lambda{ |value|
  34 + where("name ilike ? OR acronym ilike ?", "%#{value}%", "%#{value}%" )
  35 + }
  36 +
  37 + validate :validate_country, :validate_state, :validate_city,
  38 + :verify_institution_type, :validate_format_cnpj
  39 +
  40 +
  41 + protected
  42 +
  43 + def verify_institution_type
  44 + valid_institutions_type = ["GovUserPlugin::PublicInstitution", "GovUserPlugin::PrivateInstitution"]
  45 +
  46 + unless valid_institutions_type.include? self.type
  47 + self.errors.add(
  48 + :type,
  49 + _("invalid, only public and private institutions are allowed.")
  50 + )
  51 +
  52 + return false
  53 + end
  54 +
  55 + return true
  56 + end
  57 +
  58 + def validate_country
  59 + unless self.community.blank?
  60 + if self.community.country.blank? && self.errors[:country].blank?
  61 + self.errors.add(:country, _("can't be blank"))
  62 + return false
  63 + end
  64 + end
  65 +
  66 + return true
  67 + end
  68 +
  69 + def validate_state
  70 + unless self.community.blank?
  71 + if self.community.country == "BR" &&
  72 + (self.community.state.blank? || self.community.state == "-1") &&
  73 + self.errors[:state].blank?
  74 +
  75 + self.errors.add(:state, _("can't be blank"))
  76 + return false
  77 + end
  78 + end
  79 +
  80 + return true
  81 + end
  82 +
  83 + def validate_city
  84 + unless self.community.blank?
  85 + if self.community.country == "BR" && self.community.city.blank? &&
  86 + self.errors[:city].blank?
  87 +
  88 + self.errors.add(:city, _("can't be blank"))
  89 + return false
  90 + end
  91 + end
  92 +
  93 + return true
  94 + end
  95 +
  96 + def validate_format_cnpj
  97 + return true if self.community.blank? && self.community.country != "BR"
  98 + return true if self.cnpj.blank?
  99 +
  100 + format = /^\d{2}\.\d{3}\.\d{3}\/\d{4}\-\d{2}$/
  101 +
  102 + if !self.cnpj.blank? && format.match(self.cnpj)
  103 + return true
  104 + else
  105 + self.errors.add(:cnpj, _("invalid format"))
  106 + return false
  107 + end
  108 + end
  109 +end
... ...
src/noosfero-spb/gov_user/lib/gov_user_plugin/institutions_block.rb 0 → 100644
... ... @@ -0,0 +1,70 @@
  1 +class GovUserPlugin::InstitutionsBlock < CommunitiesBlock
  2 + def self.description
  3 + _('Institutions')
  4 + end
  5 +
  6 + def profile_count
  7 + profile_list.count
  8 + end
  9 +
  10 + def default_title
  11 + n_('{#} institution', '{#} institutions', profile_count)
  12 + end
  13 +
  14 + def help
  15 + _('This block displays the institutions in which the user is a member.')
  16 + end
  17 +
  18 + def footer
  19 + owner = self.owner
  20 + case owner
  21 + when Profile
  22 + lambda do |context|
  23 + link_to s_('institutions|View all'), :profile => owner.identifier,
  24 + :controller => 'profile', :action => 'communities',
  25 + :type => 'GovUserPlugin::Institution'
  26 + end
  27 + when Environment
  28 + lambda do |context|
  29 + link_to s_('institutions|View all'), :controller => 'search',
  30 + :action => 'communities', :type => 'GovUserPlugin::Institution'
  31 + end
  32 + else
  33 + ''
  34 + end
  35 + end
  36 +
  37 + def profile_list
  38 + result = get_visible_profiles
  39 +
  40 + result = result.select { |p| p.class == Community && p.institution? }
  41 +
  42 + result.slice(0..get_limit-1)
  43 + end
  44 +
  45 + def profiles
  46 + owner.communities
  47 + end
  48 +
  49 + private
  50 +
  51 + def get_visible_profiles
  52 + include_list = [:image,:domains,:preferred_domain,:environment]
  53 + visible_profiles = profiles.visible.includes(include_list)
  54 +
  55 + if !prioritize_profiles_with_image
  56 + visible_profiles.all(:limit => get_limit,
  57 + :order => 'profiles.updated_at DESC'
  58 + ).sort_by{ rand }
  59 + elsif profiles.visible.with_image.count >= get_limit
  60 + visible_profiles.with_image.all(:limit => get_limit * 5,
  61 + :order => 'profiles.updated_at DESC'
  62 + ).sort_by{ rand }
  63 + else
  64 + visible_profiles.with_image.sort_by{ rand } +
  65 + visible_profiles.without_image.all(:limit => get_limit * 5,
  66 + :order => 'profiles.updated_at DESC'
  67 + ).sort_by{ rand }
  68 + end
  69 + end
  70 +end
... ...
src/noosfero-spb/gov_user/lib/gov_user_plugin/institutions_users.rb 0 → 100644
... ... @@ -0,0 +1,4 @@
  1 +class GovUserPlugin::InstitutionsUsers < Noosfero::Plugin::ActiveRecord
  2 + belongs_to :user
  3 + belongs_to :institution, :class_name => 'GovUserPlugin::Institution'
  4 +end
... ...
src/noosfero-spb/gov_user/lib/gov_user_plugin/juridical_nature.rb 0 → 100644
... ... @@ -0,0 +1,10 @@
  1 +class GovUserPlugin::JuridicalNature < Noosfero::Plugin::ActiveRecord
  2 + self.record_timestamps = false
  3 +
  4 + attr_accessible :name
  5 +
  6 + has_many :institutions, :class_name => 'GovUserPlugin::Institution'
  7 +
  8 + validates_presence_of :name
  9 + validates_uniqueness_of :name
  10 +end
... ...
src/noosfero-spb/gov_user/lib/gov_user_plugin/private_institution.rb 0 → 100644
... ... @@ -0,0 +1,2 @@
  1 +class GovUserPlugin::PrivateInstitution < GovUserPlugin::Institution
  2 +end
... ...
src/noosfero-spb/gov_user/lib/gov_user_plugin/public_institution.rb 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +class GovUserPlugin::PublicInstitution < GovUserPlugin::Institution
  2 + validates :governmental_power, :governmental_sphere, :juridical_nature,
  3 + :presence=>true
  4 +
  5 + validates :acronym, :allow_blank => true, :allow_nil => true,
  6 + :uniqueness=>true
  7 +
  8 + validates_format_of(
  9 + :cnpj,
  10 + :with => /^\d{2}\.\d{3}\.\d{3}\/\d{4}\-\d{2}$/,
  11 + :allow_nil => true, :allow_blank => true
  12 + )
  13 +end
... ...
src/noosfero-spb/gov_user/lib/governmental_power.rb
... ... @@ -1,13 +0,0 @@
1   -class GovernmentalPower < ActiveRecord::Base
2   - attr_accessible :name
3   -
4   - validates :name, :presence=>true, :uniqueness=>true
5   - has_many :institutions
6   -
7   - def public_institutions
8   - Institution.where(
9   - :type=>"PublicInstitution",
10   - :governmental_power_id=>self.id
11   - )
12   - end
13   -end
src/noosfero-spb/gov_user/lib/governmental_sphere.rb
... ... @@ -1,7 +0,0 @@
1   -class GovernmentalSphere < ActiveRecord::Base
2   - attr_accessible :name
3   -
4   - validates :name, :presence=>true, :uniqueness=>true
5   -
6   - has_many :institutions
7   -end
src/noosfero-spb/gov_user/lib/institution.rb
... ... @@ -1,107 +0,0 @@
1   -class Institution < ActiveRecord::Base
2   - has_many :comments
3   -
4   - SEARCH_FILTERS = {
5   - :order => %w[],
6   - :display => %w[compact]
7   - }
8   -
9   - def self.default_search_display
10   - 'compact'
11   - end
12   -
13   - belongs_to :governmental_power
14   - belongs_to :governmental_sphere
15   - belongs_to :juridical_nature
16   -
17   - has_and_belongs_to_many :users
18   -
19   - attr_accessible :name, :acronym, :unit_code, :parent_code, :unit_type,
20   - :sub_juridical_nature, :normalization_level,
21   - :version, :cnpj, :type, :governmental_power,
22   - :governmental_sphere, :sisp, :juridical_nature,
23   - :corporate_name, :siorg_code, :community
24   -
25   - validates :name, :presence=>true, :uniqueness=>true
26   -
27   - before_save :verify_institution_type
28   -
29   - belongs_to :community
30   -
31   - scope :search_institution, lambda{ |value|
32   - where("name ilike ? OR acronym ilike ?", "%#{value}%", "%#{value}%" )
33   - }
34   -
35   - validate :validate_country, :validate_state, :validate_city,
36   - :verify_institution_type, :validate_format_cnpj
37   -
38   -
39   - protected
40   -
41   - def verify_institution_type
42   - valid_institutions_type = ["PublicInstitution", "PrivateInstitution"]
43   -
44   - unless valid_institutions_type.include? self.type
45   - self.errors.add(
46   - :type,
47   - _("invalid, only public and private institutions are allowed.")
48   - )
49   -
50   - return false
51   - end
52   -
53   - return true
54   - end
55   -
56   - def validate_country
57   - unless self.community.blank?
58   - if self.community.country.blank? && self.errors[:country].blank?
59   - self.errors.add(:country, _("can't be blank"))
60   - return false
61   - end
62   - end
63   -
64   - return true
65   - end
66   -
67   - def validate_state
68   - unless self.community.blank?
69   - if self.community.country == "BR" &&
70   - (self.community.state.blank? || self.community.state == "-1") &&
71   - self.errors[:state].blank?
72   -
73   - self.errors.add(:state, _("can't be blank"))
74   - return false
75   - end
76   - end
77   -
78   - return true
79   - end
80   -
81   - def validate_city
82   - unless self.community.blank?
83   - if self.community.country == "BR" && self.community.city.blank? &&
84   - self.errors[:city].blank?
85   -
86   - self.errors.add(:city, _("can't be blank"))
87   - return false
88   - end
89   - end
90   -
91   - return true
92   - end
93   -
94   - def validate_format_cnpj
95   - return true if self.community.blank? && self.community.country != "BR"
96   - return true if self.cnpj.blank?
97   -
98   - format = /^\d{2}\.\d{3}\.\d{3}\/\d{4}\-\d{2}$/
99   -
100   - if !self.cnpj.blank? && format.match(self.cnpj)
101   - return true
102   - else
103   - self.errors.add(:cnpj, _("invalid format"))
104   - return false
105   - end
106   - end
107   -end
src/noosfero-spb/gov_user/lib/institutions_block.rb
... ... @@ -1,71 +0,0 @@
1   -class InstitutionsBlock < CommunitiesBlock
2   -
3   - def self.description
4   - _('Institutions')
5   - end
6   -
7   - def profile_count
8   - profile_list.count
9   - end
10   -
11   - def default_title
12   - n_('{#} institution', '{#} institutions', profile_count)
13   - end
14   -
15   - def help
16   - _('This block displays the institutions in which the user is a member.')
17   - end
18   -
19   - def footer
20   - owner = self.owner
21   - case owner
22   - when Profile
23   - lambda do |context|
24   - link_to s_('institutions|View all'), :profile => owner.identifier,
25   - :controller => 'profile', :action => 'communities',
26   - :type => 'Institution'
27   - end
28   - when Environment
29   - lambda do |context|
30   - link_to s_('institutions|View all'), :controller => 'search',
31   - :action => 'communities', :type => 'Institution'
32   - end
33   - else
34   - ''
35   - end
36   - end
37   -
38   - def profile_list
39   - result = get_visible_profiles
40   -
41   - result = result.select { |p| p.class == Community && p.institution? }
42   -
43   - result.slice(0..get_limit-1)
44   - end
45   -
46   - def profiles
47   - owner.communities
48   - end
49   -
50   - private
51   -
52   - def get_visible_profiles
53   - include_list = [:image,:domains,:preferred_domain,:environment]
54   - visible_profiles = profiles.visible.includes(include_list)
55   -
56   - if !prioritize_profiles_with_image
57   - visible_profiles.all(:limit => get_limit,
58   - :order => 'profiles.updated_at DESC'
59   - ).sort_by{ rand }
60   - elsif profiles.visible.with_image.count >= get_limit
61   - visible_profiles.with_image.all(:limit => get_limit * 5,
62   - :order => 'profiles.updated_at DESC'
63   - ).sort_by{ rand }
64   - else
65   - visible_profiles.with_image.sort_by{ rand } +
66   - visible_profiles.without_image.all(:limit => get_limit * 5,
67   - :order => 'profiles.updated_at DESC'
68   - ).sort_by{ rand }
69   - end
70   - end
71   -end
src/noosfero-spb/gov_user/lib/institutions_users.rb
... ... @@ -1,4 +0,0 @@
1   -class InstitutionUser < ActiveRecord::Base
2   - belongs_to :user
3   - belongs_to :institution
4   -end
src/noosfero-spb/gov_user/lib/juridical_nature.rb
... ... @@ -1,15 +0,0 @@
1   -class JuridicalNature < ActiveRecord::Base
2   - attr_accessible :name
3   -
4   - has_many :institutions
5   -
6   - validates_presence_of :name
7   - validates_uniqueness_of :name
8   -
9   - def public_institutions
10   - Institution.where(
11   - :type=>"PublicInstitution",
12   - :juridical_nature_id=>self.id
13   - )
14   - end
15   -end
src/noosfero-spb/gov_user/lib/private_institution.rb
... ... @@ -1,2 +0,0 @@
1   -class PrivateInstitution < Institution
2   -end
src/noosfero-spb/gov_user/lib/public_institution.rb
... ... @@ -1,13 +0,0 @@
1   -class PublicInstitution < Institution
2   - validates :governmental_power, :governmental_sphere, :juridical_nature,
3   - :presence=>true
4   -
5   - validates :acronym, :allow_blank => true, :allow_nil => true,
6   - :uniqueness=>true
7   -
8   - validates_format_of(
9   - :cnpj,
10   - :with => /^\d{2}\.\d{3}\.\d{3}\/\d{4}\-\d{2}$/,
11   - :allow_nil => true, :allow_blank => true
12   - )
13   -end
src/noosfero-spb/gov_user/public/views/create-institution.js
... ... @@ -300,7 +300,7 @@ modulejs.define(&#39;CreateInstitution&#39;, [&#39;jquery&#39;, &#39;NoosferoRoot&#39;, &#39;SelectElement&#39;]
300 300  
301 301 function institution_type_actions(type) {
302 302 var country = $("#community_country").val();
303   - if( type === "PublicInstitution" && country == "BR") {
  303 + if( type === "GovUserPlugin::PublicInstitution" && country == "BR") {
304 304 show_public_institutions_fields();
305 305 } else {
306 306 show_private_institutions_fields();
... ...
src/noosfero-spb/gov_user/test/functional/gov_user_plugin_controller_test.rb
... ... @@ -16,9 +16,9 @@ class GovUserPluginControllerTest &lt; ActionController::TestCase
16 16 @environment.add_admin(@admin)
17 17 @environment.save
18 18  
19   - @gov_power = GovernmentalPower.create(:name=>"Some Gov Power")
20   - @gov_sphere = GovernmentalSphere.create(:name=>"Some Gov Sphere")
21   - @juridical_nature = JuridicalNature.create(:name => "Autarquia")
  19 + @gov_power = GovUserPlugin::GovernmentalPower.create(:name=>"Some Gov Power")
  20 + @gov_sphere = GovUserPlugin::GovernmentalSphere.create(:name=>"Some Gov Sphere")
  21 + @juridical_nature = GovUserPlugin::JuridicalNature.create(:name => "Autarquia")
22 22 @response = ActionController::TestResponse.new
23 23  
24 24 @institution_list = []
... ... @@ -87,7 +87,7 @@ class GovUserPluginControllerTest &lt; ActionController::TestCase
87 87 "DF",
88 88 "Brasilia",
89 89 "12.234.567/8900-10",
90   - "PublicInstitution"
  90 + "GovUserPlugin::PublicInstitution"
91 91 )
92 92 fields[:institutions][:governmental_power] = @gov_power.id
93 93 fields[:institutions][:governmental_sphere] = @gov_sphere.id
... ... @@ -109,7 +109,7 @@ class GovUserPluginControllerTest &lt; ActionController::TestCase
109 109 "DF",
110 110 "Brasilia",
111 111 "",
112   - "PrivateInstitution"
  112 + "GovUserPlugin::PrivateInstitution"
113 113 )
114 114 fields[:institutions][:acronym] = "SPI"
115 115  
... ... @@ -147,7 +147,7 @@ class GovUserPluginControllerTest &lt; ActionController::TestCase
147 147 "DF",
148 148 "Brasilia",
149 149 "12.345.567/8900-10",
150   - "PrivateInstitution"
  150 + "GovUserPlugin::PrivateInstitution"
151 151 )
152 152 fields[:institutions][:acronym] = "SPI"
153 153  
... ... @@ -165,7 +165,7 @@ class GovUserPluginControllerTest &lt; ActionController::TestCase
165 165 "DF",
166 166 "Brasilia",
167 167 "56.366.790/0001-88",
168   - "PrivateInstitution"
  168 + "GovUserPlugin::PrivateInstitution"
169 169 )
170 170  
171 171 post :new_institution, fields
... ... @@ -182,7 +182,7 @@ class GovUserPluginControllerTest &lt; ActionController::TestCase
182 182 "",
183 183 "",
184 184 "",
185   - "PrivateInstitution"
  185 + "GovUserPlugin::PrivateInstitution"
186 186 )
187 187 fields[:institutions][:acronym] = "FI"
188 188  
... ... @@ -200,7 +200,7 @@ class GovUserPluginControllerTest &lt; ActionController::TestCase
200 200 "",
201 201 "",
202 202 "",
203   - "PrivateInstitution"
  203 + "GovUserPlugin::PrivateInstitution"
204 204 )
205 205 fields[:institutions][:acronym] = "FI"
206 206  
... ... @@ -224,13 +224,13 @@ class GovUserPluginControllerTest &lt; ActionController::TestCase
224 224 "DF",
225 225 "Brasilia",
226 226 "12.323.557/8900-10",
227   - "PrivateInstitution"
  227 + "GovUserPlugin::PrivateInstitution"
228 228 )
229 229 fields[:institutions][:acronym] = "PI"
230 230 fields[:edit_institution_page] = false
231 231 post :new_institution, fields
232 232  
233   - assert(Institution.last.community.admins.include?(admin2) )
  233 + assert(GovUserPlugin::Institution.last.community.admins.include?(admin2) )
234 234 end
235 235  
236 236 end
... ...
src/noosfero-spb/gov_user/test/functional/gov_user_plugin_myprofile_controller.rb
... ... @@ -24,9 +24,9 @@ class GovUserPluginMyprofileControllerTest &lt; ActionController::TestCase
24 24 @environment.save!
25 25 end
26 26 should "user edit its community institution" do
27   - govPower = GovernmentalPower.create(:name=>"Some Gov Power")
28   - govSphere = GovernmentalSphere.create(:name=>"Some Gov Sphere")
29   - juridical_nature = JuridicalNature.create(:name => "Autarquia")
  27 + govPower = GovUserPlugin::GovernmentalPower.create(:name=>"Some Gov Power")
  28 + govSphere = GovUserPlugin::GovernmentalSphere.create(:name=>"Some Gov Sphere")
  29 + juridical_nature = GovUserPlugin::JuridicalNature.create(:name => "Autarquia")
30 30  
31 31 institution = InstitutionTestHelper.create_public_institution(
32 32 "Ministerio Publico da Uniao",
... ... @@ -48,7 +48,7 @@ class GovUserPluginMyprofileControllerTest &lt; ActionController::TestCase
48 48 "DF",
49 49 "Gama",
50 50 "12.345.678/9012-45",
51   - "PrivateInstitution"
  51 + "GovUserPlugin::PrivateInstitution"
52 52 )
53 53  
54 54 post(
... ... @@ -63,9 +63,9 @@ class GovUserPluginMyprofileControllerTest &lt; ActionController::TestCase
63 63 end
64 64  
65 65 should "not user edit its community institution with wrong values" do
66   - govPower = GovernmentalPower.create(:name=>"Some Gov Power")
67   - govSphere = GovernmentalSphere.create(:name=>"Some Gov Sphere")
68   - juridical_nature = JuridicalNature.create(:name => "Autarquia")
  66 + govPower = GovUserPlugin::GovernmentalPower.create(:name=>"Some Gov Power")
  67 + govSphere = GovUserPlugin::GovernmentalSphere.create(:name=>"Some Gov Sphere")
  68 + juridical_nature = GovUserPlugin::JuridicalNature.create(:name => "Autarquia")
69 69  
70 70 institution = InstitutionTestHelper.create_public_institution(
71 71 "Ministerio Publico da Uniao",
... ... @@ -87,7 +87,7 @@ class GovUserPluginMyprofileControllerTest &lt; ActionController::TestCase
87 87 "DF",
88 88 "Gama",
89 89 "6465465465",
90   - "PrivateInstitution"
  90 + "GovUserPlugin::PrivateInstitution"
91 91 )
92 92  
93 93 post(
... ...
src/noosfero-spb/gov_user/test/functional/profile_editor_controller_test.rb
... ... @@ -29,9 +29,9 @@ class ProfileEditorControllerTest &lt; ActionController::TestCase
29 29 @environment.add_admin(admin)
30 30 @environment.save
31 31  
32   - @govPower = GovernmentalPower.create(:name=>"Some Gov Power")
33   - @govSphere = GovernmentalSphere.create(:name=>"Some Gov Sphere")
34   - @juridical_nature = JuridicalNature.create(:name => "Autarquia")
  32 + @govPower = GovUserPlugin::GovernmentalPower.create(:name=>"Some Gov Power")
  33 + @govSphere = GovUserPlugin::GovernmentalSphere.create(:name=>"Some Gov Sphere")
  34 + @juridical_nature = GovUserPlugin::JuridicalNature.create(:name => "Autarquia")
35 35  
36 36 @institution_list = []
37 37 @institution_list << InstitutionTestHelper.create_public_institution(
... ...
src/noosfero-spb/gov_user/test/functional/search_controller_test.rb
... ... @@ -51,7 +51,7 @@ class SearchControllerTest &lt; ActionController::TestCase
51 51  
52 52 get :institutions, :query => "New"
53 53  
54   - assert_includes assigns(:searches)[:institutions][:results], institution.community
55   - assert_not_includes assigns(:searches)[:institutions][:results], community
  54 + assert_includes assigns(:searches)["gov_user_plugin/institutions"][:results], institution.community
  55 + assert_not_includes assigns(:searches)["gov_user_plugin/institutions"][:results], community
56 56 end
57 57 end
... ...
src/noosfero-spb/gov_user/test/helpers/institution_test_helper.rb
... ... @@ -22,7 +22,7 @@ module InstitutionTestHelper
22 22 end
23 23  
24 24 def self.create_public_institution name, acronym, country, state, city, juridical_nature, gov_p, gov_s, cnpj
25   - institution = PublicInstitution.new
  25 + institution = GovUserPlugin::PublicInstitution.new
26 26 institution.community = institution_community(name, country, state, city)
27 27 institution.name = name
28 28 institution.juridical_nature = juridical_nature
... ... @@ -36,7 +36,7 @@ module InstitutionTestHelper
36 36 end
37 37  
38 38 def self.create_private_institution name, acronym, country, state, city, cnpj
39   - institution = PrivateInstitution.new
  39 + institution = GovUserPlugin::PrivateInstitution.new
40 40 institution.community = institution_community(name, country, state, city)
41 41 institution.name = name
42 42 institution.acronym = acronym
... ... @@ -56,4 +56,4 @@ module InstitutionTestHelper
56 56 institution_community.save
57 57 institution_community
58 58 end
59   -end
60 59 \ No newline at end of file
  60 +end
... ...
src/noosfero-spb/gov_user/test/unit/gov_user_person_test.rb
... ... @@ -1,58 +0,0 @@
1   -# encoding: utf-8
2   -
3   -require File.dirname(__FILE__) + '/../../../../test/test_helper'
4   -require File.dirname(__FILE__) + '/../helpers/plugin_test_helper'
5   -
6   -class SoftwareCommunitiesPluginPersonTest < ActiveSupport::TestCase
7   - include PluginTestHelper
8   -
9   - def setup
10   - @plugin = GovUserPlugin.new
11   -
12   - @user = fast_create(User)
13   - @person = create_person(
14   - "My Name",
15   - "user@email.com",
16   - "123456",
17   - "123456",
18   - "user2@email.com",
19   - "Any State",
20   - "Some City"
21   - )
22   - end
23   -
24   - def teardown
25   - @plugin = nil
26   - end
27   -
28   - should 'be a noosfero plugin' do
29   - assert_kind_of Noosfero::Plugin, @plugin
30   - end
31   -
32   - should 'save person with a valid full name' do
33   - p = Person::new :name=>"S1mpl3 0f N4m3", :identifier=>"simple-name"
34   - p.user = fast_create(:user)
35   -
36   - assert_equal true, p.save
37   - end
38   -
39   - should 'save person with a valid full name with accents' do
40   - name = 'Jônatàs dâ Sîlvã Jösé'
41   - identifier = "jonatas-jose-da-silva"
42   - p = Person::new :name=>name, :identifier=>identifier
43   - p.user = fast_create(:user)
44   -
45   - assert_equal true, p.save
46   - end
47   -
48   - should 'not save person whose name has not capital letter' do
49   - p = Person::new :name=>"simple name"
50   - assert !p.save, _("Name Should begin with a capital letter and no special characters")
51   - end
52   -
53   - should 'not save person whose name has special characters' do
54   - p = Person::new :name=>"Simple N@me"
55   -
56   - assert !p.save , _("Name Should begin with a capital letter and no special characters")
57   - end
58   -end
src/noosfero-spb/gov_user/test/unit/gov_user_plugin/gov_user_person_test.rb 0 → 100644
... ... @@ -0,0 +1,58 @@
  1 +# encoding: utf-8
  2 +
  3 +require File.dirname(__FILE__) + '/../../../../../test/test_helper'
  4 +require File.dirname(__FILE__) + '/../../helpers/plugin_test_helper'
  5 +
  6 +class SoftwareCommunitiesPluginPersonTest < ActiveSupport::TestCase
  7 + include PluginTestHelper
  8 +
  9 + def setup
  10 + @plugin = GovUserPlugin.new
  11 +
  12 + @user = fast_create(User)
  13 + @person = create_person(
  14 + "My Name",
  15 + "user@email.com",
  16 + "123456",
  17 + "123456",
  18 + "user2@email.com",
  19 + "Any State",
  20 + "Some City"
  21 + )
  22 + end
  23 +
  24 + def teardown
  25 + @plugin = nil
  26 + end
  27 +
  28 + should 'be a noosfero plugin' do
  29 + assert_kind_of Noosfero::Plugin, @plugin
  30 + end
  31 +
  32 + should 'save person with a valid full name' do
  33 + p = Person::new :name=>"S1mpl3 0f N4m3", :identifier=>"simple-name"
  34 + p.user = fast_create(:user)
  35 +
  36 + assert_equal true, p.save
  37 + end
  38 +
  39 + should 'save person with a valid full name with accents' do
  40 + name = 'Jônatàs dâ Sîlvã Jösé'
  41 + identifier = "jonatas-jose-da-silva"
  42 + p = Person::new :name=>name, :identifier=>identifier
  43 + p.user = fast_create(:user)
  44 +
  45 + assert_equal true, p.save
  46 + end
  47 +
  48 + should 'not save person whose name has not capital letter' do
  49 + p = Person::new :name=>"simple name"
  50 + assert !p.save, _("Name Should begin with a capital letter and no special characters")
  51 + end
  52 +
  53 + should 'not save person whose name has special characters' do
  54 + p = Person::new :name=>"Simple N@me"
  55 +
  56 + assert !p.save , _("Name Should begin with a capital letter and no special characters")
  57 + end
  58 +end
... ...
src/noosfero-spb/gov_user/test/unit/gov_user_plugin/governmental_power_test.rb 0 → 100644
... ... @@ -0,0 +1,33 @@
  1 +require File.dirname(__FILE__) + '/../../../../../test/test_helper'
  2 +require File.dirname(__FILE__) + '/../../helpers/institution_test_helper'
  3 +
  4 +class GovUserPlugin::GovernmentalPowerTest < ActiveSupport::TestCase
  5 +
  6 + def setup
  7 + @gov_sphere = GovUserPlugin::GovernmentalSphere.create(:name=>"Some Gov Sphere")
  8 + @juridical_nature = GovUserPlugin::JuridicalNature.create(:name => "Autarquia")
  9 + end
  10 +
  11 + def teardown
  12 + GovUserPlugin::Institution.destroy_all
  13 + end
  14 +
  15 + should "get public institutions" do
  16 + inst_name = "Ministerio Publico da Uniao"
  17 + inst_cnpj = "12.345.678/9012-45"
  18 + gov_power = GovUserPlugin::GovernmentalPower.create(:name=>"Some gov power")
  19 + InstitutionTestHelper.create_public_institution(
  20 + inst_name,
  21 + "MPU",
  22 + "BR",
  23 + "DF",
  24 + "Gama",
  25 + @juridical_nature,
  26 + gov_power,
  27 + @gov_sphere,
  28 + inst_cnpj
  29 + )
  30 +
  31 + assert_equal gov_power.institutions.public.count, GovUserPlugin::PublicInstitution.count
  32 + end
  33 +end
... ...
src/noosfero-spb/gov_user/test/unit/gov_user_plugin/institution_test.rb 0 → 100644
... ... @@ -0,0 +1,63 @@
  1 +require File.dirname(__FILE__) + '/../../../../../test/test_helper'
  2 +require File.dirname(__FILE__) + '/../../helpers/plugin_test_helper'
  3 +
  4 +class GovUserPlugin::InstitutionTest < ActiveSupport::TestCase
  5 + include PluginTestHelper
  6 + def setup
  7 + @gov_power = GovUserPlugin::GovernmentalPower.create(:name=>"Some Gov Power")
  8 + @gov_sphere = GovUserPlugin::GovernmentalSphere.create(:name=>"Some Gov Sphere")
  9 + @juridical_nature = GovUserPlugin::JuridicalNature.create(:name => "Autarquia")
  10 +
  11 + @institution = create_public_institution(
  12 + "Ministerio Publico da Uniao",
  13 + "MPU",
  14 + "BR",
  15 + "DF",
  16 + "Gama",
  17 + @juridical_nature,
  18 + @gov_power,
  19 + @gov_sphere,
  20 + "11.222.333/4444-55"
  21 + )
  22 + end
  23 +
  24 + def teardown
  25 + GovUserPlugin::GovernmentalPower.destroy_all
  26 + GovUserPlugin::GovernmentalSphere.destroy_all
  27 + GovUserPlugin::JuridicalNature.destroy_all
  28 + @institution = nil
  29 + end
  30 + should "not save institutions without name" do
  31 + @institution.name = nil
  32 + assert_equal false, @institution.save
  33 + assert_equal true, @institution.errors.full_messages.include?("Name can't be blank")
  34 + end
  35 +
  36 + should "not save if institution has invalid type" do
  37 + invalid_msg = "Type invalid, only public and private institutions are allowed."
  38 + @institution.type = "Other type"
  39 + assert_equal false, @institution.save
  40 + assert_equal true, @institution.errors.full_messages.include?(invalid_msg)
  41 + end
  42 +
  43 + should "not save without country" do
  44 + @institution.community.country = nil
  45 + assert_equal false, @institution.save
  46 + assert_equal true, @institution.errors.full_messages.include?("Country can't be blank")
  47 + end
  48 +
  49 + should "not save without state" do
  50 + @institution.community.state = nil
  51 +
  52 + assert_equal false, @institution.save
  53 + assert_equal true, @institution.errors.full_messages.include?("State can't be blank")
  54 + end
  55 +
  56 + should "not save without city" do
  57 + @institution.community.city = nil
  58 + @institution.community.state = "DF"
  59 +
  60 + assert_equal false, @institution.save
  61 + assert_equal true, @institution.errors.full_messages.include?("City can't be blank")
  62 + end
  63 +end
... ...
src/noosfero-spb/gov_user/test/unit/gov_user_plugin/institutions_block_test.rb 0 → 100644
... ... @@ -0,0 +1,51 @@
  1 +require File.dirname(__FILE__) + '/../../../../../test/test_helper'
  2 +require File.dirname(__FILE__) + '/../../helpers/plugin_test_helper'
  3 +
  4 +class GovUserPlugin::InstitutionsBlockTest < ActiveSupport::TestCase
  5 + include PluginTestHelper
  6 + should 'inherit from Block' do
  7 + assert_kind_of Block, GovUserPlugin::InstitutionsBlock.new
  8 + end
  9 +
  10 + should 'declare its default title' do
  11 + GovUserPlugin::InstitutionsBlock.any_instance.stubs(:profile_count).returns(0)
  12 + assert_not_equal Block.new.default_title, GovUserPlugin::InstitutionsBlock.new.default_title
  13 + end
  14 +
  15 + should 'describe itself' do
  16 + assert_not_equal Block.description, GovUserPlugin::InstitutionsBlock.description
  17 + end
  18 +
  19 + should 'give empty footer on unsupported owner type' do
  20 + block = GovUserPlugin::InstitutionsBlock.new
  21 + block.expects(:owner).returns(1)
  22 + assert_equal '', block.footer
  23 + end
  24 +
  25 + should 'list institutions' do
  26 + user = create_person("Jose_Augusto",
  27 + "jose_augusto@email.com",
  28 + "aaaaaaa",
  29 + "aaaaaaa",
  30 + 'jose@secondary.com',
  31 + "DF",
  32 + "Gama"
  33 + )
  34 +
  35 + institution = create_private_institution(
  36 + "inst name",
  37 + "IN",
  38 + "country",
  39 + "state",
  40 + "city",
  41 + "00.111.222/3333-44"
  42 + )
  43 + institution.community.add_member(user)
  44 +
  45 + block = GovUserPlugin::InstitutionsBlock.new
  46 + block.expects(:owner).at_least_once.returns(user)
  47 +
  48 + assert_equivalent [institution.community], block.profiles
  49 + end
  50 +
  51 +end
... ...
src/noosfero-spb/gov_user/test/unit/gov_user_plugin/juridical_nature_test.rb 0 → 100644
... ... @@ -0,0 +1,23 @@
  1 +require File.dirname(__FILE__) + '/../../../../../test/test_helper'
  2 +require File.dirname(__FILE__) + '/../../helpers/plugin_test_helper'
  3 +
  4 +class GovUserPlugin::JuridicalNatureTest < ActiveSupport::TestCase
  5 +
  6 + include PluginTestHelper
  7 +
  8 + def setup
  9 + @govPower = GovUserPlugin::GovernmentalPower.create(:name=>"Some Gov Power")
  10 + @govSphere = GovUserPlugin::GovernmentalSphere.create(:name=>"Some Gov Sphere")
  11 + end
  12 +
  13 + def teardown
  14 + GovUserPlugin::Institution.destroy_all
  15 + end
  16 +
  17 + should "get public institutions" do
  18 + juridical_nature = GovUserPlugin::JuridicalNature.create(:name => "Autarquia")
  19 + create_public_institution("Ministerio Publico da Uniao", "MPU", "BR", "DF", "Gama", juridical_nature, @govPower, @govSphere, "22.333.444/5555-66")
  20 + create_public_institution("Tribunal Regional da Uniao", "TRU", "BR", "DF", "Brasilia", juridical_nature, @govPower, @govSphere, "22.333.444/5555-77")
  21 + assert juridical_nature.institutions.public.count == GovUserPlugin::PublicInstitution.count
  22 + end
  23 +end
... ...
src/noosfero-spb/gov_user/test/unit/gov_user_plugin/organization_rating_test.rb 0 → 100644
... ... @@ -0,0 +1,44 @@
  1 +require File.dirname(__FILE__) + '/../../../../../test/test_helper'
  2 +require File.dirname(__FILE__) + '/../../helpers/plugin_test_helper'
  3 +
  4 +class GovUserPlugin::OrganizationRatingTest < ActiveSupport::TestCase
  5 + include PluginTestHelper
  6 +
  7 + def setup
  8 + @environment = Environment.default
  9 + @environment.enabled_plugins = ['SoftwareCommunitiesPlugin']
  10 + @environment.save
  11 + end
  12 +
  13 + should "validate institution if there is an institution_id" do
  14 + person = fast_create(Person)
  15 + community = fast_create(Community)
  16 + private_institution = build_private_institution "huehue", "hue", "11.222.333/4444-55"
  17 +
  18 + community_rating = OrganizationRating.new(:person => person, :value => 3, :organization => community, :institution => private_institution)
  19 + assert_equal false, community_rating.valid?
  20 +
  21 + assert_equal true, community_rating.errors[:institution].include?("not found")
  22 +
  23 + private_institution.save
  24 + community_rating.institution = private_institution
  25 +
  26 + assert_equal true, community_rating.valid?
  27 + assert_equal false, community_rating.errors[:institution].include?("not found")
  28 + end
  29 +
  30 + private
  31 +
  32 + def build_private_institution name, corporate_name, cnpj, country="AR"
  33 + community = Community.new :name => name
  34 + community.country = country
  35 +
  36 + institution = GovUserPlugin::PrivateInstitution.new :name=> name
  37 + institution.corporate_name = corporate_name
  38 + institution.cnpj = cnpj
  39 + institution.community = community
  40 +
  41 + institution
  42 + end
  43 +end
  44 +
... ...
src/noosfero-spb/gov_user/test/unit/gov_user_plugin/person_test.rb 0 → 100644
... ... @@ -0,0 +1,43 @@
  1 +require File.dirname(__FILE__) + '/../../../../../test/test_helper'
  2 +require File.dirname(__FILE__) + '/../../helpers/plugin_test_helper'
  3 +
  4 +class SoftwareCommunitiesPluginPersonTest < ActiveSupport::TestCase
  5 + include PluginTestHelper
  6 + def setup
  7 + @plugin = GovUserPlugin.new
  8 +
  9 + @user = fast_create(User)
  10 + @person = create_person(
  11 + "My Name",
  12 + "user@email.com",
  13 + "123456",
  14 + "123456",
  15 + "user@secondaryemail.com",
  16 + "Any State",
  17 + "Some City"
  18 + )
  19 + end
  20 +
  21 + should 'calculate the percentege of person incomplete fields' do
  22 + @person.cell_phone = "76888919"
  23 + @person.contact_phone = "987654321"
  24 +
  25 + assert_equal(67, @plugin.calc_percentage_registration(@person))
  26 +
  27 + @person.comercial_phone = "11223344"
  28 + @person.country = "I dont know"
  29 + @person.state = "I dont know"
  30 + @person.city = "I dont know"
  31 + @person.organization_website = "www.whatever.com"
  32 + @person.image = Image::new :uploaded_data=>fixture_file_upload('/files/rails.png', 'image/png')
  33 + @person.save
  34 +
  35 + assert_equal(100, @plugin.calc_percentage_registration(@person))
  36 + end
  37 +
  38 + should 'return true when the email has not gov.br,jus.br,leg.br or mp.br' do
  39 + @user.secondary_email = "test_email@com.br"
  40 + @user.email = "test_email@net.br"
  41 + assert @user.save
  42 + end
  43 +end
... ...
src/noosfero-spb/gov_user/test/unit/gov_user_plugin/private_institution_test.rb 0 → 100644
... ... @@ -0,0 +1,34 @@
  1 +require File.dirname(__FILE__) + '/../../../../../test/test_helper'
  2 +require File.dirname(__FILE__) + '/../../helpers/plugin_test_helper'
  3 +
  4 +class GovUserPlugin::PrivateInstitutionTest < ActiveSupport::TestCase
  5 + include PluginTestHelper
  6 + def setup
  7 + @institution = create_private_institution(
  8 + "Simple Private Institution",
  9 + "SPI",
  10 + "BR",
  11 + "DF",
  12 + "Gama",
  13 + "00.000.000/0001-00"
  14 + )
  15 + end
  16 +
  17 + def teardown
  18 + @institution = nil
  19 + GovUserPlugin::Institution.destroy_all
  20 + end
  21 +
  22 + should "save without a cnpj" do
  23 + @institution.cnpj = nil
  24 +
  25 + assert @institution.save
  26 + end
  27 +
  28 + should "save without fantasy name" do
  29 + @institution.acronym = nil
  30 + @institution.community.save
  31 +
  32 + assert @institution.save
  33 + end
  34 +end
... ...
src/noosfero-spb/gov_user/test/unit/gov_user_plugin/public_institution_test.rb 0 → 100644
... ... @@ -0,0 +1,68 @@
  1 +require File.dirname(__FILE__) + '/../../../../../test/test_helper'
  2 +require File.dirname(__FILE__) + '/../../helpers/plugin_test_helper'
  3 +
  4 +class GovUserPlugin::PublicInstitutionTest < ActiveSupport::TestCase
  5 + include PluginTestHelper
  6 + def setup
  7 + @gov_power = GovUserPlugin::GovernmentalPower.create(:name=>"Some Gov Power")
  8 + @gov_sphere = GovUserPlugin::GovernmentalSphere.create(:name=>"Some Gov Sphere")
  9 + @juridical_nature = GovUserPlugin::JuridicalNature.create(:name => "Autarquia")
  10 +
  11 + @institution = create_public_institution(
  12 + "Ministerio Publico da Uniao",
  13 + "MPU",
  14 + "BR",
  15 + "DF",
  16 + "Gama",
  17 + @juridical_nature,
  18 + @gov_power,
  19 + @gov_sphere,
  20 + "11.222.333/4444-55"
  21 + )
  22 + end
  23 +
  24 + def teardown
  25 + GovUserPlugin::GovernmentalPower.destroy_all
  26 + GovUserPlugin::GovernmentalSphere.destroy_all
  27 + GovUserPlugin::JuridicalNature.destroy_all
  28 + GovUserPlugin::Institution.destroy_all
  29 + @gov_power = nil
  30 + @gov_sphere = nil
  31 + @juridical_nature = nil
  32 + @institution = nil
  33 + end
  34 +
  35 + should "save without a cnpj" do
  36 + @institution.cnpj = nil
  37 + assert @institution.save
  38 + end
  39 +
  40 + should "save institution without an acronym" do
  41 + @institution.acronym = nil
  42 + assert @institution.save
  43 + end
  44 +
  45 + should "Not save institution without a governmental_power" do
  46 + invalid_msg = "Governmental power can't be blank"
  47 + @institution.governmental_power = nil
  48 +
  49 + assert !@institution.save
  50 + assert @institution.errors.full_messages.include? invalid_msg
  51 + end
  52 +
  53 + should "Not save institution without a governmental_sphere" do
  54 + invalid_msg = "Governmental sphere can't be blank"
  55 + @institution.governmental_sphere = nil
  56 +
  57 + assert !@institution.save
  58 + assert @institution.errors.full_messages.include? invalid_msg
  59 + end
  60 +
  61 + should "not save institution without juridical nature" do
  62 + invalid_msg = "Juridical nature can't be blank"
  63 + @institution.juridical_nature = nil
  64 +
  65 + assert !@institution.save
  66 + assert @institution.errors.full_messages.include? invalid_msg
  67 + end
  68 +end
... ...
src/noosfero-spb/gov_user/test/unit/gov_user_plugin/user_test.rb 0 → 100644
... ... @@ -0,0 +1,99 @@
  1 +require File.dirname(__FILE__) + '/../../../../../test/test_helper'
  2 +require File.dirname(__FILE__) + '/../../helpers/plugin_test_helper'
  3 +
  4 +class UserTest < ActiveSupport::TestCase
  5 + include PluginTestHelper
  6 +
  7 + should 'not save user whose both email and secondary email are the same' do
  8 + user = fast_create(User)
  9 + user.email = "test@email.com"
  10 + user.secondary_email = "test@email.com"
  11 +
  12 + assert !user.save
  13 + end
  14 +
  15 + should 'not save user whose email and secondary email have been taken' do
  16 + user1 = create_default_user
  17 + user2 = fast_create(User)
  18 +
  19 + user2.email = "primary@email.com"
  20 + user2.secondary_email = "secondary@email.com"
  21 + assert !user2.save
  22 + end
  23 +
  24 + should 'not save user whose email has already been used' do
  25 + user1 = create_default_user
  26 + user2 = fast_create(User)
  27 +
  28 + user2.email = "primary@email.com"
  29 + user2.secondary_email = "noosfero@email.com"
  30 + assert !user2.save
  31 + end
  32 +
  33 + should 'not save user whose email has been taken another in users secondary email' do
  34 + user1 = create_default_user
  35 + user2 = fast_create(User)
  36 +
  37 + user2.login = "another-login"
  38 + user2.email = "secondary@email.com"
  39 + user2.secondary_email = "noosfero@email.com"
  40 + assert !user2.save
  41 + end
  42 +
  43 + should 'not save user whose secondary email has been taken used in another users email' do
  44 + user1 = create_default_user
  45 + user2 = fast_create(User)
  46 +
  47 + user2.login = "another-login"
  48 + user2.email = "noosfero@email.com"
  49 + user2.secondary_email = "primary@email.com"
  50 + assert !user2.save
  51 + end
  52 +
  53 + should 'not save user whose secondary email has already been used in another users secondary email' do
  54 + user1 = create_default_user
  55 + user2 = fast_create(User)
  56 +
  57 + user2.login = "another-login"
  58 + user2.email = "noosfero@email.com"
  59 + user2.secondary_email = "secondary@email.com"
  60 + assert !user2.save
  61 + end
  62 +
  63 + should 'not save user whose secondary email is in the wrong format' do
  64 + user = fast_create(User)
  65 + user.email = "test@email.com"
  66 + user.secondary_email = "notarightformat.com"
  67 +
  68 + assert !user.save
  69 +
  70 + user.secondary_email = "not@arightformatcom"
  71 +
  72 + assert !user.save
  73 + end
  74 +
  75 + should 'save more than one user without secondary email' do
  76 + user = fast_create(User)
  77 + user.email = "test@email.com"
  78 + user.secondary_email = ""
  79 + user.save
  80 +
  81 + user2 = fast_create(User)
  82 + user2.email = "test2@email.com"
  83 + user2.secondary_email = ""
  84 + assert user2.save
  85 + end
  86 +
  87 + private
  88 +
  89 + def create_default_user
  90 + user = fast_create(User)
  91 + user.login = "a-login"
  92 + user.email = "primary@email.com"
  93 + user.secondary_email = "secondary@email.com"
  94 + user.save
  95 +
  96 + return user
  97 + end
  98 +
  99 +end
... ...
src/noosfero-spb/gov_user/test/unit/governmental_power_test.rb
... ... @@ -1,33 +0,0 @@
1   -require File.dirname(__FILE__) + '/../../../../test/test_helper'
2   -require File.dirname(__FILE__) + '/../helpers/institution_test_helper'
3   -
4   -class GovernmentalPowerTest < ActiveSupport::TestCase
5   -
6   - def setup
7   - @gov_sphere = GovernmentalSphere.create(:name=>"Some Gov Sphere")
8   - @juridical_nature = JuridicalNature.create(:name => "Autarquia")
9   - end
10   -
11   - def teardown
12   - Institution.destroy_all
13   - end
14   -
15   - should "get public institutions" do
16   - inst_name = "Ministerio Publico da Uniao"
17   - inst_cnpj = "12.345.678/9012-45"
18   - gov_power = GovernmentalPower.create(:name=>"Some gov power")
19   - InstitutionTestHelper.create_public_institution(
20   - inst_name,
21   - "MPU",
22   - "BR",
23   - "DF",
24   - "Gama",
25   - @juridical_nature,
26   - gov_power,
27   - @gov_sphere,
28   - inst_cnpj
29   - )
30   -
31   - assert_equal gov_power.public_institutions.count, PublicInstitution.count
32   - end
33   -end
34 0 \ No newline at end of file
src/noosfero-spb/gov_user/test/unit/institution_test.rb
... ... @@ -1,63 +0,0 @@
1   -require File.dirname(__FILE__) + '/../../../../test/test_helper'
2   -require File.dirname(__FILE__) + '/../helpers/plugin_test_helper'
3   -
4   -class InstitutionTest < ActiveSupport::TestCase
5   - include PluginTestHelper
6   - def setup
7   - @gov_power = GovernmentalPower.create(:name=>"Some Gov Power")
8   - @gov_sphere = GovernmentalSphere.create(:name=>"Some Gov Sphere")
9   - @juridical_nature = JuridicalNature.create(:name => "Autarquia")
10   -
11   - @institution = create_public_institution(
12   - "Ministerio Publico da Uniao",
13   - "MPU",
14   - "BR",
15   - "DF",
16   - "Gama",
17   - @juridical_nature,
18   - @gov_power,
19   - @gov_sphere,
20   - "11.222.333/4444-55"
21   - )
22   - end
23   -
24   - def teardown
25   - GovernmentalPower.destroy_all
26   - GovernmentalSphere.destroy_all
27   - JuridicalNature.destroy_all
28   - @institution = nil
29   - end
30   - should "not save institutions without name" do
31   - @institution.name = nil
32   - assert_equal false, @institution.save
33   - assert_equal true, @institution.errors.full_messages.include?("Name can't be blank")
34   - end
35   -
36   - should "not save if institution has invalid type" do
37   - invalid_msg = "Type invalid, only public and private institutions are allowed."
38   - @institution.type = "Other type"
39   - assert_equal false, @institution.save
40   - assert_equal true, @institution.errors.full_messages.include?(invalid_msg)
41   - end
42   -
43   - should "not save without country" do
44   - @institution.community.country = nil
45   - assert_equal false, @institution.save
46   - assert_equal true, @institution.errors.full_messages.include?("Country can't be blank")
47   - end
48   -
49   - should "not save without state" do
50   - @institution.community.state = nil
51   -
52   - assert_equal false, @institution.save
53   - assert_equal true, @institution.errors.full_messages.include?("State can't be blank")
54   - end
55   -
56   - should "not save without city" do
57   - @institution.community.city = nil
58   - @institution.community.state = "DF"
59   -
60   - assert_equal false, @institution.save
61   - assert_equal true, @institution.errors.full_messages.include?("City can't be blank")
62   - end
63   -end
src/noosfero-spb/gov_user/test/unit/institutions_block_test.rb
... ... @@ -1,51 +0,0 @@
1   -require File.dirname(__FILE__) + '/../../../../test/test_helper'
2   -require File.dirname(__FILE__) + '/../helpers/plugin_test_helper'
3   -
4   -class InstitutionsBlockTest < ActiveSupport::TestCase
5   - include PluginTestHelper
6   - should 'inherit from Block' do
7   - assert_kind_of Block, InstitutionsBlock.new
8   - end
9   -
10   - should 'declare its default title' do
11   - InstitutionsBlock.any_instance.stubs(:profile_count).returns(0)
12   - assert_not_equal Block.new.default_title, InstitutionsBlock.new.default_title
13   - end
14   -
15   - should 'describe itself' do
16   - assert_not_equal Block.description, InstitutionsBlock.description
17   - end
18   -
19   - should 'give empty footer on unsupported owner type' do
20   - block = InstitutionsBlock.new
21   - block.expects(:owner).returns(1)
22   - assert_equal '', block.footer
23   - end
24   -
25   - should 'list institutions' do
26   - user = create_person("Jose_Augusto",
27   - "jose_augusto@email.com",
28   - "aaaaaaa",
29   - "aaaaaaa",
30   - 'jose@secondary.com',
31   - "DF",
32   - "Gama"
33   - )
34   -
35   - institution = create_private_institution(
36   - "inst name",
37   - "IN",
38   - "country",
39   - "state",
40   - "city",
41   - "00.111.222/3333-44"
42   - )
43   - institution.community.add_member(user)
44   -
45   - block = InstitutionsBlock.new
46   - block.expects(:owner).at_least_once.returns(user)
47   -
48   - assert_equivalent [institution.community], block.profiles
49   - end
50   -
51   -end
src/noosfero-spb/gov_user/test/unit/juridical_nature_test.rb
... ... @@ -1,23 +0,0 @@
1   -require File.dirname(__FILE__) + '/../../../../test/test_helper'
2   -require File.dirname(__FILE__) + '/../helpers/plugin_test_helper'
3   -
4   -class JuridicalNatureTest < ActiveSupport::TestCase
5   -
6   - include PluginTestHelper
7   -
8   - def setup
9   - @govPower = GovernmentalPower.create(:name=>"Some Gov Power")
10   - @govSphere = GovernmentalSphere.create(:name=>"Some Gov Sphere")
11   - end
12   -
13   - def teardown
14   - Institution.destroy_all
15   - end
16   -
17   - should "get public institutions" do
18   - juridical_nature = JuridicalNature.create(:name => "Autarquia")
19   - create_public_institution("Ministerio Publico da Uniao", "MPU", "BR", "DF", "Gama", juridical_nature, @govPower, @govSphere, "22.333.444/5555-66")
20   - create_public_institution("Tribunal Regional da Uniao", "TRU", "BR", "DF", "Brasilia", juridical_nature, @govPower, @govSphere, "22.333.444/5555-77")
21   - assert juridical_nature.public_institutions.count == PublicInstitution.count
22   - end
23   -end
src/noosfero-spb/gov_user/test/unit/organization_rating_test.rb
... ... @@ -1,44 +0,0 @@
1   -require File.expand_path(File.dirname(__FILE__)) + '/../../../../test/test_helper'
2   -require File.expand_path(File.dirname(__FILE__)) + '/../helpers/plugin_test_helper'
3   -
4   -class OrganizationRatingTest < ActiveSupport::TestCase
5   - include PluginTestHelper
6   -
7   - def setup
8   - @environment = Environment.default
9   - @environment.enabled_plugins = ['SoftwareCommunitiesPlugin']
10   - @environment.save
11   - end
12   -
13   - should "validate institution if there is an institution_id" do
14   - person = fast_create(Person)
15   - community = fast_create(Community)
16   - private_institution = build_private_institution "huehue", "hue", "11.222.333/4444-55"
17   -
18   - community_rating = OrganizationRating.new(:person => person, :value => 3, :organization => community, :institution => private_institution)
19   - assert_equal false, community_rating.valid?
20   -
21   - assert_equal true, community_rating.errors[:institution].include?("not found")
22   -
23   - private_institution.save
24   - community_rating.institution = private_institution
25   -
26   - assert_equal true, community_rating.valid?
27   - assert_equal false, community_rating.errors[:institution].include?("not found")
28   - end
29   -
30   - private
31   -
32   - def build_private_institution name, corporate_name, cnpj, country="AR"
33   - community = Community.new :name => name
34   - community.country = country
35   -
36   - institution = PrivateInstitution.new :name=> name
37   - institution.corporate_name = corporate_name
38   - institution.cnpj = cnpj
39   - institution.community = community
40   -
41   - institution
42   - end
43   -end
44   -
src/noosfero-spb/gov_user/test/unit/person_test.rb
... ... @@ -1,43 +0,0 @@
1   -require File.dirname(__FILE__) + '/../../../../test/test_helper'
2   -require File.dirname(__FILE__) + '/../helpers/plugin_test_helper'
3   -
4   -class SoftwareCommunitiesPluginPersonTest < ActiveSupport::TestCase
5   - include PluginTestHelper
6   - def setup
7   - @plugin = GovUserPlugin.new
8   -
9   - @user = fast_create(User)
10   - @person = create_person(
11   - "My Name",
12   - "user@email.com",
13   - "123456",
14   - "123456",
15   - "user@secondaryemail.com",
16   - "Any State",
17   - "Some City"
18   - )
19   - end
20   -
21   - should 'calculate the percentege of person incomplete fields' do
22   - @person.cell_phone = "76888919"
23   - @person.contact_phone = "987654321"
24   -
25   - assert_equal(67, @plugin.calc_percentage_registration(@person))
26   -
27   - @person.comercial_phone = "11223344"
28   - @person.country = "I dont know"
29   - @person.state = "I dont know"
30   - @person.city = "I dont know"
31   - @person.organization_website = "www.whatever.com"
32   - @person.image = Image::new :uploaded_data=>fixture_file_upload('/files/rails.png', 'image/png')
33   - @person.save
34   -
35   - assert_equal(100, @plugin.calc_percentage_registration(@person))
36   - end
37   -
38   - should 'return true when the email has not gov.br,jus.br,leg.br or mp.br' do
39   - @user.secondary_email = "test_email@com.br"
40   - @user.email = "test_email@net.br"
41   - assert @user.save
42   - end
43   -end
src/noosfero-spb/gov_user/test/unit/private_institution_test.rb
... ... @@ -1,34 +0,0 @@
1   -require File.dirname(__FILE__) + '/../../../../test/test_helper'
2   -require File.dirname(__FILE__) + '/../helpers/plugin_test_helper'
3   -
4   -class PrivateInstitutionTest < ActiveSupport::TestCase
5   - include PluginTestHelper
6   - def setup
7   - @institution = create_private_institution(
8   - "Simple Private Institution",
9   - "SPI",
10   - "BR",
11   - "DF",
12   - "Gama",
13   - "00.000.000/0001-00"
14   - )
15   - end
16   -
17   - def teardown
18   - @institution = nil
19   - Institution.destroy_all
20   - end
21   -
22   - should "save without a cnpj" do
23   - @institution.cnpj = nil
24   -
25   - assert @institution.save
26   - end
27   -
28   - should "save without fantasy name" do
29   - @institution.acronym = nil
30   - @institution.community.save
31   -
32   - assert @institution.save
33   - end
34   -end
src/noosfero-spb/gov_user/test/unit/public_institution_test.rb
... ... @@ -1,68 +0,0 @@
1   -require File.dirname(__FILE__) + '/../../../../test/test_helper'
2   -require File.dirname(__FILE__) + '/../helpers/plugin_test_helper'
3   -
4   -class PublicInstitutionTest < ActiveSupport::TestCase
5   - include PluginTestHelper
6   - def setup
7   - @gov_power = GovernmentalPower.create(:name=>"Some Gov Power")
8   - @gov_sphere = GovernmentalSphere.create(:name=>"Some Gov Sphere")
9   - @juridical_nature = JuridicalNature.create(:name => "Autarquia")
10   -
11   - @institution = create_public_institution(
12   - "Ministerio Publico da Uniao",
13   - "MPU",
14   - "BR",
15   - "DF",
16   - "Gama",
17   - @juridical_nature,
18   - @gov_power,
19   - @gov_sphere,
20   - "11.222.333/4444-55"
21   - )
22   - end
23   -
24   - def teardown
25   - GovernmentalPower.destroy_all
26   - GovernmentalSphere.destroy_all
27   - JuridicalNature.destroy_all
28   - Institution.destroy_all
29   - @gov_power = nil
30   - @gov_sphere = nil
31   - @juridical_nature = nil
32   - @institution = nil
33   - end
34   -
35   - should "save without a cnpj" do
36   - @institution.cnpj = nil
37   - assert @institution.save
38   - end
39   -
40   - should "save institution without an acronym" do
41   - @institution.acronym = nil
42   - assert @institution.save
43   - end
44   -
45   - should "Not save institution without a governmental_power" do
46   - invalid_msg = "Governmental power can't be blank"
47   - @institution.governmental_power = nil
48   -
49   - assert !@institution.save
50   - assert @institution.errors.full_messages.include? invalid_msg
51   - end
52   -
53   - should "Not save institution without a governmental_sphere" do
54   - invalid_msg = "Governmental sphere can't be blank"
55   - @institution.governmental_sphere = nil
56   -
57   - assert !@institution.save
58   - assert @institution.errors.full_messages.include? invalid_msg
59   - end
60   -
61   - should "not save institution without juridical nature" do
62   - invalid_msg = "Juridical nature can't be blank"
63   - @institution.juridical_nature = nil
64   -
65   - assert !@institution.save
66   - assert @institution.errors.full_messages.include? invalid_msg
67   - end
68   -end
src/noosfero-spb/gov_user/test/unit/user_test.rb
... ... @@ -1,99 +0,0 @@
1   -require File.dirname(__FILE__) + '/../../../../test/test_helper'
2   -require File.dirname(__FILE__) + '/../helpers/plugin_test_helper'
3   -
4   -class UserTest < ActiveSupport::TestCase
5   - include PluginTestHelper
6   -
7   - should 'not save user whose both email and secondary email are the same' do
8   - user = fast_create(User)
9   - user.email = "test@email.com"
10   - user.secondary_email = "test@email.com"
11   -
12   - assert !user.save
13   - end
14   -
15   - should 'not save user whose email and secondary email have been taken' do
16   - user1 = create_default_user
17   - user2 = fast_create(User)
18   -
19   - user2.email = "primary@email.com"
20   - user2.secondary_email = "secondary@email.com"
21   - assert !user2.save
22   - end
23   -
24   - should 'not save user whose email has already been used' do
25   - user1 = create_default_user
26   - user2 = fast_create(User)
27   -
28   - user2.email = "primary@email.com"
29   - user2.secondary_email = "noosfero@email.com"
30   - assert !user2.save
31   - end
32   -
33   - should 'not save user whose email has been taken another in users secondary email' do
34   - user1 = create_default_user
35   - user2 = fast_create(User)
36   -
37   - user2.login = "another-login"
38   - user2.email = "secondary@email.com"
39   - user2.secondary_email = "noosfero@email.com"
40   - assert !user2.save
41   - end
42   -
43   - should 'not save user whose secondary email has been taken used in another users email' do
44   - user1 = create_default_user
45   - user2 = fast_create(User)
46   -
47   - user2.login = "another-login"
48   - user2.email = "noosfero@email.com"
49   - user2.secondary_email = "primary@email.com"
50   - assert !user2.save
51   - end
52   -
53   - should 'not save user whose secondary email has already been used in another users secondary email' do
54   - user1 = create_default_user
55   - user2 = fast_create(User)
56   -
57   - user2.login = "another-login"
58   - user2.email = "noosfero@email.com"
59   - user2.secondary_email = "secondary@email.com"
60   - assert !user2.save
61   - end
62   -
63   - should 'not save user whose secondary email is in the wrong format' do
64   - user = fast_create(User)
65   - user.email = "test@email.com"
66   - user.secondary_email = "notarightformat.com"
67   -
68   - assert !user.save
69   -
70   - user.secondary_email = "not@arightformatcom"
71   -
72   - assert !user.save
73   - end
74   -
75   - should 'save more than one user without secondary email' do
76   - user = fast_create(User)
77   - user.email = "test@email.com"
78   - user.secondary_email = ""
79   - user.save
80   -
81   - user2 = fast_create(User)
82   - user2.email = "test2@email.com"
83   - user2.secondary_email = ""
84   - assert user2.save
85   - end
86   -
87   - private
88   -
89   - def create_default_user
90   - user = fast_create(User)
91   - user.login = "a-login"
92   - user.email = "primary@email.com"
93   - user.secondary_email = "secondary@email.com"
94   - user.save
95   -
96   - return user
97   - end
98   -
99   -end
src/noosfero-spb/gov_user/views/gov_user_plugin/_institution.html.erb
... ... @@ -31,11 +31,11 @@
31 31 <div class='formfield type-radio'>
32 32 <label>
33 33 <%= _("Private Institution") %>
34   - <%= radio_button_tag("institutions[type]" ,"PrivateInstitution", true)%>
  34 + <%= radio_button_tag("institutions[type]" ,"GovUserPlugin::PrivateInstitution", true)%>
35 35 </label>
36 36  
37 37 <label> <%= _("Public Institution") %>
38   - <%= radio_button_tag("institutions[type]", "PublicInstitution") %>
  38 + <%= radio_button_tag("institutions[type]", "GovUserPlugin::PublicInstitution") %>
39 39 </label>
40 40 </div>
41 41 </span>
... ...
src/noosfero-spb/gov_user/views/gov_user_plugin_myprofile/edit_institution.html.erb
... ... @@ -26,12 +26,12 @@
26 26 <span class=''>
27 27 <div class='formfield type-radio'>
28 28 <label> <%= _("Public Institution") %>
29   - <%= radio_button_tag("institutions[type]", "PublicInstitution", (@institution.type == "PublicInstitution" ? true : false)) %>
  29 + <%= radio_button_tag("institutions[type]", "GovUserPlugin::PublicInstitution", (@institution.type == "GovUserPlugin::PublicInstitution" ? true : false)) %>
30 30 </label>
31 31  
32 32 <label>
33 33 <%= _("Private Institution") %>
34   - <%= radio_button_tag("institutions[type]" ,"PrivateInstitution", (@institution.type == "PrivateInstitution" ? true : false))%>
  34 + <%= radio_button_tag("institutions[type]" ,"GovUserPlugin::PrivateInstitution", (@institution.type == "GovUserPlugin::PrivateInstitution" ? true : false))%>
35 35 </label>
36 36 </div>
37 37 </span>
... ... @@ -77,20 +77,20 @@
77 77 <span class='required-field public-institutions-fields'>
78 78 <div class="formfield type-text">
79 79 <%= inst.label("governmental_sphere_id" ,_("Governmental Sphere:"), :class=>"formlabel") %>
80   - <%= inst.select(:governmental_sphere, [[_("Select a Governmental Sphere"), 0]]|GovernmentalSphere.all.map {|s| [s.name, s.id]}, {:selected=>@institution.governmental_power_id})%>
  80 + <%= inst.select(:governmental_sphere, [[_("Select a Governmental Sphere"), 0]]|GovUserPlugin::GovernmentalSphere.all.map {|s| [s.name, s.id]}, {:selected=>@institution.governmental_power_id})%>
81 81 </div>
82 82 </span>
83 83  
84 84 <span class='required-field public-institutions-fields'>
85 85 <div class="formfield type-text">
86 86 <%= inst.label("governmental_power_id" ,_("Governmental Power:"), :class=>"formlabel") %>
87   - <%= inst.select(:governmental_power, [[_("Select a Governmental Power"), 0]]|GovernmentalPower.all.map {|g| [g.name, g.id]}, {:selected=> @institution.governmental_sphere_id})%>
  87 + <%= inst.select(:governmental_power, [[_("Select a Governmental Power"), 0]]|GovUserPlugin::GovernmentalPower.all.map {|g| [g.name, g.id]}, {:selected=> @institution.governmental_sphere_id})%>
88 88 </div>
89 89 </span>
90 90 <span class='required-field public-institutions-fields'>
91 91 <div class="formfield type-text">
92 92 <%= inst.label("juridical_nature_id" ,_("Juridical Nature:"), :class=>"formlabel") %>
93   - <%= inst.select(:juridical_nature, [[_("Select a Juridical Nature"), 0]]|JuridicalNature.all.map {|j| [j.name, j.id]}, {:selected=> @institution.juridical_nature_id})%>
  93 + <%= inst.select(:juridical_nature, [[_("Select a Juridical Nature"), 0]]|GovUserPlugin::JuridicalNature.all.map {|j| [j.name, j.id]}, {:selected=> @institution.juridical_nature_id})%>
94 94 </div>
95 95 </span>
96 96  
... ...
src/noosfero-spb/gov_user/views/profile/_institution_tab.html.erb
... ... @@ -9,7 +9,7 @@
9 9 <%= display_mpog_field(_('Country:'), profile.institution.community, :country, true) %>
10 10 <%= display_mpog_field(_('State:'), profile.institution.community, :state, true) %>
11 11 <%= display_mpog_field(_('City:'), profile.institution.community, :city, true) %>
12   - <% if profile.institution.type == "PrivateInstitution"%>
  12 + <% if profile.institution.type == "GovUserPlugin::PrivateInstitution"%>
13 13 <%= display_mpog_field(_('Fantasy Name:'), profile.institution, :acronym, true) %>
14 14 <% else %>
15 15 <%= display_mpog_field(_('Acronym:'), profile.institution, :acronym, true) %>
... ...