From 30e7cd679643b5b5664991205477a03a4cdcec87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20D=C3=BCsterhus?= Date: Mon, 4 Mar 2013 14:45:36 +0100 Subject: [PATCH] Make safeEmail really safe --- src/Faker/Provider/Internet.php | 24 +++++++++++++++++++----- src/Faker/Provider/bg_BG/Internet.php | 1 - src/Faker/Provider/cs_CZ/Internet.php | 1 - src/Faker/Provider/de_DE/Internet.php | 1 - src/Faker/Provider/en_GB/Internet.php | 1 - src/Faker/Provider/fi_FI/Internet.php | 1 - src/Faker/Provider/fr_FR/Internet.php | 1 - src/Faker/Provider/it_IT/Internet.php | 1 - src/Faker/Provider/nl_BE/Internet.php | 1 - src/Faker/Provider/nl_NL/Internet.php | 1 - src/Faker/Provider/pl_PL/Internet.php | 1 - src/Faker/Provider/sk_SK/Internet.php | 1 - 12 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/Faker/Provider/Internet.php b/src/Faker/Provider/Internet.php index 86bdaee9..f8ce37b4 100644 --- a/src/Faker/Provider/Internet.php +++ b/src/Faker/Provider/Internet.php @@ -4,7 +4,6 @@ namespace Faker\Provider; class Internet extends \Faker\Provider\Base { - protected static $safeEmailTld = array('org', 'com', 'net'); protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com'); protected static $tld = array('com', 'com', 'com', 'com', 'com', 'com', 'biz', 'info', 'net', 'org'); @@ -36,9 +35,9 @@ class Internet extends \Faker\Provider\Base /** * @example 'jdoe@example.com' */ - public function safeEmail() + public final function safeEmail() { - return preg_replace('/\s/', '', $this->userName() . '@' . static::safeEmailDomain()); + return preg_replace('/\s/', '', $this->userName() . '@' . $this->safeEmailDomain()); } /** @@ -67,10 +66,25 @@ class Internet extends \Faker\Provider\Base /** * @example 'example.org' + * @param boolean $knownTLD If set to true only domains with a well known TLD (i.e. com, org and net) are returned. */ - public static function safeEmailDomain() + public final function safeEmailDomain($knownTLD = false) { - return 'example.' . static::randomElement(static::$safeEmailTld); + $domains = array( + 'example.com', + 'example.org', + 'example.net' + ); + if (!$knownTLD) { + $domains[] = '*.example'; + $domains[] = '*.test'; + $domains[] = '*.invalid'; + $domains[] = '*.lan'; + } + + $domain = static::randomElement($domains); + + return str_replace('*', $this->domainWord(), $domain); } /** * @example 'jdoe' diff --git a/src/Faker/Provider/bg_BG/Internet.php b/src/Faker/Provider/bg_BG/Internet.php index 0970a46f..4c43a31f 100644 --- a/src/Faker/Provider/bg_BG/Internet.php +++ b/src/Faker/Provider/bg_BG/Internet.php @@ -4,7 +4,6 @@ namespace Faker\Provider\bg_BG; class Internet extends \Faker\Provider\Internet { - protected static $safeEmailTld = array('org', 'com', 'net', 'bg'); protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com', 'mail.bg', 'abv.bg', 'dir.bg'); protected static $tld = array('bg', 'bg', 'bg', 'bg', 'bg', 'bg', 'com', 'biz', 'info', 'net', 'org'); diff --git a/src/Faker/Provider/cs_CZ/Internet.php b/src/Faker/Provider/cs_CZ/Internet.php index 3a247536..22b8f126 100644 --- a/src/Faker/Provider/cs_CZ/Internet.php +++ b/src/Faker/Provider/cs_CZ/Internet.php @@ -4,7 +4,6 @@ namespace Faker\Provider\cs_CZ; class Internet extends \Faker\Provider\Internet { - protected static $safeEmailTld = array('com', 'cz'); protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'seznam.cz', 'atlas.cz', 'centrum.cz', 'email.cz', 'post.cz'); diff --git a/src/Faker/Provider/de_DE/Internet.php b/src/Faker/Provider/de_DE/Internet.php index b06a04e5..dec56605 100644 --- a/src/Faker/Provider/de_DE/Internet.php +++ b/src/Faker/Provider/de_DE/Internet.php @@ -4,7 +4,6 @@ namespace Faker\Provider\de_DE; class Internet extends \Faker\Provider\Internet { - protected static $safeEmailTld = array('com', 'net', 'de', 'de'); protected static $freeEmailDomain = array('web.de', 'gmail.com', 'hotmail.de', 'yahoo.de', 'googlemail.com', 'aol.de', 'gmx.de'); protected static $tld = array('com', 'com', 'com', 'net', 'org', 'de', 'de', 'de'); diff --git a/src/Faker/Provider/en_GB/Internet.php b/src/Faker/Provider/en_GB/Internet.php index 68dc12e4..aa4ae411 100644 --- a/src/Faker/Provider/en_GB/Internet.php +++ b/src/Faker/Provider/en_GB/Internet.php @@ -4,7 +4,6 @@ namespace Faker\Provider\en_GB; class Internet extends \Faker\Provider\Internet { - protected static $safeEmailTld = array('org', 'com', 'net', 'co.uk'); protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com', 'gmail.co.uk', 'yahoo.co.uk', 'hotmail.co.uk'); protected static $tld = array('com', 'com', 'com', 'com', 'com', 'com', 'biz', 'info', 'net', 'org', 'co.uk'); } diff --git a/src/Faker/Provider/fi_FI/Internet.php b/src/Faker/Provider/fi_FI/Internet.php index 2f53e119..58e833ac 100644 --- a/src/Faker/Provider/fi_FI/Internet.php +++ b/src/Faker/Provider/fi_FI/Internet.php @@ -4,7 +4,6 @@ namespace Faker\Provider\fi_FI; class Internet extends \Faker\Provider\Internet { - protected static $safeEmailTld = array('org', 'com', 'net', 'fi'); protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com', 'jippii.fi', 'luukku.com'); protected static $tld = array('com', 'com', 'com', 'com', 'com', 'com', 'biz', 'info', 'net', 'org', 'fi'); } diff --git a/src/Faker/Provider/fr_FR/Internet.php b/src/Faker/Provider/fr_FR/Internet.php index 6ef79e3a..bc661f32 100644 --- a/src/Faker/Provider/fr_FR/Internet.php +++ b/src/Faker/Provider/fr_FR/Internet.php @@ -4,7 +4,6 @@ namespace Faker\Provider\fr_FR; class Internet extends \Faker\Provider\Internet { - protected static $safeEmailTld = array('com', 'net', 'fr', 'fr'); protected static $freeEmailDomain = array('voila.fr', 'gmail.com', 'hotmail.fr', 'yahoo.fr', 'laposte.net', 'free.fr', 'sfr.fr', 'orange.fr', 'bouygtel.fr', 'club-internet.fr', 'dbmail.com', 'live.com', 'ifrance.com', 'noos.fr', 'tele2.fr', 'tiscali.fr', 'wanadoo.fr'); protected static $tld = array('com', 'com', 'com', 'net', 'org', 'fr', 'fr', 'fr'); diff --git a/src/Faker/Provider/it_IT/Internet.php b/src/Faker/Provider/it_IT/Internet.php index 0420bb41..a0288b4a 100644 --- a/src/Faker/Provider/it_IT/Internet.php +++ b/src/Faker/Provider/it_IT/Internet.php @@ -4,7 +4,6 @@ namespace Faker\Provider\it_IT; class Internet extends \Faker\Provider\Internet { - protected static $safeEmailTld = array('org', 'com', 'net', 'it'); protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com', 'email.it', 'libero.it', 'yahoo.it'); protected static $tld = array('com', 'com', 'com', 'net', 'org', 'it', 'it', 'it'); } diff --git a/src/Faker/Provider/nl_BE/Internet.php b/src/Faker/Provider/nl_BE/Internet.php index 7f93bf48..af12dbcb 100644 --- a/src/Faker/Provider/nl_BE/Internet.php +++ b/src/Faker/Provider/nl_BE/Internet.php @@ -4,7 +4,6 @@ namespace Faker\Provider\nl_BE; class Internet extends \Faker\Provider\Internet { - protected static $safeEmailTld = array('com', 'net', 'be', 'be'); protected static $freeEmailDomain = array('gmail.com', 'hotmail.com', 'yahoo.com', 'advalvas.be'); protected static $tld = array('com', 'com', 'com', 'net', 'org', 'be', 'be', 'be'); diff --git a/src/Faker/Provider/nl_NL/Internet.php b/src/Faker/Provider/nl_NL/Internet.php index 24ce7ede..8203b3b8 100644 --- a/src/Faker/Provider/nl_NL/Internet.php +++ b/src/Faker/Provider/nl_NL/Internet.php @@ -4,7 +4,6 @@ namespace Faker\Provider\nl_NL; class Internet extends \Faker\Provider\Internet { - protected static $safeEmailTld = array('com', 'net', 'nl', 'nl'); protected static $freeEmailDomain = array('gmail.com', 'hotmail.nl', 'live.nl', 'yahoo.nl'); protected static $tld = array('com', 'com', 'com', 'net', 'org', 'nl', 'nl', 'nl'); } diff --git a/src/Faker/Provider/pl_PL/Internet.php b/src/Faker/Provider/pl_PL/Internet.php index 2ee01729..cac40255 100644 --- a/src/Faker/Provider/pl_PL/Internet.php +++ b/src/Faker/Provider/pl_PL/Internet.php @@ -4,7 +4,6 @@ namespace Faker\Provider\pl_PL; class Internet extends \Faker\Provider\Internet { - protected static $safeEmailTld = array('com', 'pl'); protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'wp.pl', 'onet.pl', 'interia.pl', 'gazeta.pl'); diff --git a/src/Faker/Provider/sk_SK/Internet.php b/src/Faker/Provider/sk_SK/Internet.php index c02bea35..64459ae5 100644 --- a/src/Faker/Provider/sk_SK/Internet.php +++ b/src/Faker/Provider/sk_SK/Internet.php @@ -4,7 +4,6 @@ namespace Faker\Provider\sk_SK; class Internet extends \Faker\Provider\Internet { - protected static $safeEmailTld = array('com', 'sk'); protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'zoznam.sk', 'atlas.', 'centrum.sk', 'azet.sk', 'post.sk');