<?php
+
namespace Shaarli\Netscape;
+use malkusch\lock\mutex\NoMutex;
use Shaarli\Bookmark\BookmarkFileService;
-use Shaarli\Bookmark\LinkDB;
use Shaarli\Config\ConfigManager;
-use Shaarli\Formatter\FormatterFactory;
use Shaarli\Formatter\BookmarkFormatter;
+use Shaarli\Formatter\FormatterFactory;
use Shaarli\History;
+use Shaarli\TestCase;
require_once 'tests/utils/ReferenceLinkDB.php';
/**
* Netscape bookmark export
*/
-class BookmarkExportTest extends \PHPUnit\Framework\TestCase
+class BookmarkExportTest extends TestCase
{
/**
* @var string datastore to test write operations
*/
protected static $testDatastore = 'sandbox/datastore.php';
+ /**
+ * @var ConfigManager instance.
+ */
+ protected static $conf;
+
/**
* @var \ReferenceLinkDB instance.
*/
*/
protected static $formatter;
+ /**
+ * @var History instance
+ */
+ protected static $history;
+
+ /**
+ * @var NetscapeBookmarkUtils
+ */
+ protected $netscapeBookmarkUtils;
+
/**
* Instantiate reference data
*/
- public static function setUpBeforeClass()
+ public static function setUpBeforeClass(): void
+ {
+ $mutex = new NoMutex();
+ static::$conf = new ConfigManager('tests/utils/config/configJson');
+ static::$conf->set('resource.datastore', static::$testDatastore);
+ static::$refDb = new \ReferenceLinkDB();
+ static::$refDb->write(static::$testDatastore);
+ static::$history = new History('sandbox/history.php');
+ static::$bookmarkService = new BookmarkFileService(static::$conf, static::$history, $mutex, true);
+ $factory = new FormatterFactory(static::$conf, true);
+ static::$formatter = $factory->getFormatter('raw');
+ }
+
+ public function setUp(): void
{
- $conf = new ConfigManager('tests/utils/config/configJson');
- $conf->set('resource.datastore', self::$testDatastore);
- self::$refDb = new \ReferenceLinkDB();
- self::$refDb->write(self::$testDatastore);
- $history = new History('sandbox/history.php');
- self::$bookmarkService = new BookmarkFileService($conf, $history, true);
- $factory = new FormatterFactory($conf, true);
- self::$formatter = $factory->getFormatter('raw');
+ $this->netscapeBookmarkUtils = new NetscapeBookmarkUtils(
+ static::$bookmarkService,
+ static::$conf,
+ static::$history
+ );
}
/**
* Attempt to export an invalid link selection
- * @expectedException Exception
- * @expectedExceptionMessageRegExp /Invalid export selection/
*/
public function testFilterAndFormatInvalid()
{
- NetscapeBookmarkUtils::filterAndFormat(
- self::$bookmarkService,
+ $this->expectException(\Exception::class);
+ $this->expectExceptionMessageRegExp('/Invalid export selection/');
+
+ $this->netscapeBookmarkUtils->filterAndFormat(
self::$formatter,
'derp',
false,
*/
public function testFilterAndFormatAll()
{
- $links = NetscapeBookmarkUtils::filterAndFormat(
- self::$bookmarkService,
+ $links = $this->netscapeBookmarkUtils->filterAndFormat(
self::$formatter,
'all',
false,
*/
public function testFilterAndFormatPrivate()
{
- $links = NetscapeBookmarkUtils::filterAndFormat(
- self::$bookmarkService,
+ $links = $this->netscapeBookmarkUtils->filterAndFormat(
self::$formatter,
'private',
false,
*/
public function testFilterAndFormatPublic()
{
- $links = NetscapeBookmarkUtils::filterAndFormat(
- self::$bookmarkService,
+ $links = $this->netscapeBookmarkUtils->filterAndFormat(
self::$formatter,
'public',
false,
*/
public function testFilterAndFormatDoNotPrependNoteUrl()
{
- $links = NetscapeBookmarkUtils::filterAndFormat(
- self::$bookmarkService,
+ $links = $this->netscapeBookmarkUtils->filterAndFormat(
self::$formatter,
'public',
false,
''
);
$this->assertEquals(
- '?WDWyig',
+ '/shaare/WDWyig',
$links[2]['url']
);
}
public function testFilterAndFormatPrependNoteUrl()
{
$indexUrl = 'http://localhost:7469/shaarli/';
- $links = NetscapeBookmarkUtils::filterAndFormat(
- self::$bookmarkService,
+ $links = $this->netscapeBookmarkUtils->filterAndFormat(
self::$formatter,
'public',
true,
$indexUrl
);
$this->assertEquals(
- $indexUrl . '?WDWyig',
+ $indexUrl . 'shaare/WDWyig',
$links[2]['url']
);
}