/** * @depends testConstructWithFieldsArgument */ public function testSetFieldValue() { $fieldsValues = new FieldsValues(['field1', 'field2' => 'value2', 'field3']); // Change value $fieldsValues->fieldValue('field2', '2value'); $this->assertEquals(['field2' => '2value'], $fieldsValues->getFieldsValues()); // Set value, when field was empty $fieldsValues->fieldValue('field3', 'value3'); $this->assertEquals(['field2' => '2value', 'field3' => 'value3'], $fieldsValues->getFieldsValues()); // Add new field $fieldsValues->fieldValue('field4', 'value4'); $this->assertEquals(['field2' => '2value', 'field3' => 'value3', 'field4' => 'value4'], $fieldsValues->getFieldsValues()); }
public function testLazyLoadGet() { $constructorArgs = [FieldsValues::construct([ExtractorInterface::FIELD_UNIQUE_ID => 123, ExtractorInterface::FIELD_USERNAME]), NormalizersMap::construct([ExtractorInterface::FIELD_UNIQUE_ID => ExtractorInterface::FIELD_UNIQUE_ID])->method(ExtractorInterface::FIELD_USERNAME, 'username'), LoadersMap::construct(['id' => [ExtractorInterface::FIELD_UNIQUE_ID], 'profile' => [ExtractorInterface::FIELD_USERNAME]])]; $profileData = ['data' => ['nickname' => 'johnnydonny']]; $extractor = $this->getMock('\\OAuth\\UserData\\Extractor\\LazyExtractor', ['idLoader', 'uniqueIdNormalizer', 'profileLoader', 'usernameNormalizer'], $constructorArgs); $extractor->expects($this->never())->method('idLoader'); $extractor->expects($this->never())->method('uniqueIdNormalizer'); $extractor->expects($this->once())->method('profileLoader')->with()->willReturn($profileData); $extractor->expects($this->once())->method('usernameNormalizer')->with($profileData)->willReturn($profileData['data']['nickname']); /** * @var \OAuth\UserData\Extractor\LazyExtractor $extractor */ $this->assertEquals(123, $extractor->getUniqueId()); // prefetched field, does not trigger loader and normalizer $this->assertEquals('johnnydonny', $extractor->getUsername()); // triggers the loader and the normalizer $this->assertEquals('johnnydonny', $extractor->getUsername()); // does not trigger them again }
/** * Constructor */ public function __construct() { parent::__construct(FieldsValues::construct([self::FIELD_UNIQUE_ID, self::FIELD_USERNAME, self::FIELD_FIRST_NAME, self::FIELD_LAST_NAME, self::FIELD_FULL_NAME, self::FIELD_EMAIL, self::FIELD_PROFILE_URL, self::FIELD_IMAGE_URL, self::FIELD_VERIFIED_EMAIL, self::FIELD_EXTRA]), self::getDefaultNormalizersMap()->add([self::FIELD_UNIQUE_ID => 'id', self::FIELD_USERNAME => 'name', self::FIELD_FIRST_NAME => 'given_name', self::FIELD_LAST_NAME => 'family_name', self::FIELD_FULL_NAME => 'name', self::FIELD_EMAIL => 'email', self::FIELD_IMAGE_URL => 'picture', self::FIELD_VERIFIED_EMAIL => ['verified_email', false]])); }
public function testSaveImage() { $imagePathToSave = __DIR__ . '/' . uniqid() . '.png'; $imageUrl = 'http://upload.wikimedia.org/wikipedia/commons/3/31/Red-dot-5px.png'; // $imageRawBase64 = base64_encode(file_get_contents($imageUrl)); $imageRawBase64 = 'iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=='; if (!is_writable(dirname($imagePathToSave))) { $this->markTestSkipped('Directory not writable'); } /** * @var \OAuth\Common\Service\ServiceInterface|\PHPUnit_Framework_MockObject_MockObject $service */ $service = $this->getMock('\\OAuth\\Common\\Service\\AbstractService', ['httpRequest', 'request', 'getAuthorizationUri'], [], '', false); $service->expects($this->any())->method('httpRequest')->willReturn(base64_decode($imageRawBase64)); $extractor = new Extractor(FieldsValues::construct([Extractor::FIELD_IMAGE_URL => $imageUrl])); $extractor->setService($service); $this->assertFalse(is_file($imagePathToSave)); $extractor->saveImage($imagePathToSave, 10, 10); $this->assertTrue(is_file($imagePathToSave)); $fileContents = file_get_contents($imagePathToSave); unlink($imagePathToSave); /** @noinspection PhpUndefinedMethodInspection */ $this->assertEquals(base64_encode(Image::fromData(Image::fromData(base64_decode($imageRawBase64))->resize(10, 10)->get())->get('png')), base64_encode($fileContents)); }
/** * Constructor */ public function __construct() { parent::__construct(FieldsValues::construct([self::FIELD_UNIQUE_ID, self::FIELD_USERNAME, self::FIELD_FIRST_NAME, self::FIELD_LAST_NAME, self::FIELD_FULL_NAME, self::FIELD_EMAIL, self::FIELD_DESCRIPTION, self::FIELD_LOCATION, self::FIELD_PROFILE_URL, self::FIELD_IMAGE_URL, self::FIELD_WEBSITES, self::FIELD_VERIFIED_EMAIL, self::FIELD_EXTRA]), self::getDefaultNormalizersMap()->noNormalizer(self::FIELD_IMAGE_URL)->prefilled(self::FIELD_VERIFIED_EMAIL, true)->paths([self::FIELD_UNIQUE_ID => 'id', self::FIELD_USERNAME => 'username', self::FIELD_FIRST_NAME => 'first_name', self::FIELD_LAST_NAME => 'last_name', self::FIELD_FULL_NAME => 'name', self::FIELD_EMAIL => 'email', self::FIELD_DESCRIPTION => 'bio', self::FIELD_LOCATION => 'location.name', self::FIELD_PROFILE_URL => 'link'])->prefilled(self::FIELD_VERIFIED_EMAIL, true), self::getDefaultLoadersMap()->loader('image')->readdField(self::FIELD_IMAGE_URL)); }
/** * Get an array listing all fields names * * @return FieldsValues */ protected static function getAllFields() { return FieldsValues::construct([self::FIELD_UNIQUE_ID, self::FIELD_USERNAME, self::FIELD_FIRST_NAME, self::FIELD_LAST_NAME, self::FIELD_FULL_NAME, self::FIELD_EMAIL, self::FIELD_DESCRIPTION, self::FIELD_LOCATION, self::FIELD_PROFILE_URL, self::FIELD_IMAGE_URL, self::FIELD_WEBSITES, self::FIELD_VERIFIED_EMAIL, self::FIELD_EXTRA]); }
/** * Constructor */ public function __construct() { parent::__construct(FieldsValues::construct([self::FIELD_UNIQUE_ID, self::FIELD_USERNAME, self::FIELD_FIRST_NAME, self::FIELD_LAST_NAME, self::FIELD_FULL_NAME, self::FIELD_IMAGE_URL, self::FIELD_EMAIL, self::FIELD_EXTRA]), self::getDefaultNormalizersMap()->pathContext('user')->paths([self::FIELD_UNIQUE_ID => 'id', self::FIELD_USERNAME => 'email', self::FIELD_FIRST_NAME => 'first_name', self::FIELD_LAST_NAME => 'last_name', self::FIELD_EMAIL => 'email'])); }
/** * Constructor */ public function __construct() { parent::__construct(FieldsValues::construct([self::FIELD_UNIQUE_ID, self::FIELD_USERNAME, self::FIELD_FULL_NAME, self::FIELD_FIRST_NAME, self::FIELD_LAST_NAME, self::FIELD_DESCRIPTION, self::FIELD_WEBSITES, self::FIELD_IMAGE_URL, self::FIELD_PROFILE_URL, self::FIELD_EXTRA]), self::getDefaultNormalizersMap()->pathContext('data')->paths([self::FIELD_UNIQUE_ID => 'id', self::FIELD_USERNAME => 'username', self::FIELD_FULL_NAME => 'full_name', self::FIELD_DESCRIPTION => 'bio', self::FIELD_WEBSITES => 'website', self::FIELD_IMAGE_URL => 'profile_picture'])); }
/** * Constructor */ public function __construct() { parent::__construct(FieldsValues::construct([self::FIELD_UNIQUE_ID, self::FIELD_USERNAME, self::FIELD_FULL_NAME, self::FIELD_FIRST_NAME, self::FIELD_LAST_NAME, self::FIELD_DESCRIPTION, self::FIELD_LOCATION, self::FIELD_PROFILE_URL, self::FIELD_IMAGE_URL, self::FIELD_WEBSITES, self::FIELD_EXTRA]), self::getDefaultNormalizersMap()->paths([self::FIELD_UNIQUE_ID => 'id', self::FIELD_USERNAME => 'screen_name', self::FIELD_FULL_NAME => 'name', self::FIELD_DESCRIPTION => 'description', self::FIELD_LOCATION => 'location', self::FIELD_IMAGE_URL => 'profile_image_url'])); }
/** * Constructor */ public function __construct() { parent::__construct(FieldsValues::construct([self::FIELD_UNIQUE_ID, self::FIELD_FIRST_NAME, self::FIELD_LAST_NAME, self::FIELD_FULL_NAME, self::FIELD_EMAIL, self::FIELD_DESCRIPTION, self::FIELD_LOCATION, self::FIELD_PROFILE_URL, self::FIELD_IMAGE_URL, self::FIELD_WEBSITES, self::FIELD_VERIFIED_EMAIL, self::FIELD_EXTRA]), self::getDefaultNormalizersMap()->paths([self::FIELD_UNIQUE_ID => 'id', self::FIELD_FIRST_NAME => 'firstName', self::FIELD_LAST_NAME => 'lastName', self::FIELD_EMAIL => 'emailAddress', self::FIELD_DESCRIPTION => 'summary', self::FIELD_LOCATION => 'location', self::FIELD_PROFILE_URL => 'publicProfileUrl', self::FIELD_IMAGE_URL => 'pictureUrl'])->prefilled(self::FIELD_VERIFIED_EMAIL, true)); }
/** * Constructor */ public function __construct() { parent::__construct(FieldsValues::construct([self::FIELD_UNIQUE_ID, self::FIELD_USERNAME, self::FIELD_FIRST_NAME, self::FIELD_LAST_NAME, self::FIELD_FULL_NAME, self::FIELD_EMAIL, self::FIELD_DESCRIPTION, self::FIELD_LOCATION, self::FIELD_PROFILE_URL, self::FIELD_IMAGE_URL, self::FIELD_VERIFIED_EMAIL, self::FIELD_EXTRA]), self::getDefaultNormalizersMap()->pathContext('response.0')->paths([self::FIELD_UNIQUE_ID => 'uid', self::FIELD_FIRST_NAME => 'first_name', self::FIELD_LAST_NAME => 'last_name', self::FIELD_EMAIL => 'email', self::FIELD_DESCRIPTION => 'about', self::FIELD_IMAGE_URL => 'photo_max_orig'])); }
public function __construct() { parent::__construct(FieldsValues::construct([self::FIELD_UNIQUE_ID, self::FIELD_USERNAME, self::FIELD_FIRST_NAME, self::FIELD_LAST_NAME, self::FIELD_FULL_NAME, self::FIELD_EMAIL, self::FIELD_LOCATION, self::FIELD_DESCRIPTION, self::FIELD_IMAGE_URL, self::FIELD_PROFILE_URL, self::FIELD_VERIFIED_EMAIL, self::FIELD_EXTRA]), self::getDefaultNormalizersMap()->paths([self::FIELD_UNIQUE_ID => 'id', self::FIELD_USERNAME => 'login', self::FIELD_FULL_NAME => 'name', self::FIELD_LOCATION => 'location', self::FIELD_DESCRIPTION => 'bio', self::FIELD_IMAGE_URL => 'avatar_url', self::FIELD_PROFILE_URL => 'html_url']), self::getDefaultLoadersMap()->loader('email')->readdFields([self::FIELD_EMAIL, self::FIELD_VERIFIED_EMAIL])); }
/** * Constructor */ public function __construct() { parent::__construct(FieldsValues::construct([self::FIELD_UNIQUE_ID, self::FIELD_USERNAME, self::FIELD_FIRST_NAME, self::FIELD_LAST_NAME, self::FIELD_FULL_NAME, self::FIELD_EMAIL, self::FIELD_DESCRIPTION, self::FIELD_LOCATION, self::FIELD_PROFILE_URL, self::FIELD_IMAGE_URL, self::FIELD_EXTRA]), self::getDefaultNormalizersMap()->noNormalizer(self::FIELD_IMAGE_URL)->prefilled(self::FIELD_VERIFIED_EMAIL, true)->pathContext('results.0')->paths([self::FIELD_UNIQUE_ID => 'user_id', self::FIELD_USERNAME => 'login_name', self::FIELD_FIRST_NAME => 'first_name', self::FIELD_LAST_NAME => 'last_name', self::FIELD_EMAIL => 'primary_email', self::FIELD_DESCRIPTION => 'bio', self::FIELD_IMAGE_URL => 'image_url_75x75'])); }