Merge pull request #11042 from nupplaphil/feat/api-tests_2

Some Fixings
This commit is contained in:
Hypolite Petovan 2021-11-28 08:27:10 -05:00 committed by GitHub
commit 75f0c58c5f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 197 additions and 389 deletions

View file

@ -1,5 +1,5 @@
-- ------------------------------------------
-- Friendica 2021.12-dev (Siberian Iris)
-- Friendica 2021.12-rc (Siberian Iris)
-- DB_UPDATE_VERSION 1445
-- ------------------------------------------

View file

@ -2322,7 +2322,7 @@ class BBCode
break;
case '#':
default:
return $match[1] . '[url=' . 'https://' . DI::baseUrl() . '/search?tag=' . $match[2] . ']' . $match[2] . '[/url]';
return $match[1] . '[url=' . DI::baseUrl() . '/search?tag=' . $match[2] . ']' . $match[2] . '[/url]';
}
}, $body);
}

View file

@ -67,6 +67,8 @@ class BaseApi extends BaseModule
public function __construct(App $app, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, ApiResponse $response, array $server, array $parameters = [])
{
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
$this->app = $app;
}
protected function delete()

31
tests/Util/AppDouble.php Normal file
View file

@ -0,0 +1,31 @@
<?php
namespace Friendica\Test\Util;
use Friendica\App;
/**
* Making the App class overridable for specific situations
*
* @see App
*/
class AppDouble extends App
{
/** @var bool Marks/Overwrites if the user is currently logged in */
protected $isLoggedIn = false;
/**
* Manually overwrite the "isLoggedIn" behavior
*
* @param bool $isLoggedIn
*/
public function setIsLoggedIn(bool $isLoggedIn)
{
$this->isLoggedIn = $isLoggedIn;
}
public function isLoggedIn()
{
return $this->isLoggedIn;
}
}

View file

@ -1,161 +0,0 @@
<?php
/**
* @copyright Copyright (C) 2010-2021, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
namespace Friendica\Test\Util;
use Dice\Dice;
use Friendica\App;
use Friendica\Core\Config;
use Friendica\DI;
use Friendica\Network\HTTPException\InternalServerErrorException;
use Friendica\Render\FriendicaSmartyEngine;
use Friendica\Util\Profiler;
use Mockery\MockInterface;
use org\bovigo\vfs\vfsStreamDirectory;
/**
* Trait to Mock the global App instance
*/
trait AppMockTrait
{
/**
* @var MockInterface|App The mocked Friendica\App
*/
protected $app;
/**
* @var MockInterface|Config\Capability\IManageConfigValues The mocked Config Cache
*/
protected $configMock;
/**
* @var MockInterface|Profiler The mocked profiler
*/
protected $profilerMock;
/**
* @var MockInterface|App\Mode The mocked App mode
*/
protected $mode;
/**
* @var MockInterface|Dice The dependency injection library
*/
protected $dice;
/**
* Mock the App
*
* @param vfsStreamDirectory $root The root directory
* @param bool $raw If true, no config mocking will be done
*
* @throws InternalServerErrorException
*/
public function mockApp(vfsStreamDirectory $root, $raw = false)
{
$this->dice = \Mockery::mock(Dice::class)->makePartial();
$this->dice = $this->dice->addRules(include __DIR__ . '/../../static/dependencies.config.php');
$this->configMock = \Mockery::mock(Config\ValueObject\Cache::class);
$this->dice->shouldReceive('create')
->with(Config\ValueObject\Cache::class)
->andReturn($this->configMock);
$this->mode = \Mockery::mock(App\Mode::class);
$this->dice->shouldReceive('create')
->with(App\Mode::class)
->andReturn($this->mode);
$configModel= \Mockery::mock(Config\Repository\Config::class);
// Disable the adapter
$configModel->shouldReceive('isConnected')->andReturn(false);
$config = new Config\Type\JitConfig($this->configMock, $configModel);
$this->dice->shouldReceive('create')
->with(Config\Capability\IManageConfigValues::class)
->andReturn($config);
// Mocking App and most used functions
$this->app = \Mockery::mock(App::class);
$this->dice->shouldReceive('create')
->with(App::class)
->andReturn($this->app);
$this->app
->shouldReceive('getBasePath')
->andReturn($root->url());
$this->profilerMock = \Mockery::mock(Profiler::class);
$this->profilerMock->shouldReceive('startRecording');
$this->profilerMock->shouldReceive('stopRecording');
$this->profilerMock->shouldReceive('saveTimestamp');
$this->dice->shouldReceive('create')
->with(Profiler::class)
->andReturn($this->profilerMock);
$this->app
->shouldReceive('getConfigCache')
->andReturn($this->configMock);
$this->app
->shouldReceive('getTemplateEngine')
->andReturn(new FriendicaSmartyEngine('frio', []));
$this->app
->shouldReceive('getCurrentTheme')
->andReturn('Smarty3');
$this->app->shouldReceive('getThemeInfoValue')
->with('videowidth')
->andReturn(425);
$this->app->shouldReceive('getThemeInfoValue')
->with('videoheight')
->andReturn(350);
DI::init($this->dice);
if ($raw) {
return;
}
$this->configMock
->shouldReceive('has')
->andReturn(true);
$this->configMock
->shouldReceive('get')
->with('database', 'hostname')
->andReturn(getenv('MYSQL_HOST'));
$this->configMock
->shouldReceive('get')
->with('database', 'username')
->andReturn(getenv('MYSQL_USERNAME'));
$this->configMock
->shouldReceive('get')
->with('database', 'password')
->andReturn(getenv('MYSQL_PASSWORD'));
$this->configMock
->shouldReceive('get')
->with('database', 'database')
->andReturn(getenv('MYSQL_DATABASE'));
$this->configMock
->shouldReceive('get')
->with('config', 'hostname')
->andReturn('localhost');
$this->configMock
->shouldReceive('get')
->with('system', 'theme')
->andReturn('system_theme');
}
}

View file

@ -9,27 +9,17 @@
namespace Friendica\Test\src\Content;
use Friendica\Content\Smilies;
use Friendica\DI;
use Friendica\Network\HTTPException\InternalServerErrorException;
use Friendica\Test\MockedTest;
use Friendica\Test\Util\AppMockTrait;
use Friendica\Test\Util\VFSTrait;
use Friendica\Test\FixtureTest;
class SmiliesTest extends MockedTest
class SmiliesTest extends FixtureTest
{
use VFSTrait;
use AppMockTrait;
protected function setUp(): void
{
parent::setUp();
$this->setUpVfsDir();
$this->mockApp($this->root);
$this->configMock->shouldReceive('get')
->with('system', 'no_smilies')
->andReturn(false);
$this->configMock->shouldReceive('get')
->with(false, 'system', 'no_smilies')
->andReturn(false);
DI::config()->set('system', 'no_smilies', false);
}
public function dataLinks()

View file

@ -21,61 +21,25 @@
namespace Friendica\Test\src\Content\Text;
use Friendica\App\BaseURL;
use Friendica\Content\Text\BBCode;
use Friendica\Core\L10n;
use Friendica\DI;
use Friendica\Network\HTTPException\InternalServerErrorException;
use Friendica\Test\MockedTest;
use Friendica\Test\Util\AppMockTrait;
use Friendica\Test\Util\VFSTrait;
use Mockery;
use Friendica\Test\FixtureTest;
class BBCodeTest extends MockedTest
class BBCodeTest extends FixtureTest
{
use VFSTrait;
use AppMockTrait;
protected function setUp(): void
{
parent::setUp();
$this->setUpVfsDir();
$this->mockApp($this->root);
$this->configMock->shouldReceive('get')
->with('system', 'remove_multiplicated_lines')
->andReturn(false);
$this->configMock->shouldReceive('get')
->with('system', 'no_oembed')
->andReturn(false);
$this->configMock->shouldReceive('get')
->with('system', 'allowed_link_protocols')
->andReturn(null);
$this->configMock->shouldReceive('get')
->with('system', 'url')
->andReturn('friendica.local');
$this->configMock->shouldReceive('get')
->with('system', 'no_smilies')
->andReturn(false);
$this->configMock->shouldReceive('get')
->with('system', 'big_emojis')
->andReturn(false);
$this->configMock->shouldReceive('get')
->with('system', 'allowed_oembed')
->andReturn('');
DI::config()->set('system', 'remove_multiplicated_lines', false);
DI::config()->set('system', 'no_oembed', false);
DI::config()->set('system', 'allowed_link_protocols', []);
DI::config()->set('system', 'url', 'friendica.local');
DI::config()->set('system', 'no_smilies', false);
DI::config()->set('system', 'big_emojis', false);
DI::config()->set('system', 'allowed_oembed', '');
$l10nMock = Mockery::mock(L10n::class);
$l10nMock->shouldReceive('t')->withAnyArgs()->andReturnUsing(function ($args) { return $args; });
$this->dice->shouldReceive('create')
->with(L10n::class)
->andReturn($l10nMock);
$baseUrlMock = Mockery::mock(BaseURL::class);
$baseUrlMock->shouldReceive('get')->withAnyArgs()->andReturn('friendica.local');
$this->dice->shouldReceive('create')
->with(BaseURL::class)
->andReturn($baseUrlMock);
$baseUrlMock->shouldReceive('getHostname')->withNoArgs()->andReturn('friendica.local');
$baseUrlMock->shouldReceive('getUrlPath')->withNoArgs()->andReturn('');
$baseUrlMock->shouldReceive('__toString')->withNoArgs()->andReturn('friendica.local');
DI::baseUrl()->save('friendica.local', DI::baseUrl()::SSL_POLICY_FULL, '');
$config = \HTMLPurifier_HTML5Config::createDefault();
$config->set('HTML.Doctype', 'HTML5');

View file

@ -24,22 +24,10 @@ namespace Friendica\Test\src\Content\Text;
use Exception;
use Friendica\Content\Text\HTML;
use Friendica\Network\HTTPException\InternalServerErrorException;
use Friendica\Test\MockedTest;
use Friendica\Test\Util\AppMockTrait;
use Friendica\Test\Util\VFSTrait;
use Friendica\Test\FixtureTest;
class HTMLTest extends MockedTest
class HTMLTest extends FixtureTest
{
use VFSTrait;
use AppMockTrait;
protected function setUp(): void
{
parent::setUp();
$this->setUpVfsDir();
$this->mockApp($this->root);
}
public function dataHTML()
{
$inputFiles = glob(__DIR__ . '/../../../datasets/content/text/html/*.html');

View file

@ -23,22 +23,10 @@ namespace Friendica\Test\src\Content\Text;
use Exception;
use Friendica\Content\Text\Markdown;
use Friendica\Test\MockedTest;
use Friendica\Test\Util\AppMockTrait;
use Friendica\Test\Util\VFSTrait;
use Friendica\Test\FixtureTest;
class MarkdownTest extends MockedTest
class MarkdownTest extends FixtureTest
{
use VFSTrait;
use AppMockTrait;
protected function setUp(): void
{
parent::setUp();
$this->setUpVfsDir();
$this->mockApp($this->root);
}
public function dataMarkdown()
{
$inputFiles = glob(__DIR__ . '/../../../datasets/content/text/markdown/*.md');

View file

@ -21,12 +21,14 @@
namespace Friendica\Test\src\Module\Api;
use Friendica\App;
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\AppDouble;
use Friendica\Test\Util\AuthenticationDouble;
abstract class ApiTest extends FixtureTest
@ -51,9 +53,13 @@ abstract class ApiTest extends FixtureTest
parent::setUp(); // TODO: Change the autogenerated stub
$this->dice = $this->dice
->addRule(Authentication::class, ['instanceOf' => AuthenticationDouble::class, 'shared' => true]);
->addRule(Authentication::class, ['instanceOf' => AuthenticationDouble::class, 'shared' => true])
->addRule(App::class, ['instanceOf' => AppDouble::class, 'shared' => true]);
DI::init($this->dice);
// Manual override to bypass API authentication
DI::app()->setIsLoggedIn(true);
$this->installAuthTest();
}

View file

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: 2021.12-dev\n"
"Project-Id-Version: 2021.12-rc\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-27 12:46+0100\n"
"POT-Creation-Date: 2021-11-28 12:50+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,21 +18,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#: include/api.php:771 src/Module/BaseApi.php:275
#: include/api.php:720 src/Module/BaseApi.php:279
#, php-format
msgid "Daily posting limit of %d post reached. The post was rejected."
msgid_plural "Daily posting limit of %d posts reached. The post was rejected."
msgstr[0] ""
msgstr[1] ""
#: include/api.php:785 src/Module/BaseApi.php:291
#: include/api.php:734 src/Module/BaseApi.php:295
#, php-format
msgid "Weekly posting limit of %d post reached. The post was rejected."
msgid_plural "Weekly posting limit of %d posts reached. The post was rejected."
msgstr[0] ""
msgstr[1] ""
#: include/api.php:799 src/Module/BaseApi.php:307
#: include/api.php:748 src/Module/BaseApi.php:311
#, php-format
msgid "Monthly posting limit of %d post reached. The post was rejected."
msgstr ""
@ -51,7 +51,7 @@ msgstr ""
#: src/Module/Profile/Common.php:41 src/Module/Profile/Common.php:52
#: src/Module/Profile/Contacts.php:40 src/Module/Profile/Contacts.php:50
#: src/Module/Profile/Media.php:38 src/Module/Profile/Status.php:58
#: src/Module/Register.php:266 src/Module/RemoteFollow.php:58
#: src/Module/Register.php:267 src/Module/RemoteFollow.php:58
msgid "User not found."
msgstr ""
@ -155,8 +155,8 @@ msgstr ""
#: src/Module/Notifications/Notification.php:79
#: src/Module/Profile/Common.php:56 src/Module/Profile/Contacts.php:56
#: src/Module/Profile/Schedule.php:39 src/Module/Profile/Schedule.php:56
#: src/Module/Register.php:76 src/Module/Register.php:89
#: src/Module/Register.php:205 src/Module/Register.php:244
#: src/Module/Register.php:77 src/Module/Register.php:90
#: src/Module/Register.php:206 src/Module/Register.php:245
#: src/Module/Search/Directory.php:37 src/Module/Settings/Delegation.php:42
#: src/Module/Settings/Delegation.php:70 src/Module/Settings/Display.php:42
#: src/Module/Settings/Display.php:120
@ -383,7 +383,7 @@ msgstr ""
#: src/Module/Install.php:275 src/Module/Install.php:280
#: src/Module/Install.php:286 src/Module/Install.php:291
#: src/Module/Install.php:305 src/Module/Install.php:320
#: src/Module/Install.php:347 src/Module/Register.php:147
#: src/Module/Install.php:347 src/Module/Register.php:148
#: src/Module/Security/TwoFactor/Verify.php:100
#: src/Module/Settings/TwoFactor/Index.php:133
#: src/Module/Settings/TwoFactor/Verify.php:153
@ -405,7 +405,7 @@ msgstr ""
#: mod/events.php:508 src/Content/Widget/VCard.php:98 src/Model/Event.php:80
#: src/Model/Event.php:107 src/Model/Event.php:466 src/Model/Event.php:915
#: src/Model/Profile.php:368 src/Module/Contact/Profile.php:376
#: src/Model/Profile.php:368 src/Module/Contact/Profile.php:369
#: src/Module/Directory.php:147 src/Module/Notifications/Introductions.php:185
#: src/Module/Profile/Profile.php:194
msgid "Location:"
@ -423,7 +423,7 @@ msgstr ""
#: mod/photos.php:927 mod/photos.php:1031 mod/photos.php:1301
#: mod/photos.php:1342 mod/photos.php:1398 mod/photos.php:1472
#: src/Module/Admin/Item/Source.php:65 src/Module/Contact/Advanced.php:147
#: src/Module/Contact/Poke.php:158 src/Module/Contact/Profile.php:334
#: src/Module/Contact/Poke.php:158 src/Module/Contact/Profile.php:327
#: src/Module/Debug/ActivityPubConversion.php:141
#: src/Module/Debug/Babel.php:313 src/Module/Debug/Localtime.php:64
#: src/Module/Debug/Probe.php:54 src/Module/Debug/WebFinger.php:51
@ -500,13 +500,13 @@ msgstr ""
#: mod/follow.php:141 mod/unfollow.php:100
#: src/Module/Admin/Blocklist/Contact.php:116
#: src/Module/Contact/Profile.php:372
#: src/Module/Contact/Profile.php:365
#: src/Module/Notifications/Introductions.php:127
#: src/Module/Notifications/Introductions.php:196
msgid "Profile URL"
msgstr ""
#: mod/follow.php:142 src/Module/Contact/Profile.php:384
#: mod/follow.php:142 src/Module/Contact/Profile.php:377
#: src/Module/Notifications/Introductions.php:189
#: src/Module/Profile/Profile.php:207
msgid "Tags:"
@ -1148,12 +1148,12 @@ msgstr ""
#: mod/redir.php:55 mod/redir.php:129 src/Module/Contact/Advanced.php:70
#: src/Module/Contact/Advanced.php:119 src/Module/Contact/Contacts.php:36
#: src/Module/Contact/Conversations.php:80
#: src/Module/Contact/Conversations.php:85
#: src/Module/Contact/Conversations.php:90 src/Module/Contact/Media.php:43
#: src/Module/Contact/Posts.php:74 src/Module/Contact/Posts.php:79
#: src/Module/Contact/Posts.php:84 src/Module/Contact/Profile.php:148
#: src/Module/Contact/Profile.php:153 src/Module/Contact/Profile.php:158
#: src/Module/Contact/Conversations.php:78
#: src/Module/Contact/Conversations.php:83
#: src/Module/Contact/Conversations.php:88 src/Module/Contact/Media.php:43
#: src/Module/Contact/Posts.php:72 src/Module/Contact/Posts.php:77
#: src/Module/Contact/Posts.php:82 src/Module/Contact/Profile.php:141
#: src/Module/Contact/Profile.php:146 src/Module/Contact/Profile.php:151
#: src/Module/FriendSuggest.php:70 src/Module/FriendSuggest.php:108
#: src/Module/Group.php:99 src/Module/Group.php:108
msgid "Contact not found."
@ -1616,7 +1616,7 @@ msgstr ""
msgid "Password Settings"
msgstr ""
#: mod/settings.php:710 src/Module/Register.php:161
#: mod/settings.php:710 src/Module/Register.php:162
msgid "New Password:"
msgstr ""
@ -1626,7 +1626,7 @@ msgid ""
"spaces, accentuated letters and colon (:)."
msgstr ""
#: mod/settings.php:711 src/Module/Register.php:162
#: mod/settings.php:711 src/Module/Register.php:163
msgid "Confirm:"
msgstr ""
@ -2014,13 +2014,13 @@ msgstr ""
msgid "User imports on closed servers can only be done by an administrator."
msgstr ""
#: mod/uimport.php:55 src/Module/Register.php:98
#: mod/uimport.php:55 src/Module/Register.php:99
msgid ""
"This site has exceeded the number of allowed daily account registrations. "
"Please try again tomorrow."
msgstr ""
#: mod/uimport.php:62 src/Module/Register.php:172
#: mod/uimport.php:62 src/Module/Register.php:173
msgid "Import"
msgstr ""
@ -2159,31 +2159,31 @@ msgstr ""
msgid "You must be logged in to use addons. "
msgstr ""
#: src/BaseModule.php:299
#: src/BaseModule.php:298
msgid ""
"The form security token was not correct. This probably happened because the "
"form has been opened for too long (>3 hours) before submitting it."
msgstr ""
#: src/BaseModule.php:326
#: src/BaseModule.php:325
msgid "All contacts"
msgstr ""
#: src/BaseModule.php:331 src/Content/Widget.php:231 src/Core/ACL.php:193
#: src/BaseModule.php:330 src/Content/Widget.php:231 src/Core/ACL.php:193
#: src/Module/Contact.php:367 src/Module/PermissionTooltip.php:79
#: src/Module/PermissionTooltip.php:101
msgid "Followers"
msgstr ""
#: src/BaseModule.php:336 src/Content/Widget.php:232 src/Module/Contact.php:368
#: src/BaseModule.php:335 src/Content/Widget.php:232 src/Module/Contact.php:368
msgid "Following"
msgstr ""
#: src/BaseModule.php:341 src/Content/Widget.php:233 src/Module/Contact.php:369
#: src/BaseModule.php:340 src/Content/Widget.php:233 src/Module/Contact.php:369
msgid "Mutual friends"
msgstr ""
#: src/BaseModule.php:349
#: src/BaseModule.php:348
msgid "Common"
msgstr ""
@ -2772,13 +2772,13 @@ msgstr ""
#: src/Content/Item.php:449 src/Module/Admin/Blocklist/Contact.php:100
#: src/Module/Admin/Users/Active.php:140 src/Module/Admin/Users/Index.php:154
#: src/Module/Contact.php:398 src/Module/Contact/Profile.php:355
#: src/Module/Contact/Profile.php:456
#: src/Module/Contact.php:398 src/Module/Contact/Profile.php:348
#: src/Module/Contact/Profile.php:449
msgid "Block"
msgstr ""
#: src/Content/Item.php:450 src/Module/Contact.php:399
#: src/Module/Contact/Profile.php:356 src/Module/Contact/Profile.php:464
#: src/Module/Contact/Profile.php:349 src/Module/Contact/Profile.php:457
#: src/Module/Notifications/Introductions.php:132
#: src/Module/Notifications/Introductions.php:204
#: src/Module/Notifications/Notification.php:61
@ -2827,7 +2827,7 @@ msgid "Sign in"
msgstr ""
#: src/Content/Nav.php:190 src/Module/BaseProfile.php:56
#: src/Module/Contact.php:433 src/Module/Contact/Profile.php:387
#: src/Module/Contact.php:433 src/Module/Contact/Profile.php:380
#: src/Module/Settings/TwoFactor/Index.php:112 view/theme/frio/theme.php:225
msgid "Status"
msgstr ""
@ -2839,7 +2839,7 @@ msgstr ""
#: src/Content/Nav.php:191 src/Module/BaseProfile.php:48
#: src/Module/BaseSettings.php:55 src/Module/Contact.php:457
#: src/Module/Contact/Profile.php:389 src/Module/Profile/Profile.php:241
#: src/Module/Contact/Profile.php:382 src/Module/Profile/Profile.php:241
#: src/Module/Welcome.php:57 view/theme/frio/theme.php:226
msgid "Profile"
msgstr ""
@ -2878,7 +2878,7 @@ msgstr ""
msgid "Home"
msgstr ""
#: src/Content/Nav.php:216 src/Module/Register.php:167
#: src/Content/Nav.php:216 src/Module/Register.php:168
#: src/Module/Security/Login.php:105
msgid "Register"
msgstr ""
@ -2962,7 +2962,7 @@ msgid "Information about this friendica instance"
msgstr ""
#: src/Content/Nav.php:266 src/Module/Admin/Tos.php:76
#: src/Module/BaseAdmin.php:96 src/Module/Register.php:175
#: src/Module/BaseAdmin.php:96 src/Module/Register.php:176
#: src/Module/Tos.php:87
msgid "Terms of Service"
msgstr ""
@ -3296,12 +3296,12 @@ msgid "More Trending Tags"
msgstr ""
#: src/Content/Widget/VCard.php:96 src/Model/Profile.php:373
#: src/Module/Contact/Profile.php:378 src/Module/Profile/Profile.php:176
#: src/Module/Contact/Profile.php:371 src/Module/Profile/Profile.php:176
msgid "XMPP:"
msgstr ""
#: src/Content/Widget/VCard.php:97 src/Model/Profile.php:374
#: src/Module/Contact/Profile.php:380 src/Module/Profile/Profile.php:180
#: src/Module/Contact/Profile.php:373 src/Module/Profile/Profile.php:180
msgid "Matrix:"
msgstr ""
@ -4306,7 +4306,7 @@ msgstr ""
msgid "Homepage:"
msgstr ""
#: src/Model/Profile.php:372 src/Module/Contact/Profile.php:382
#: src/Model/Profile.php:372 src/Module/Contact/Profile.php:375
#: src/Module/Notifications/Introductions.php:187
msgid "About:"
msgstr ""
@ -4850,8 +4850,8 @@ msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:101
#: src/Module/Admin/Users/Blocked.php:142 src/Module/Admin/Users/Index.php:156
#: src/Module/Contact.php:398 src/Module/Contact/Profile.php:355
#: src/Module/Contact/Profile.php:456
#: src/Module/Contact.php:398 src/Module/Contact/Profile.php:348
#: src/Module/Contact/Profile.php:449
msgid "Unblock"
msgstr ""
@ -5502,7 +5502,7 @@ msgstr ""
msgid "Republish users to directory"
msgstr ""
#: src/Module/Admin/Site.php:503 src/Module/Register.php:151
#: src/Module/Admin/Site.php:503 src/Module/Register.php:152
msgid "Registration"
msgstr ""
@ -6272,7 +6272,7 @@ msgid ""
"received."
msgstr ""
#: src/Module/Admin/Site.php:610 src/Module/Contact/Profile.php:280
#: src/Module/Admin/Site.php:610 src/Module/Contact/Profile.php:273
#: src/Module/Settings/TwoFactor/Index.php:118
msgid "Disabled"
msgstr ""
@ -6951,8 +6951,8 @@ msgstr ""
msgid "User registrations waiting for confirmation"
msgstr ""
#: src/Module/BaseApi.php:274 src/Module/BaseApi.php:290
#: src/Module/BaseApi.php:306
#: src/Module/BaseApi.php:278 src/Module/BaseApi.php:294
#: src/Module/BaseApi.php:310
msgid "Too Many Requests"
msgstr ""
@ -7084,8 +7084,8 @@ msgstr ""
msgid "Update"
msgstr ""
#: src/Module/Contact.php:399 src/Module/Contact/Profile.php:356
#: src/Module/Contact/Profile.php:464
#: src/Module/Contact.php:399 src/Module/Contact/Profile.php:349
#: src/Module/Contact/Profile.php:457
msgid "Unignore"
msgstr ""
@ -7133,7 +7133,7 @@ msgstr ""
msgid "Pending incoming contact request"
msgstr ""
#: src/Module/Contact.php:552 src/Module/Contact/Profile.php:341
#: src/Module/Contact.php:552 src/Module/Contact/Profile.php:334
#, php-format
msgid "Visit %s's profile [%s]"
msgstr ""
@ -7278,231 +7278,231 @@ msgstr ""
msgid "Make this post private"
msgstr ""
#: src/Module/Contact/Profile.php:134
#: src/Module/Contact/Profile.php:127
msgid "Failed to update contact record."
msgstr ""
#: src/Module/Contact/Profile.php:184
#: src/Module/Contact/Profile.php:177
msgid "Contact has been unblocked"
msgstr ""
#: src/Module/Contact/Profile.php:188
#: src/Module/Contact/Profile.php:181
msgid "Contact has been blocked"
msgstr ""
#: src/Module/Contact/Profile.php:200
#: src/Module/Contact/Profile.php:193
msgid "Contact has been unignored"
msgstr ""
#: src/Module/Contact/Profile.php:204
#: src/Module/Contact/Profile.php:197
msgid "Contact has been ignored"
msgstr ""
#: src/Module/Contact/Profile.php:236
#: src/Module/Contact/Profile.php:229
#, php-format
msgid "You are mutual friends with %s"
msgstr ""
#: src/Module/Contact/Profile.php:237
#: src/Module/Contact/Profile.php:230
#, php-format
msgid "You are sharing with %s"
msgstr ""
#: src/Module/Contact/Profile.php:238
#: src/Module/Contact/Profile.php:231
#, php-format
msgid "%s is sharing with you"
msgstr ""
#: src/Module/Contact/Profile.php:254
#: src/Module/Contact/Profile.php:247
msgid "Private communications are not available for this contact."
msgstr ""
#: src/Module/Contact/Profile.php:256
#: src/Module/Contact/Profile.php:249
msgid "Never"
msgstr ""
#: src/Module/Contact/Profile.php:259
#: src/Module/Contact/Profile.php:252
msgid "(Update was not successful)"
msgstr ""
#: src/Module/Contact/Profile.php:259
#: src/Module/Contact/Profile.php:252
msgid "(Update was successful)"
msgstr ""
#: src/Module/Contact/Profile.php:261 src/Module/Contact/Profile.php:427
#: src/Module/Contact/Profile.php:254 src/Module/Contact/Profile.php:420
msgid "Suggest friends"
msgstr ""
#: src/Module/Contact/Profile.php:265
#: src/Module/Contact/Profile.php:258
#, php-format
msgid "Network type: %s"
msgstr ""
#: src/Module/Contact/Profile.php:270
#: src/Module/Contact/Profile.php:263
msgid "Communications lost with this contact!"
msgstr ""
#: src/Module/Contact/Profile.php:276
#: src/Module/Contact/Profile.php:269
msgid "Fetch further information for feeds"
msgstr ""
#: src/Module/Contact/Profile.php:278
#: src/Module/Contact/Profile.php:271
msgid ""
"Fetch information like preview pictures, title and teaser from the feed "
"item. You can activate this if the feed doesn't contain much text. Keywords "
"are taken from the meta header in the feed item and are posted as hash tags."
msgstr ""
#: src/Module/Contact/Profile.php:281
#: src/Module/Contact/Profile.php:274
msgid "Fetch information"
msgstr ""
#: src/Module/Contact/Profile.php:282
#: src/Module/Contact/Profile.php:275
msgid "Fetch keywords"
msgstr ""
#: src/Module/Contact/Profile.php:283
#: src/Module/Contact/Profile.php:276
msgid "Fetch information and keywords"
msgstr ""
#: src/Module/Contact/Profile.php:293 src/Module/Contact/Profile.php:299
#: src/Module/Contact/Profile.php:304 src/Module/Contact/Profile.php:310
#: src/Module/Contact/Profile.php:286 src/Module/Contact/Profile.php:292
#: src/Module/Contact/Profile.php:297 src/Module/Contact/Profile.php:303
msgid "No mirroring"
msgstr ""
#: src/Module/Contact/Profile.php:294
#: src/Module/Contact/Profile.php:287
msgid "Mirror as forwarded posting"
msgstr ""
#: src/Module/Contact/Profile.php:295 src/Module/Contact/Profile.php:305
#: src/Module/Contact/Profile.php:311
#: src/Module/Contact/Profile.php:288 src/Module/Contact/Profile.php:298
#: src/Module/Contact/Profile.php:304
msgid "Mirror as my own posting"
msgstr ""
#: src/Module/Contact/Profile.php:300 src/Module/Contact/Profile.php:306
#: src/Module/Contact/Profile.php:293 src/Module/Contact/Profile.php:299
msgid "Native reshare"
msgstr ""
#: src/Module/Contact/Profile.php:323
#: src/Module/Contact/Profile.php:316
msgid "Contact Information / Notes"
msgstr ""
#: src/Module/Contact/Profile.php:324
#: src/Module/Contact/Profile.php:317
msgid "Contact Settings"
msgstr ""
#: src/Module/Contact/Profile.php:332
#: src/Module/Contact/Profile.php:325
msgid "Contact"
msgstr ""
#: src/Module/Contact/Profile.php:336
#: src/Module/Contact/Profile.php:329
msgid "Their personal note"
msgstr ""
#: src/Module/Contact/Profile.php:338
#: src/Module/Contact/Profile.php:331
msgid "Edit contact notes"
msgstr ""
#: src/Module/Contact/Profile.php:342
#: src/Module/Contact/Profile.php:335
msgid "Block/Unblock contact"
msgstr ""
#: src/Module/Contact/Profile.php:343
#: src/Module/Contact/Profile.php:336
msgid "Ignore contact"
msgstr ""
#: src/Module/Contact/Profile.php:344
#: src/Module/Contact/Profile.php:337
msgid "View conversations"
msgstr ""
#: src/Module/Contact/Profile.php:349
#: src/Module/Contact/Profile.php:342
msgid "Last update:"
msgstr ""
#: src/Module/Contact/Profile.php:351
#: src/Module/Contact/Profile.php:344
msgid "Update public posts"
msgstr ""
#: src/Module/Contact/Profile.php:353 src/Module/Contact/Profile.php:437
#: src/Module/Contact/Profile.php:346 src/Module/Contact/Profile.php:430
msgid "Update now"
msgstr ""
#: src/Module/Contact/Profile.php:360
#: src/Module/Contact/Profile.php:353
msgid "Currently blocked"
msgstr ""
#: src/Module/Contact/Profile.php:361
#: src/Module/Contact/Profile.php:354
msgid "Currently ignored"
msgstr ""
#: src/Module/Contact/Profile.php:362
#: src/Module/Contact/Profile.php:355
msgid "Currently archived"
msgstr ""
#: src/Module/Contact/Profile.php:363
#: src/Module/Contact/Profile.php:356
msgid "Awaiting connection acknowledge"
msgstr ""
#: src/Module/Contact/Profile.php:364
#: src/Module/Contact/Profile.php:357
#: src/Module/Notifications/Introductions.php:190
msgid "Hide this contact from others"
msgstr ""
#: src/Module/Contact/Profile.php:364
#: src/Module/Contact/Profile.php:357
msgid ""
"Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr ""
#: src/Module/Contact/Profile.php:365
#: src/Module/Contact/Profile.php:358
msgid "Notification for new posts"
msgstr ""
#: src/Module/Contact/Profile.php:365
#: src/Module/Contact/Profile.php:358
msgid "Send a notification of every new post of this contact"
msgstr ""
#: src/Module/Contact/Profile.php:367
#: src/Module/Contact/Profile.php:360
msgid "Keyword Deny List"
msgstr ""
#: src/Module/Contact/Profile.php:367
#: src/Module/Contact/Profile.php:360
msgid ""
"Comma separated list of keywords that should not be converted to hashtags, "
"when \"Fetch information and keywords\" is selected"
msgstr ""
#: src/Module/Contact/Profile.php:385
#: src/Module/Contact/Profile.php:378
#: src/Module/Settings/TwoFactor/Index.php:132
msgid "Actions"
msgstr ""
#: src/Module/Contact/Profile.php:393
#: src/Module/Contact/Profile.php:386
msgid "Mirror postings from this contact"
msgstr ""
#: src/Module/Contact/Profile.php:395
#: src/Module/Contact/Profile.php:388
msgid ""
"Mark this contact as remote_self, this will cause friendica to repost new "
"entries from this contact."
msgstr ""
#: src/Module/Contact/Profile.php:447
#: src/Module/Contact/Profile.php:440
msgid "Refetch contact data"
msgstr ""
#: src/Module/Contact/Profile.php:458
#: src/Module/Contact/Profile.php:451
msgid "Toggle Blocked status"
msgstr ""
#: src/Module/Contact/Profile.php:466
#: src/Module/Contact/Profile.php:459
msgid "Toggle Ignored status"
msgstr ""
#: src/Module/Contact/Profile.php:473 src/Module/Contact/Revoke.php:107
#: src/Module/Contact/Profile.php:466 src/Module/Contact/Revoke.php:107
msgid "Revoke Follow"
msgstr ""
#: src/Module/Contact/Profile.php:475
#: src/Module/Contact/Profile.php:468
msgid "Revoke the follow from this contact"
msgstr ""
@ -7541,7 +7541,7 @@ msgstr ""
#: src/Module/Contact/Revoke.php:109
#: src/Module/Notifications/Introductions.php:142
#: src/Module/OAuth/Acknowledge.php:47 src/Module/Register.php:129
#: src/Module/OAuth/Acknowledge.php:47 src/Module/Register.php:130
msgid "Yes"
msgstr ""
@ -8441,7 +8441,7 @@ msgid "Claims to be known to you: "
msgstr ""
#: src/Module/Notifications/Introductions.php:142
#: src/Module/OAuth/Acknowledge.php:48 src/Module/Register.php:130
#: src/Module/OAuth/Acknowledge.php:48 src/Module/Register.php:131
msgid "No"
msgstr ""
@ -8657,137 +8657,137 @@ msgstr ""
msgid "Remove post"
msgstr ""
#: src/Module/Register.php:83
#: src/Module/Register.php:84
msgid "Only parent users can create additional accounts."
msgstr ""
#: src/Module/Register.php:115
#: src/Module/Register.php:116
msgid ""
"You may (optionally) fill in this form via OpenID by supplying your OpenID "
"and clicking \"Register\"."
msgstr ""
#: src/Module/Register.php:116
#: src/Module/Register.php:117
msgid ""
"If you are not familiar with OpenID, please leave that field blank and fill "
"in the rest of the items."
msgstr ""
#: src/Module/Register.php:117
#: src/Module/Register.php:118
msgid "Your OpenID (optional): "
msgstr ""
#: src/Module/Register.php:126
#: src/Module/Register.php:127
msgid "Include your profile in member directory?"
msgstr ""
#: src/Module/Register.php:147
#: src/Module/Register.php:148
msgid "Note for the admin"
msgstr ""
#: src/Module/Register.php:147
#: src/Module/Register.php:148
msgid "Leave a message for the admin, why you want to join this node"
msgstr ""
#: src/Module/Register.php:148
#: src/Module/Register.php:149
msgid "Membership on this site is by invitation only."
msgstr ""
#: src/Module/Register.php:149
#: src/Module/Register.php:150
msgid "Your invitation code: "
msgstr ""
#: src/Module/Register.php:157
#: src/Module/Register.php:158
msgid "Your Full Name (e.g. Joe Smith, real or real-looking): "
msgstr ""
#: src/Module/Register.php:158
#: src/Module/Register.php:159
msgid ""
"Your Email Address: (Initial information will be send there, so this has to "
"be an existing address.)"
msgstr ""
#: src/Module/Register.php:159
#: src/Module/Register.php:160
msgid "Please repeat your e-mail address:"
msgstr ""
#: src/Module/Register.php:161
#: src/Module/Register.php:162
msgid "Leave empty for an auto generated password."
msgstr ""
#: src/Module/Register.php:163
#: src/Module/Register.php:164
#, php-format
msgid ""
"Choose a profile nickname. This must begin with a text character. Your "
"profile address on this site will then be \"<strong>nickname@%s</strong>\"."
msgstr ""
#: src/Module/Register.php:164
#: src/Module/Register.php:165
msgid "Choose a nickname: "
msgstr ""
#: src/Module/Register.php:173
#: src/Module/Register.php:174
msgid "Import your profile to this friendica instance"
msgstr ""
#: src/Module/Register.php:180
#: src/Module/Register.php:181
msgid "Note: This node explicitly contains adult content"
msgstr ""
#: src/Module/Register.php:182 src/Module/Settings/Delegation.php:155
#: src/Module/Register.php:183 src/Module/Settings/Delegation.php:155
msgid "Parent Password:"
msgstr ""
#: src/Module/Register.php:182 src/Module/Settings/Delegation.php:155
#: src/Module/Register.php:183 src/Module/Settings/Delegation.php:155
msgid ""
"Please enter the password of the parent account to legitimize your request."
msgstr ""
#: src/Module/Register.php:211
#: src/Module/Register.php:212
msgid "Password doesn't match."
msgstr ""
#: src/Module/Register.php:217
#: src/Module/Register.php:218
msgid "Please enter your password."
msgstr ""
#: src/Module/Register.php:259
#: src/Module/Register.php:260
msgid "You have entered too much information."
msgstr ""
#: src/Module/Register.php:282
#: src/Module/Register.php:283
msgid "Please enter the identical mail address in the second field."
msgstr ""
#: src/Module/Register.php:309
#: src/Module/Register.php:310
msgid "The additional account was created."
msgstr ""
#: src/Module/Register.php:334
#: src/Module/Register.php:335
msgid ""
"Registration successful. Please check your email for further instructions."
msgstr ""
#: src/Module/Register.php:338
#: src/Module/Register.php:339
#, php-format
msgid ""
"Failed to send email message. Here your accout details:<br> login: %s<br> "
"password: %s<br><br>You can change your password after login."
msgstr ""
#: src/Module/Register.php:344
#: src/Module/Register.php:345
msgid "Registration successful."
msgstr ""
#: src/Module/Register.php:349 src/Module/Register.php:356
#: src/Module/Register.php:350 src/Module/Register.php:357
msgid "Your registration can not be processed."
msgstr ""
#: src/Module/Register.php:355
#: src/Module/Register.php:356
msgid "You have to leave a request note for the admin."
msgstr ""
#: src/Module/Register.php:401
#: src/Module/Register.php:402
msgid "Your registration is pending approval by the site owner."
msgstr ""