diff --git a/app/models/domain.rb b/app/models/domain.rb index 9be2e9d..54e36ba 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -19,7 +19,9 @@ class Domain < ActiveRecord::Base # checks validations that could not be expressed using Rails' predefined # validations. In particular: # * name must not start with 'www.' - def validate + validate :no_www + + def no_www if self.name =~ /^www\./ self.errors.add(:name, _('%{fn} must not start with www.').fix_i18n) end diff --git a/test/unit/domain_test.rb b/test/unit/domain_test.rb index 20f6dea..63d56e6 100644 --- a/test/unit/domain_test.rb +++ b/test/unit/domain_test.rb @@ -14,38 +14,38 @@ class DomainTest < ActiveSupport::TestCase end should 'not allow domain without dot' do - domain = Domain.new(:name => 'test') + domain = build(Domain, :name => 'test') domain.valid? assert domain.errors[:name.to_s].present? end should 'allow domains with dot' do - domain = Domain.new(:name => 'test.org') + domain = build(Domain, :name => 'test.org') domain.valid? assert !domain.errors[:name.to_s].present? end should 'not allow domains with upper cased letters' do - domain = Domain.new(:name => 'tEst.org') + domain = build(Domain, :name => 'tEst.org') domain.valid? assert domain.errors[:name.to_s].present? end should 'allow domains with hyphen' do - domain = Domain.new(:name => 'test-domain.org') + domain = build(Domain, :name => 'test-domain.org') domain.valid? assert !domain.errors[:name.to_s].present? end should 'allow domains with underscore' do - domain = Domain.new(:name => 'test_domain.org') + domain = build(Domain, :name => 'test_domain.org') domain.valid? assert !domain.errors[:name.to_s].present? end def test_owner - d = Domain.new(:name => 'example.com') - d.owner = Environment.new(:name => 'Example') + d = build(Domain, :name => 'example.com') + d.owner = build(Environment, :name => 'Example') assert d.save assert_kind_of Environment, d.owner end @@ -59,7 +59,7 @@ class DomainTest < ActiveSupport::TestCase d = Domain.new d.name = 'www.example.net' d.valid? - assert d.errors[:name.to_s].present? + assert d.errors[:name.to_s].present?, "Name should not accept www." d.name = 'example.net' d.valid? @@ -78,9 +78,9 @@ class DomainTest < ActiveSupport::TestCase def test_unique_name Domain.delete_all - assert Domain.create(:name => 'example.net') + assert create(Domain, :name => 'example.net') - d = Domain.new(:name => 'example.net') + d = build(Domain, :name => 'example.net') assert !d.valid? assert d.errors[:name.to_s].present? end @@ -108,12 +108,12 @@ class DomainTest < ActiveSupport::TestCase assert_equal false, Domain.hosting_profile_at('example.com') profile = create_user('hosted_user').person - Domain.create!(:name => 'example.com', :owner => profile) + create(Domain, :name => 'example.com', :owner => profile) assert_equal true, Domain.hosting_profile_at('example.com') end def test_not_report_profile_hosted_for_environment_domains - Domain.create!(:name => 'example.com', :owner => Environment.default) + create(Domain, :name => 'example.com', :owner => Environment.default) assert_equal false, Domain.hosting_profile_at('example.com') end -- libgit2 0.21.2