Commit 1cdb65c9e64ea85c962c1a308bfaa99db0bab85e
1 parent
4054ffc2
Exists in
master
and in
22 other branches
ActionItem1188: better handling of typed URL's
Showing
7 changed files
with
39 additions
and
12 deletions
Show diff stats
app/models/enterprise.rb
| @@ -13,8 +13,9 @@ class Enterprise < Organization | @@ -13,8 +13,9 @@ class Enterprise < Organization | ||
| 13 | settings_items :organization_website, :historic_and_current_context, :activities_short_description, :zip_code, :city, :state, :country | 13 | settings_items :organization_website, :historic_and_current_context, :activities_short_description, :zip_code, :city, :state, :country |
| 14 | 14 | ||
| 15 | before_save do |enterprise| | 15 | before_save do |enterprise| |
| 16 | - enterprise.organization_website = 'http://' + enterprise.organization_website if enterprise.organization_website && enterprise.organization_website !~ /^https?:\/\// | 16 | + enterprise.organization_website = enterprise.maybe_add_http(enterprise.organization_website) |
| 17 | end | 17 | end |
| 18 | + include MaybeAddHttp | ||
| 18 | 19 | ||
| 19 | def business_name | 20 | def business_name |
| 20 | self.nickname | 21 | self.nickname |
app/models/event.rb
| @@ -100,15 +100,6 @@ class Event < Article | @@ -100,15 +100,6 @@ class Event < Article | ||
| 100 | maybe_add_http(self.body[:link]) | 100 | maybe_add_http(self.body[:link]) |
| 101 | end | 101 | end |
| 102 | 102 | ||
| 103 | - protected | ||
| 104 | - | ||
| 105 | - def maybe_add_http(value) | ||
| 106 | - return unless value | ||
| 107 | - if value =~ /https?:\/\// | ||
| 108 | - value | ||
| 109 | - else | ||
| 110 | - 'http://' + value | ||
| 111 | - end | ||
| 112 | - end | 103 | + include MaybeAddHttp |
| 113 | 104 | ||
| 114 | end | 105 | end |
app/models/person.rb
| @@ -86,8 +86,9 @@ class Person < Profile | @@ -86,8 +86,9 @@ class Person < Profile | ||
| 86 | before_save do |person| | 86 | before_save do |person| |
| 87 | person.custom_formation = nil if (! person.formation.nil? && person.formation != 'Others') | 87 | person.custom_formation = nil if (! person.formation.nil? && person.formation != 'Others') |
| 88 | person.custom_area_of_study = nil if (! person.area_of_study.nil? && person.area_of_study != 'Others') | 88 | person.custom_area_of_study = nil if (! person.area_of_study.nil? && person.area_of_study != 'Others') |
| 89 | - person.organization_website = 'http://' + person.organization_website if person.organization_website && person.organization_website !~ /^https?:\/\// | 89 | + person.organization_website = person.maybe_add_http(person.organization_website) |
| 90 | end | 90 | end |
| 91 | + include MaybeAddHttp | ||
| 91 | 92 | ||
| 92 | def active_fields | 93 | def active_fields |
| 93 | environment ? environment.active_person_fields : [] | 94 | environment ? environment.active_person_fields : [] |
test/unit/enterprise_test.rb
| @@ -315,6 +315,13 @@ class EnterpriseTest < Test::Unit::TestCase | @@ -315,6 +315,13 @@ class EnterpriseTest < Test::Unit::TestCase | ||
| 315 | assert_equal 'http://website.without.http', p.organization_website | 315 | assert_equal 'http://website.without.http', p.organization_website |
| 316 | end | 316 | end |
| 317 | 317 | ||
| 318 | + should 'save not add http to empty organization_website' do | ||
| 319 | + p = Enterprise.new(:name => 'test_ent', :identifier => 'test_ent') | ||
| 320 | + p.organization_website = '' | ||
| 321 | + p.save! | ||
| 322 | + assert_equal '', p.organization_website | ||
| 323 | + end | ||
| 324 | + | ||
| 318 | should 'save organization_website as typed if has http' do | 325 | should 'save organization_website as typed if has http' do |
| 319 | p = Enterprise.new(:name => 'test_ent', :identifier => 'test_ent') | 326 | p = Enterprise.new(:name => 'test_ent', :identifier => 'test_ent') |
| 320 | p.organization_website = 'http://website.with.http' | 327 | p.organization_website = 'http://website.with.http' |
test/unit/event_test.rb
| @@ -155,6 +155,14 @@ class EventTest < ActiveSupport::TestCase | @@ -155,6 +155,14 @@ class EventTest < ActiveSupport::TestCase | ||
| 155 | assert_equal 'http://www.gnu.org', a.link | 155 | assert_equal 'http://www.gnu.org', a.link |
| 156 | end | 156 | end |
| 157 | 157 | ||
| 158 | + should 'not add http:// to empty link' do | ||
| 159 | + a = Event.new | ||
| 160 | + a.body[:link] = '' | ||
| 161 | + assert_equal '', a.link | ||
| 162 | + a.body[:link] = nil | ||
| 163 | + assert_equal '', a.link | ||
| 164 | + end | ||
| 165 | + | ||
| 158 | should 'not escape HTML in description' do | 166 | should 'not escape HTML in description' do |
| 159 | a = Event.new(:description => '<p>a paragraph of text</p>', :link => 'www.gnu.org') | 167 | a = Event.new(:description => '<p>a paragraph of text</p>', :link => 'www.gnu.org') |
| 160 | 168 |
test/unit/person_test.rb
| @@ -536,6 +536,13 @@ class PersonTest < Test::Unit::TestCase | @@ -536,6 +536,13 @@ class PersonTest < Test::Unit::TestCase | ||
| 536 | assert_equal 'http://website.without.http', p.organization_website | 536 | assert_equal 'http://website.without.http', p.organization_website |
| 537 | end | 537 | end |
| 538 | 538 | ||
| 539 | + should 'not add protocol for empty organization website' do | ||
| 540 | + p = create_user('person_test').person | ||
| 541 | + p.organization_website = '' | ||
| 542 | + p.save | ||
| 543 | + assert_equal '', p.organization_website | ||
| 544 | + end | ||
| 545 | + | ||
| 539 | should 'save organization_website as typed if has http' do | 546 | should 'save organization_website as typed if has http' do |
| 540 | p = create_user('person_test').person | 547 | p = create_user('person_test').person |
| 541 | p.organization_website = 'http://website.with.http' | 548 | p.organization_website = 'http://website.with.http' |