diff --git a/app/models/environment.rb b/app/models/environment.rb index d02e9c4..303ab70 100644 --- a/app/models/environment.rb +++ b/app/models/environment.rb @@ -419,7 +419,7 @@ class Environment < ActiveRecord::Base if self.domains(true).empty? 'localhost' else - domain = self.domains.find(:first, :order => 'id').name + domain = (self.domains.find_by_is_default(true) || self.domains.find(:first, :order => 'id')).name email_hostname ? domain : (force_www ? ('www.' + domain) : domain) end end diff --git a/test/unit/environment_test.rb b/test/unit/environment_test.rb index 8e00ba3..1b8f837 100644 --- a/test/unit/environment_test.rb +++ b/test/unit/environment_test.rb @@ -163,7 +163,7 @@ class EnvironmentTest < Test::Unit::TestCase should 'provide a default hostname' do env = Environment.create!(:name => 'test environment') - env.domains << Domain.create(:name => 'example.com') + env.domains << Domain.create(:name => 'example.com', :is_default => true) assert_equal 'example.com', env.default_hostname end @@ -174,16 +174,30 @@ class EnvironmentTest < Test::Unit::TestCase should 'add www when told to force www' do env = Environment.create!(:name => 'test environment', :force_www => true) - env.domains << Domain.create(:name => 'example.com') + env.domains << Domain.create(:name => 'example.com', :is_default => true) assert_equal 'www.example.com', env.default_hostname end should 'not add www when requesting domain for email address' do env = Environment.create!(:name => 'test environment', :force_www => true) - env.domains << Domain.create(:name => 'example.com') + env.domains << Domain.create(:name => 'example.com', :is_default => true) assert_equal 'example.com', env.default_hostname(true) end + should 'use default domain when there is more than one' do + env = Environment.create!(:name => 'test environment') + env.domains << Domain.create(:name => 'example.com', :is_default => false) + env.domains << Domain.create(:name => 'default.com', :is_default => true) + assert_equal 'default.com', env.default_hostname + end + + should 'use first domain when there is no default' do + env = Environment.create!(:name => 'test environment') + env.domains << Domain.create(:name => 'domain1.com', :is_default => false) + env.domains << Domain.create(:name => 'domain2.com', :is_default => false) + assert_equal 'domain1.com', env.default_hostname + end + should 'provide default top URL' do env = Environment.new env.expects(:default_hostname).returns('www.lalala.net') -- libgit2 0.21.2