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