From 7bfd541973e16f3f7e040bb7e0542ad792c6715e Mon Sep 17 00:00:00 2001 From: bkrukowski Date: Sat, 10 Sep 2016 12:15:37 +0200 Subject: [PATCH] Support for outlook.com --- README.md | 1 + src/Gordianus.php | 3 ++ src/Services/OutlookCom.php | 21 ++++++++++++ tests/GordianusTest.php | 1 + tests/Services/OutlookComTest.php | 53 +++++++++++++++++++++++++++++++ 5 files changed, 79 insertions(+) create mode 100644 src/Services/OutlookCom.php create mode 100644 tests/Services/OutlookComTest.php diff --git a/README.md b/README.md index 9712bce..ca3b221 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ Gordianus clears aliases from email address. Email `John.Doe+alias@gmail.com` wi * [gmail.com](https://gmail.com) * [tlen.pl](http://tlen.pl) * [33mail.com](https://www.33mail.com) +* [outlook.com](http://outlook.com) ## Usage diff --git a/src/Gordianus.php b/src/Gordianus.php index 3cf2e7a..7307ccb 100644 --- a/src/Gordianus.php +++ b/src/Gordianus.php @@ -3,6 +3,7 @@ namespace bkrukowski\Gordianus; use bkrukowski\Gordianus\Services\GmailCom; +use bkrukowski\Gordianus\Services\OutlookCom; use bkrukowski\Gordianus\Services\ServiceInterface; use bkrukowski\Gordianus\Services\TlenPl; use bkrukowski\Gordianus\Services\Www33MailCom; @@ -12,6 +13,7 @@ class Gordianus const SERVICE_GMAIL_COM = GmailCom::class; const SERVICE_TLEN_PL = TlenPl::class; const SERVICE_WWW_33MAIL_COM = Www33MailCom::class; + const SERVICE_OUTLOOK_COM = OutlookCom::class; /** * Constant ALL_SERVICES can contain different values depends on API version @@ -20,6 +22,7 @@ class Gordianus self::SERVICE_GMAIL_COM, self::SERVICE_TLEN_PL, self::SERVICE_WWW_33MAIL_COM, + self::SERVICE_OUTLOOK_COM, ]; private $services; diff --git a/src/Services/OutlookCom.php b/src/Services/OutlookCom.php new file mode 100644 index 0000000..5cc9668 --- /dev/null +++ b/src/Services/OutlookCom.php @@ -0,0 +1,21 @@ +assertSame($result, (new OutlookCom())->isDomainSupported($domain)); + } + + public function providerIsDomainSupported() + { + return [ + ['outlook.com', true], + ['Outlook.Com', true], + ['hotmail.com', true], + ['HotMail.COM', true], + ['gmail.com', false], + ['tlen.pl', false], + ]; + } + + /** + * @dataProvider providerGetPrimaryEmail + * + * @param string $inputEmail + * @param string $expectedEmail + */ + public function testGetPrimaryEmail(string $inputEmail, string $expectedEmail) + { + $this->assertSame($expectedEmail, (new OutlookCom())->getPrimaryEmail($inputEmail)); + } + + public function providerGetPrimaryEmail() + { + return [ + ['janedoe@outlook.com', 'janedoe@outlook.com'], + ['jane.doe@outlook.com', 'jane.doe@outlook.com'], + ['Jane.Doe@Outlook.Com', 'jane.doe@outlook.com'], + ['Jane.Doe+alias@OUTLOOK.COM', 'jane.doe@outlook.com'], + ['Jane.Doe+Hotmail@hotmail.com', 'jane.doe@hotmail.com'], + ]; + } +} \ No newline at end of file