diff --git a/app/services/contact_details/base.rb b/app/services/contact_details/base.rb index 62d6fb67907fc837ee63e91b9a107350a584a4c1..ebb65f0781c5376303ec4c03ebc5e0d042124b60 100644 --- a/app/services/contact_details/base.rb +++ b/app/services/contact_details/base.rb @@ -2,7 +2,7 @@ class ContactDetails::Base attr_accessor :url, :label def initialize(string) - @string = string + @string = string.to_s prepare_url prepare_label end diff --git a/app/services/contact_details/twitter.rb b/app/services/contact_details/twitter.rb index 3a9a6903813c52a8cbcf1a5b5527f5e90c09b004..b6d48276cec1b715cef01f1c17068ba18f01e2d6 100644 --- a/app/services/contact_details/twitter.rb +++ b/app/services/contact_details/twitter.rb @@ -3,11 +3,7 @@ class ContactDetails::Twitter < ContactDetails::Base DOMAIN = 'twitter.com' protected - - # arnaudlevy - # twitter.com/arnaudlevy - # https://twitter.com/arnaudlevy - # TODO vrais tests + def prepare_url @url = @string @url.remove! DOMAIN if @url.start_with? DOMAIN diff --git a/test/services/contact_details_test.rb b/test/services/contact_details_test.rb new file mode 100644 index 0000000000000000000000000000000000000000..5f1ec176d6906e36e8ef19039c150a979f6c2946 --- /dev/null +++ b/test/services/contact_details_test.rb @@ -0,0 +1,71 @@ +require "test_helper" + +class ContactDetailsTest < ActiveSupport::TestCase + + test "country nil" do + detail = ContactDetails::Country.new nil + assert_equal detail.label, '' + assert_equal detail.url, '' + end + + test "country FR" do + detail = ContactDetails::Country.new 'FR' + assert_equal detail.label, 'France' + assert_equal detail.url, 'FR' + end + + test "email nil" do + detail = ContactDetails::Email.new nil + assert_equal detail.label, '' + assert_equal detail.url, '' + end + + test "email arnaud.levy@noesya.coop" do + detail = ContactDetails::Email.new 'arnaud.levy@noesya.coop' + assert_equal detail.label, 'arnaud.levy@noesya.coop' + assert_equal detail.url, 'mailto:arnaud.levy@noesya.coop' + end + + test "twitter nil" do + detail = ContactDetails::Twitter.new nil + assert_equal detail.label, '' + assert_equal detail.url, '' + end + + test "twitter handle" do + detail = ContactDetails::Twitter.new 'arnaudlevy' + assert_equal detail.label, 'arnaudlevy' + assert_equal detail.url, 'https://twitter.com/arnaudlevy' + end + + test "twitter twitter.com/arnaudlevy" do + detail = ContactDetails::Twitter.new 'twitter.com/arnaudlevy' + assert_equal detail.label, 'arnaudlevy' + assert_equal detail.url, 'https://twitter.com/arnaudlevy' + end + + test "twitter https://twitter.com/arnaudlevy" do + detail = ContactDetails::Twitter.new 'https://twitter.com/arnaudlevy' + assert_equal detail.label, 'arnaudlevy' + assert_equal detail.url, 'https://twitter.com/arnaudlevy' + end + + test "website nil" do + detail = ContactDetails::Website.new nil + assert_equal detail.label, '' + assert_equal detail.url, '' + end + + test "website www.noesya.coop" do + detail = ContactDetails::Website.new 'www.noesya.coop' + assert_equal detail.label, 'www.noesya.coop' + assert_equal detail.url, 'https://www.noesya.coop' + end + + test "website https://www.noesya.coop" do + detail = ContactDetails::Website.new 'https://www.noesya.coop' + assert_equal detail.label, 'www.noesya.coop' + assert_equal detail.url, 'https://www.noesya.coop' + end + +end \ No newline at end of file