X-Git-Url: https://gitweb.michael.orlitzky.com/?p=email-validator.git;a=blobdiff_plain;f=src%2FEmailAddress.hs;h=436d3f5c0e83dbd513fc0aa53f5186ab96e4e9f9;hp=88feafd59fb10f115578858e6a70f2fc9411d77b;hb=eae92cebe7fab4afc5c7de377ec30ec348ef09ad;hpb=b145be12d1587d37fc02ab6d12cc01b2506cfd25 diff --git a/src/EmailAddress.hs b/src/EmailAddress.hs index 88feafd..436d3f5 100644 --- a/src/EmailAddress.hs +++ b/src/EmailAddress.hs @@ -1,8 +1,13 @@ module EmailAddress where -import qualified Data.ByteString as BS -import qualified Data.ByteString.UTF8 as BSU +import qualified Data.ByteString.Char8 as BS ( + ByteString, + break, + empty, + length, + pack, + tail) import Text.Email.Validate (isValid) import Test.HUnit (assertEqual) import Test.Framework (Test, testGroup) @@ -16,9 +21,9 @@ import Text.Regex.PCRE.Light ( utf8 ) -type Address = BSU.ByteString -type LocalPart = BSU.ByteString -type DomainPart = BSU.ByteString +type Address = BS.ByteString +type LocalPart = BS.ByteString +type DomainPart = BS.ByteString @@ -28,7 +33,7 @@ parts address = (before, after) where break_func = (== '@') - (before, rest) = BSU.break break_func address + (before, rest) = BS.break break_func address after = if rest == BS.empty then BS.empty @@ -38,7 +43,7 @@ parts address = -- | Check that the lengths of the local/domain parts are within spec. validate_length :: Address -> Bool validate_length address = - (BSU.length localpart <= 64) && (BSU.length domain <= 255) + (BS.length localpart <= 64) && (BS.length domain <= 255) where (localpart, domain) = parts address @@ -51,7 +56,7 @@ validate_regex address = _ -> True where regex_str = "(\\w+)([\\w\\-\\.]*)@(([a-z0-9\\-]+\\.)+)[a-z]{2,4}$" - regex_bs = BSU.fromString regex_str + regex_bs = BS.pack regex_str regex = compile regex_bs [anchored, caseless, dollar_endonly, utf8] matches = match regex address [] @@ -70,7 +75,7 @@ validate_syntax rfc5322 address = -- HUnit tests good_addresses :: [Address] good_addresses = - map BSU.fromString [ + map BS.pack [ "phil@hotmail.com", "philq23562@hotmail.com", "gsdfg22-2_22@hot-mail.com", @@ -80,9 +85,9 @@ good_addresses = bad_addresses :: [Address] bad_addresses = - map BSU.fromString [ --- Bad, but not caught by email-validate-1.0.0. --- "badunderscore@dom_ain.com", + map BS.pack [ + -- Bad, but not caught by email-validate-0.0.1. + -- "badunderscore@dom_ain.com", "(fail)@domain.com", "no spaces@domain.com", ".beginswith@a-dot.com", @@ -96,7 +101,7 @@ bad_addresses = unsupported_addresses :: [Address] unsupported_addresses = - map BSU.fromString [ + map BS.pack [ "ok!char@domain.com", "ok#char@domain.com", "ok$char@domain.com",