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') | ... | ... |