// do several checks on input parameters
// we do not allow calls without photo id
- if ($request['photo_id'] == null) {
+ if (empty($request['photo_id'])) {
throw new BadRequestException("no photo_id specified");
}
]);
// we do not allow calls without album string
- if ($request['album'] == "") {
+ if (empty($request['album'])) {
throw new BadRequestException("no albumname specified");
}
- if ($request['album_new'] == "") {
+ if (empty($request['album_new'])) {
throw new BadRequestException("no new albumname specified");
}
// check if album is existing
/** @var IManagePersonalConfigValues */
private $pConfig;
+ /**
+ * Sets the X-Account-Management-Status header
+ *
+ * mainly extracted to make it overridable for tests
+ *
+ * @param array $user_record
+ */
+ protected function setXAccMgmtStatusHeader(array $user_record)
+ {
+ header('X-Account-Management-Status: active; name="' . $user_record['username'] . '"; id="' . $user_record['nickname'] . '"');
+ }
+
/**
* Authentication constructor.
*
$this->session->set('cid', $contact['id']);
}
- header('X-Account-Management-Status: active; name="' . $user_record['username'] . '"; id="' . $user_record['nickname'] . '"');
+ $this->setXAccMgmtStatusHeader($user_record);
if ($login_initial || $login_refresh) {
$this->dba->update('user', ['login_date' => DateTimeFormat::utcNow()], ['uid' => $user_record['uid']]);
/**
* Create variables used by tests.
*/
- protected function setUp() : void
+ protected function setUp(): void
{
parent::setUp();
--- /dev/null
+<?php
+
+namespace Friendica\Test\Util;
+
+use Friendica\Security\Authentication;
+
+class AuthenticationDouble extends Authentication
+{
+ protected function setXAccMgmtStatusHeader(array $user_record)
+ {
+ // Don't set any header..
+ }
+}
--- /dev/null
+<?php
+/**
+ * Name: TEST-ADDON: Authentication "allow all"
+ * Description: For testing purpose only
+ * Version: 1.0
+ * Author: Philipp Holzer <admin@philipp.info>
+ */
+
+use Friendica\Core\Hook;
+use Friendica\Model\User;
+
+function authtest_install()
+{
+ Hook::register('authenticate', 'tests/Util/authtest/authtest.php', 'authtest_authenticate');
+}
+
+function authtest_authenticate($a,&$b)
+{
+ $b['authenticated'] = 1;
+ $b['user_record'] = User::getById(42);
+}
$this->markTestIncomplete('exit() kills phpunit as well');
}
- /**
- * Test the api_fr_photoalbum_delete() function.
- *
- * @return void
- */
- public function testApiFrPhotoalbumDelete()
- {
- // $this->expectException(\Friendica\Network\HTTPException\BadRequestException::class);
- // api_fr_photoalbum_delete('json');
- }
-
- /**
- * Test the api_fr_photoalbum_delete() function with an album name.
- *
- * @return void
- */
- public function testApiFrPhotoalbumDeleteWithAlbum()
- {
- // $this->expectException(\Friendica\Network\HTTPException\BadRequestException::class);
- // $_REQUEST['album'] = 'album_name';
- // api_fr_photoalbum_delete('json');
- }
-
- /**
- * Test the api_fr_photoalbum_delete() function with an album name.
- *
- * @return void
- */
- public function testApiFrPhotoalbumDeleteWithValidAlbum()
- {
- $this->markTestIncomplete('We need to add a dataset for this.');
- }
-
- /**
- * Test the api_fr_photoalbum_delete() function.
- *
- * @return void
- */
- public function testApiFrPhotoalbumUpdate()
- {
- // $this->expectException(\Friendica\Network\HTTPException\BadRequestException::class);
- // api_fr_photoalbum_update('json');
- }
-
- /**
- * Test the api_fr_photoalbum_delete() function with an album name.
- *
- * @return void
- */
- public function testApiFrPhotoalbumUpdateWithAlbum()
- {
- // $this->expectException(\Friendica\Network\HTTPException\BadRequestException::class);
- // $_REQUEST['album'] = 'album_name';
- // api_fr_photoalbum_update('json');
- }
-
- /**
- * Test the api_fr_photoalbum_delete() function with an album name.
- *
- * @return void
- */
- public function testApiFrPhotoalbumUpdateWithAlbumAndNewAlbum()
- {
- // $this->expectException(\Friendica\Network\HTTPException\BadRequestException::class);
- // $_REQUEST['album'] = 'album_name';
- // $_REQUEST['album_new'] = 'album_name';
- // api_fr_photoalbum_update('json');
- }
-
- /**
- * Test the api_fr_photoalbum_update() function without an authenticated user.
- *
- * @return void
- */
- public function testApiFrPhotoalbumUpdateWithoutAuthenticatedUser()
- {
- // $this->expectException(\Friendica\Network\HTTPException\ForbiddenException::class);
- // $_SESSION['authenticated'] = false;
- // api_fr_photoalbum_update('json');
- }
-
- /**
- * Test the api_fr_photoalbum_delete() function with an album name.
- *
- * @return void
- */
- public function testApiFrPhotoalbumUpdateWithValidAlbum()
- {
- $this->markTestIncomplete('We need to add a dataset for this.');
- }
-
/**
* Test the api_fr_photos_list() function.
*
--- /dev/null
+<?php
+
+namespace Friendica\Test\src\Module\Api;
+
+use Dice\Dice;
+use Friendica\Core\Addon;
+use Friendica\Core\Hook;
+use Friendica\Database\Database;
+use Friendica\DI;
+use Friendica\Security\Authentication;
+use Friendica\Test\FixtureTest;
+use Friendica\Test\Util\AuthenticationDouble;
+
+class ApiTest extends FixtureTest
+{
+ protected function setUp(): void
+ {
+ parent::setUp(); // TODO: Change the autogenerated stub
+
+ $this->dice = $this->dice
+ ->addRule(Authentication::class, ['instanceOf' => AuthenticationDouble::class, 'shared' => true]);
+ DI::init($this->dice);
+
+ $this->installAuthTest();
+ }
+
+ /**
+ * installs auththest.
+ *
+ * @throws \Exception
+ */
+ public function installAuthTest()
+ {
+ $addon = 'authtest';
+ $addon_file_path = __DIR__ . '/../../../Util/authtest/authtest.php';
+ $t = @filemtime($addon_file_path);
+
+ @include_once($addon_file_path);
+ if (function_exists($addon . '_install')) {
+ $func = $addon . '_install';
+ $func(DI::app());
+ }
+
+ /** @var Database $dba */
+ $dba = $this->dice->create(Database::class);
+
+ $dba->insert('addon', [
+ 'name' => $addon,
+ 'installed' => true,
+ 'timestamp' => $t,
+ 'plugin_admin' => function_exists($addon . '_addon_admin'),
+ 'hidden' => file_exists('addon/' . $addon . '/.hidden')
+ ]);
+
+ Addon::loadAddons();
+ Hook::loadHooks();
+ }
+}
--- /dev/null
+<?php
+
+namespace Friendica\Test\src\Module\Api\Friendica\Photo;
+
+use Friendica\Module\Api\Friendica\Photoalbum\Delete;
+use Friendica\Network\HTTPException\BadRequestException;
+use Friendica\Test\src\Module\Api\ApiTest;
+
+class DeleteTest extends ApiTest
+{
+ public function testEmpty()
+ {
+ self::expectException(BadRequestException::class);
+ Delete::rawContent();
+ }
+
+ public function testWrong()
+ {
+ self::expectException(BadRequestException::class);
+ Delete::rawContent(['album' => 'album_name']);
+ }
+
+ public function testValid()
+ {
+ self::markTestIncomplete('We need to add a dataset for this.');
+ }
+}
--- /dev/null
+<?php
+
+namespace Friendica\Test\src\Module\Api\Friendica\Photo;
+
+use Friendica\Module\Api\Friendica\Photoalbum\Update;
+use Friendica\Network\HTTPException\BadRequestException;
+use Friendica\Test\src\Module\Api\ApiTest;
+
+class UpdateTest extends ApiTest
+{
+ public function testEmpty()
+ {
+ self::expectException(BadRequestException::class);
+ Update::rawContent();
+ }
+
+ public function testTooFewArgs()
+ {
+ self::expectException(BadRequestException::class);
+ Update::rawContent(['album' => 'album_name']);
+ }
+
+ public function testWrongUpdate()
+ {
+ self::expectException(BadRequestException::class);
+ Update::rawContent(['album' => 'album_name', 'album_new' => 'album_name']);
+ }
+
+ public function testUpdateWithoutAuthenticatedUser()
+ {
+ self::markTestIncomplete('Needs BasicAuth as dynamic method for overriding first');
+ }
+
+ public function testValid()
+ {
+ self::markTestIncomplete('We need to add a dataset for this.');
+ }
+}