Commit d5b832ece8857d381a158a17525f72efe3c2f32a
1 parent
f7932a0d
Exists in
master
and in
29 other branches
ActionItem153: fixing the association of new users to profiles
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1275 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
5 changed files
with
35 additions
and
11 deletions
Show diff stats
app/models/person.rb
app/models/profile.rb
... | ... | @@ -73,12 +73,12 @@ class Profile < ActiveRecord::Base |
73 | 73 | validates_exclusion_of :identifier, :in => RESERVED_IDENTIFIERS |
74 | 74 | validates_uniqueness_of :identifier |
75 | 75 | |
76 | - # creates a new Profile. By default, it is attached to the default | |
77 | - # Environment (see Environment#default), unless you tell it | |
78 | - # otherwise | |
79 | - def initialize(*args) | |
80 | - super(*args) | |
81 | - self.environment ||= Environment.default | |
76 | + before_create :set_default_environment | |
77 | + def set_default_environment | |
78 | + if self.environment.nil? | |
79 | + self.environment = Environment.default | |
80 | + end | |
81 | + true | |
82 | 82 | end |
83 | 83 | |
84 | 84 | # registar callback for creating boxes after the object is created. | ... | ... |
test/test_helper.rb
... | ... | @@ -28,6 +28,8 @@ class Test::Unit::TestCase |
28 | 28 | # Add more helper methods to be used by all tests here... |
29 | 29 | |
30 | 30 | include AuthenticatedTestHelper |
31 | + | |
32 | + fixtures :environments | |
31 | 33 | |
32 | 34 | def self.all_fixtures |
33 | 35 | Dir.glob(File.join(RAILS_ROOT, 'test', 'fixtures', '*.yml')).each do |item| | ... | ... |
test/unit/enterprise_test.rb
... | ... | @@ -35,8 +35,7 @@ class EnterpriseTest < Test::Unit::TestCase |
35 | 35 | end |
36 | 36 | |
37 | 37 | def test_belongs_to_environment_and_has_default |
38 | - p = Enterprise.new | |
39 | - assert_kind_of Environment, p.environment | |
38 | + assert_equal Environment.default, Enterprise.create!(:name => 'my test environment', :identifier => 'mytestenvironment').environment | |
40 | 39 | end |
41 | 40 | |
42 | 41 | def test_cannot_rename | ... | ... |
test/unit/profile_test.rb
... | ... | @@ -34,9 +34,29 @@ class ProfileTest < Test::Unit::TestCase |
34 | 34 | assert_kind_of Array, p.domains |
35 | 35 | end |
36 | 36 | |
37 | - def test_belongs_to_environment_and_has_default | |
38 | - p = Profile.new | |
39 | - assert_kind_of Environment, p.environment | |
37 | + should 'be assigned to default environment if no environment is informed' do | |
38 | + assert_equal Environment.default, Profile.create!(:name => 'my test profile', :identifier => 'mytestprofile').environment | |
39 | + end | |
40 | + | |
41 | + should 'not override environment informed before creation' do | |
42 | + env = Environment.create!(:name => 'My test environment') | |
43 | + p = Profile.create!(:identifier => 'mytestprofile', :name => 'My test profile', :environment_id => env.id) | |
44 | + | |
45 | + assert_equal env, p.environment | |
46 | + end | |
47 | + | |
48 | + should 'be able to set environment after instantiation and before creating' do | |
49 | + env = Environment.create!(:name => 'My test environment') | |
50 | + p = Profile.new(:identifier => 'mytestprofile', :name => 'My test profile') | |
51 | + p.environment = env | |
52 | + p.save! | |
53 | + | |
54 | + p.reload | |
55 | + assert_equal env, p.environment | |
56 | + end | |
57 | + | |
58 | + should 'set default environment for users created' do | |
59 | + assert_equal Environment.default, create_user('mytestuser').person.environment | |
40 | 60 | end |
41 | 61 | |
42 | 62 | def test_cannot_rename | ... | ... |