assertEquals($outputEmail, (new GmailCom())->getPrimaryEmail(new Email($inputEmail))); } public function providerGetPrimaryEmail() { return [ ['foo.bar@gmail.com', 'foobar@gmail.com'], ['Foo.Bar@GMAIL.COM', 'foobar@gmail.com'], ['foobar+alias@gmail.com', 'foobar@gmail.com'], ['fo.ob.ar+alias@gmail.com', 'foobar@gmail.com'], ['JaneDoe@googlemail.com', 'janedoe@gmail.com'], ]; } /** * @dataProvider providerIsSupported * * @param string $domain * @param bool $result */ public function testIsSupported(string $domain, bool $result) { $this->assertSame($result, (new GmailCom())->isSupported(new Email('Jane.Doe@' . $domain))); } public function providerIsSupported() { return [ ['gmail.com', true], ['gmail.COM', true], ['google.com', false], ['test.gmailcom', false], ['g.mail.com', false], ['googlemail.com', true], ['GoogleMail.Com', true], ]; } }