From 014ac44299b51921e20c8ea7d7d41cd1a33a08d2 Mon Sep 17 00:00:00 2001 From: Daniela Soares Feitosa Date: Fri, 19 Sep 2008 20:20:51 -0300 Subject: [PATCH] ActionItem703: removing www from email address --- app/models/environment.rb | 4 ++-- app/models/person.rb | 2 +- test/functional/mailconf_controller_test.rb | 18 ++++++++++++++++++ test/unit/environment_test.rb | 6 ++++++ test/unit/person_test.rb | 10 ++++++++++ 5 files changed, 37 insertions(+), 3 deletions(-) diff --git a/app/models/environment.rb b/app/models/environment.rb index 841e492..2ac4a3d 100644 --- a/app/models/environment.rb +++ b/app/models/environment.rb @@ -274,12 +274,12 @@ class Environment < ActiveRecord::Base # # If #force_www is true, adds 'www.' at the beginning of the hostname. If the # environment has not associated domains, returns 'localhost'. - def default_hostname + def default_hostname(email_hostname = false) if self.domains(true).empty? 'localhost' else domain = self.domains.find(:first, :order => 'id').name - force_www ? ('www.' + domain) : domain + email_hostname ? domain : (force_www ? ('www.' + domain) : domain) end end diff --git a/app/models/person.rb b/app/models/person.rb index ce28780..cff5598 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -98,7 +98,7 @@ class Person < Profile def email_addresses # TODO for now, only one e-mail address - ['%s@%s' % [self.identifier, self.environment.default_hostname ] ] + ['%s@%s' % [self.identifier, self.environment.default_hostname(true) ] ] end def display_info_to?(user) diff --git a/test/functional/mailconf_controller_test.rb b/test/functional/mailconf_controller_test.rb index 62a0c02..2846ad6 100644 --- a/test/functional/mailconf_controller_test.rb +++ b/test/functional/mailconf_controller_test.rb @@ -74,6 +74,24 @@ class MailconfControllerTest < Test::Unit::TestCase assert_tag :tag => 'input', :attributes => { :name => 'user[enable_email]', :type => 'hidden', :value => '0' } end + should 'not display www in email address when force_www=true' do + login_as('ze') + env = Environment.default + env.force_www = true + env.save! + get :index, :profile => 'ze' + assert_tag :tag => 'label', :attributes => { :for => 'user_enable_email' }, :content => /ze@colivre.net/ + end + + should 'not display www in email address when force_www=false' do + login_as('ze') + env = Environment.default + env.force_www = false + env.save! + get :index, :profile => 'ze' + assert_tag :tag => 'label', :attributes => { :for => 'user_enable_email' }, :content => /ze@colivre.net/ + end + should 'save mail enable/disable as true' do login_as('ze') post :save, :profile => 'ze', :user => { :enable_email => '1' } diff --git a/test/unit/environment_test.rb b/test/unit/environment_test.rb index 856ede0..b73e1a6 100644 --- a/test/unit/environment_test.rb +++ b/test/unit/environment_test.rb @@ -178,6 +178,12 @@ class EnvironmentTest < Test::Unit::TestCase 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') + assert_equal 'example.com', env.default_hostname(true) + end + should 'provide default top URL' do env = Environment.new env.expects(:default_hostname).returns('www.lalala.net') diff --git a/test/unit/person_test.rb b/test/unit/person_test.rb index 1b1a7cb..4a21b92 100644 --- a/test/unit/person_test.rb +++ b/test/unit/person_test.rb @@ -280,6 +280,16 @@ class PersonTest < Test::Unit::TestCase assert_equal ['testuser@somedomain.com'], person.email_addresses end + should 'not show www in e-mail addresses when force_www=true' do + env = Environment.create!(:name => 'sample env', :domains => [Domain.new(:name => 'somedomain.com')]) + env.force_www = true + env.save + person = Person.new(:identifier => 'testuser') + person.expects(:environment).returns(env) + + assert_equal ['testuser@somedomain.com'], person.email_addresses + end + should 'show profile info to friend' do person = create_user('test_user').person person.public_profile = false -- libgit2 0.21.2