Commit bec83af88140bd73813895b4d7e5bd2011ce3481
1 parent
00d55339
Exists in
master
and in
29 other branches
ActionItem1159: fixing Environment#default_hostname
It must honor the default domain for that given environment.
Showing
2 changed files
with
18 additions
and
4 deletions
Show diff stats
app/models/environment.rb
@@ -419,7 +419,7 @@ class Environment < ActiveRecord::Base | @@ -419,7 +419,7 @@ class Environment < ActiveRecord::Base | ||
419 | if self.domains(true).empty? | 419 | if self.domains(true).empty? |
420 | 'localhost' | 420 | 'localhost' |
421 | else | 421 | else |
422 | - domain = self.domains.find(:first, :order => 'id').name | 422 | + domain = (self.domains.find_by_is_default(true) || self.domains.find(:first, :order => 'id')).name |
423 | email_hostname ? domain : (force_www ? ('www.' + domain) : domain) | 423 | email_hostname ? domain : (force_www ? ('www.' + domain) : domain) |
424 | end | 424 | end |
425 | end | 425 | end |
test/unit/environment_test.rb
@@ -163,7 +163,7 @@ class EnvironmentTest < Test::Unit::TestCase | @@ -163,7 +163,7 @@ class EnvironmentTest < Test::Unit::TestCase | ||
163 | 163 | ||
164 | should 'provide a default hostname' do | 164 | should 'provide a default hostname' do |
165 | env = Environment.create!(:name => 'test environment') | 165 | env = Environment.create!(:name => 'test environment') |
166 | - env.domains << Domain.create(:name => 'example.com') | 166 | + env.domains << Domain.create(:name => 'example.com', :is_default => true) |
167 | assert_equal 'example.com', env.default_hostname | 167 | assert_equal 'example.com', env.default_hostname |
168 | end | 168 | end |
169 | 169 | ||
@@ -174,16 +174,30 @@ class EnvironmentTest < Test::Unit::TestCase | @@ -174,16 +174,30 @@ class EnvironmentTest < Test::Unit::TestCase | ||
174 | 174 | ||
175 | should 'add www when told to force www' do | 175 | should 'add www when told to force www' do |
176 | env = Environment.create!(:name => 'test environment', :force_www => true) | 176 | env = Environment.create!(:name => 'test environment', :force_www => true) |
177 | - env.domains << Domain.create(:name => 'example.com') | 177 | + env.domains << Domain.create(:name => 'example.com', :is_default => true) |
178 | assert_equal 'www.example.com', env.default_hostname | 178 | assert_equal 'www.example.com', env.default_hostname |
179 | end | 179 | end |
180 | 180 | ||
181 | should 'not add www when requesting domain for email address' do | 181 | should 'not add www when requesting domain for email address' do |
182 | env = Environment.create!(:name => 'test environment', :force_www => true) | 182 | env = Environment.create!(:name => 'test environment', :force_www => true) |
183 | - env.domains << Domain.create(:name => 'example.com') | 183 | + env.domains << Domain.create(:name => 'example.com', :is_default => true) |
184 | assert_equal 'example.com', env.default_hostname(true) | 184 | assert_equal 'example.com', env.default_hostname(true) |
185 | end | 185 | end |
186 | 186 | ||
187 | + should 'use default domain when there is more than one' do | ||
188 | + env = Environment.create!(:name => 'test environment') | ||
189 | + env.domains << Domain.create(:name => 'example.com', :is_default => false) | ||
190 | + env.domains << Domain.create(:name => 'default.com', :is_default => true) | ||
191 | + assert_equal 'default.com', env.default_hostname | ||
192 | + end | ||
193 | + | ||
194 | + should 'use first domain when there is no default' do | ||
195 | + env = Environment.create!(:name => 'test environment') | ||
196 | + env.domains << Domain.create(:name => 'domain1.com', :is_default => false) | ||
197 | + env.domains << Domain.create(:name => 'domain2.com', :is_default => false) | ||
198 | + assert_equal 'domain1.com', env.default_hostname | ||
199 | + end | ||
200 | + | ||
187 | should 'provide default top URL' do | 201 | should 'provide default top URL' do |
188 | env = Environment.new | 202 | env = Environment.new |
189 | env.expects(:default_hostname).returns('www.lalala.net') | 203 | env.expects(:default_hostname).returns('www.lalala.net') |