mirror of
https://framagit.org/hubzilla/core.git
synced 2026-06-21 00:52:33 -04:00
133 lines
3.9 KiB
PHP
133 lines
3.9 KiB
PHP
<?php
|
|
/**
|
|
* tests function from include/items.php
|
|
*
|
|
* @package test.util
|
|
*/
|
|
|
|
use Zotlabs\Tests\Unit\UnitTestCase;
|
|
|
|
class ItemsTest extends UnitTestCase {
|
|
/**
|
|
* Data provider for item_forwardable function.
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function itemForwardableDataProvider()
|
|
{
|
|
return [
|
|
// Test case: item is unpublished
|
|
[
|
|
[
|
|
'item_unpublished' => 1,
|
|
'item_delayed' => 0,
|
|
'item_blocked' => 0,
|
|
'item_hidden' => 0,
|
|
'item_restrict' => 0,
|
|
'verb' => 'Create',
|
|
'postopts' => '',
|
|
'author' => ['xchan_network' => '']
|
|
],
|
|
false // Expected result
|
|
],
|
|
// Test case: item is delayed
|
|
[
|
|
[
|
|
'item_unpublished' => 0,
|
|
'item_delayed' => 1,
|
|
'item_blocked' => 0,
|
|
'item_hidden' => 0,
|
|
'item_restrict' => 0,
|
|
'verb' => 'Create',
|
|
'postopts' => '',
|
|
'author' => ['xchan_network' => '']
|
|
],
|
|
false
|
|
],
|
|
// Test case: item is blocked
|
|
[
|
|
[
|
|
'item_unpublished' => 0,
|
|
'item_delayed' => 0,
|
|
'item_blocked' => 1,
|
|
'item_hidden' => 0,
|
|
'item_restrict' => 0,
|
|
'verb' => 'Create',
|
|
'postopts' => '',
|
|
'author' => ['xchan_network' => '']
|
|
],
|
|
false
|
|
],
|
|
// Test case: verb is 'Follow' (forbidden verb)
|
|
[
|
|
[
|
|
'item_unpublished' => 0,
|
|
'item_delayed' => 0,
|
|
'item_blocked' => 0,
|
|
'item_hidden' => 0,
|
|
'item_restrict' => 0,
|
|
'verb' => 'Follow',
|
|
'postopts' => '',
|
|
'author' => ['xchan_network' => '']
|
|
],
|
|
false
|
|
],
|
|
// Test case: postopts contains 'nodeliver'
|
|
[
|
|
[
|
|
'item_unpublished' => 0,
|
|
'item_delayed' => 0,
|
|
'item_blocked' => 0,
|
|
'item_hidden' => 0,
|
|
'item_restrict' => 0,
|
|
'verb' => 'Create',
|
|
'postopts' => 'nodeliver',
|
|
'author' => ['xchan_network' => '']
|
|
],
|
|
false
|
|
],
|
|
// Test case: actor's network is 'rss' (restricted network)
|
|
[
|
|
[
|
|
'item_unpublished' => 0,
|
|
'item_delayed' => 0,
|
|
'item_blocked' => 0,
|
|
'item_hidden' => 0,
|
|
'item_restrict' => 0,
|
|
'verb' => 'Create',
|
|
'postopts' => '',
|
|
'author' => ['xchan_network' => 'rss']
|
|
],
|
|
false
|
|
],
|
|
// Test case: no conditions met (should forward)
|
|
[
|
|
[
|
|
'item_unpublished' => 0,
|
|
'item_delayed' => 0,
|
|
'item_blocked' => 0,
|
|
'item_hidden' => 0,
|
|
'item_restrict' => 0,
|
|
'verb' => 'Create',
|
|
'postopts' => '',
|
|
'author' => ['xchan_network' => 'other']
|
|
],
|
|
true
|
|
]
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Test item_forwardable with various data.
|
|
*
|
|
* @dataProvider itemForwardableDataProvider
|
|
*/
|
|
public function testItemForwardable($item, $expected)
|
|
{
|
|
$this->assertSame($expected, item_forwardable($item));
|
|
}
|
|
|
|
}
|
|
|
|
|