Source of file OpauthIdentityTest.php
Size: 2,733 Bytes - Last Modified: 2022-01-13T10:01:33+00:00
/var/www/docs.ssmods.com/process/src/tests/unit/OpauthIdentityTest.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | <?php class OpauthIdentityTest extends SapphireTest { protected $usesDatabase = true; public function setUp() { parent::setUp(); Config::inst()->update('OpauthIdentity', 'member_mapper', array( 'Facebook' => array( 'FirstName' => 'info.first_name', 'Surname' => 'info.last_name', 'Email' => 'info.email', ) )); } public function testFindOrCreateMemberLinkOnMatch() { $member = new Member(array('Email' => 'existing@test.com')); $member->write(); $identity = OpauthIdentity::factory(array( 'auth' => array( 'provider' => 'Facebook', 'uid' => 999, 'info' => array('email' => 'existing@test.com') ) )); $identity->findOrCreateMember(array('linkOnMatch' => false)); $this->assertEquals(0, $identity->MemberID, 'Does not link unless requested'); $identity = OpauthIdentity::factory(array( 'auth' => array( 'provider' => 'Facebook', 'uid' => 999, 'info' => array('email' => 'existing@test.com') ) )); $identity->findOrCreateMember(array('linkOnMatch' => true)); $this->assertEquals( $member->ID, $identity->MemberID, 'Links if requested and email matches' ); $identity = OpauthIdentity::factory(array( 'auth' => array( 'provider' => 'Facebook', 'uid' => 999, 'info' => array('email' => 'new@test.com') ) )); $identity->findOrCreateMember(array('linkOnMatch' => true)); $this->assertEquals(0, $identity->MemberID, 'Does not link if requested but no member found'); } public function testFindOrCreateMemberOverwriteExistingFields() { $member = new Member(array( 'Email' => 'existing@test.com', 'FirstName' => 'Existing', 'Surname' => 'Existing', )); $member->write(); $identity = OpauthIdentity::factory(array( 'auth' => array( 'provider' => 'Facebook', 'uid' => 999, 'info' => array( 'email' => 'existing@test.com', 'first_name' => 'New', 'last_name' => 'New' ) ) )); $member = $identity->findOrCreateMember(array('overwriteExistingFields' => false)); $this->assertEquals( 'Existing', $member->FirstName, 'Does not overwrite unless requested' ); $identity = OpauthIdentity::factory(array( 'auth' => array( 'provider' => 'Facebook', 'uid' => 999, 'info' => array( 'email' => 'existing@test.com', 'first_name' => 'New', 'last_name' => 'New' ) ) )); $member = $identity->findOrCreateMember(array('overwriteExistingFields' => array( 'FirstName' ))); $this->assertEquals( 'New', $member->FirstName, 'Overwrites existing fields if requested' ); $this->assertEquals( 'Existing', $member->Surname, 'Does not overwrite fields if not present in whitelist' ); } } |