Commit bec83af88140bd73813895b4d7e5bd2011ce3481
1 parent
00d55339
Exists in
master
and in
22 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 | 419 | if self.domains(true).empty? |
| 420 | 420 | 'localhost' |
| 421 | 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 | 423 | email_hostname ? domain : (force_www ? ('www.' + domain) : domain) |
| 424 | 424 | end |
| 425 | 425 | end | ... | ... |
test/unit/environment_test.rb
| ... | ... | @@ -163,7 +163,7 @@ class EnvironmentTest < Test::Unit::TestCase |
| 163 | 163 | |
| 164 | 164 | should 'provide a default hostname' do |
| 165 | 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 | 167 | assert_equal 'example.com', env.default_hostname |
| 168 | 168 | end |
| 169 | 169 | |
| ... | ... | @@ -174,16 +174,30 @@ class EnvironmentTest < Test::Unit::TestCase |
| 174 | 174 | |
| 175 | 175 | should 'add www when told to force www' do |
| 176 | 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 | 178 | assert_equal 'www.example.com', env.default_hostname |
| 179 | 179 | end |
| 180 | 180 | |
| 181 | 181 | should 'not add www when requesting domain for email address' do |
| 182 | 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 | 184 | assert_equal 'example.com', env.default_hostname(true) |
| 185 | 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 | 201 | should 'provide default top URL' do |
| 188 | 202 | env = Environment.new |
| 189 | 203 | env.expects(:default_hostname).returns('www.lalala.net') | ... | ... |