CrystalEmail/spec/CrystalEmail_spec.cr

49 lines
2.3 KiB
Crystal

require "./spec_helper"
require "../src/CrystalEmail"
describe CrystalEmail do
it "works" do
CrystalEmail::Rfc5322.validates?("toto@tata").should eq(true)
CrystalEmail::Rfc5322.validates?("toto@tata.tata").should eq(true)
CrystalEmail::Rfc5322.validates?("a.b@dom").should eq(true)
CrystalEmail::Rfc5322.validates?("a.b.c@dom.ex.fe").should eq(true)
CrystalEmail::Rfc5322.validates?("-@x").should eq(true)
CrystalEmail::Rfc5322.validates?("u@1.1.1.1").should eq(true)
CrystalEmail::Rfc5322.validates?("u@a-a").should eq(true)
end
it "does not works" do
CrystalEmail::Rfc5322.validates?("toto@").should eq(false) # no domain
CrystalEmail::Rfc5322.validates?("@tata.tata").should eq(false) # no user
CrystalEmail::Rfc5322.validates?("a.b.dom").should eq(false) # no @
CrystalEmail::Rfc5322.validates?("a.b.c@dom.ex.1").should eq(false) # first dom has to begin with a alpha
CrystalEmail::Rfc5322.validates?("u@256.1.1.1").should eq(false) # not a valid ip
CrystalEmail::Rfc5322.validates?("u@-a").should eq(false) # not a valid dom
CrystalEmail::Rfc5322.validates?("u@-a.a").should eq(false) # not a valid dom
end
it "test public" do
CrystalEmail::Rfc1123::Public.validates?("toto.toto.to").should eq(true)
CrystalEmail::Rfc1123::Public.validates?("toto.to").should eq(true)
CrystalEmail::Rfc1123::Public.validates?("toto").should eq(false)
CrystalEmail::Rfc1123::Public.validates?("toto.t").should eq(false)
CrystalEmail::Rfc1123::Public.validates?("toto.toto.t").should eq(false)
CrystalEmail::Rfc1123::Public.validates?("1.1.1.1").should eq(false)
CrystalEmail::Rfc5322::Public.validates?("toto@toto.to").should eq(true)
CrystalEmail::Rfc5322::Public.validates?("toto@toto").should eq(false)
CrystalEmail::Rfc5322::Public.validates?("toto@1.1.1.1").should eq(false)
end
it "test string helpers" do
("*".is_domain?).should eq(false)
("toto.toto".is_domain?).should eq(true)
("toto".is_public_domain?).should eq(false)
("toto.toto".is_public_domain?).should eq(true)
("toto".is_email?).should eq(false)
("toto@toto.toto".is_email?).should eq(true)
("toto@toto".is_public_email?).should eq(false)
("toto@toto.toto".is_public_email?).should eq(true)
end
end