namespace Shaarli\Bookmark;
-use PHPUnit\Framework\TestCase;
use Shaarli\Bookmark\Exception\InvalidBookmarkException;
+use Shaarli\TestCase;
/**
* Class BookmarkTest
$exception = $e;
}
$this->assertNotNull($exception);
- $this->assertContains('- ID: '. PHP_EOL, $exception->getMessage());
- }
-
- /**
- * Test validate() with a a bookmark with a non integer ID.
- */
- public function testValidateNotValidStringId()
- {
- $bookmark = new Bookmark();
- $bookmark->setId('str');
- $bookmark->setShortUrl('abc');
- $bookmark->setCreated(\DateTime::createFromFormat('Ymd_His', '20190514_200102'));
- $exception = null;
- try {
- $bookmark->validate();
- } catch (InvalidBookmarkException $e) {
- $exception = $e;
- }
- $this->assertNotNull($exception);
- $this->assertContains('- ID: str'. PHP_EOL, $exception->getMessage());
+ $this->assertContainsPolyfill('- ID: '. PHP_EOL, $exception->getMessage());
}
/**
$exception = $e;
}
$this->assertNotNull($exception);
- $this->assertContains('- ShortUrl: '. PHP_EOL, $exception->getMessage());
+ $this->assertContainsPolyfill('- ShortUrl: '. PHP_EOL, $exception->getMessage());
}
/**
$exception = $e;
}
$this->assertNotNull($exception);
- $this->assertContains('- Created: '. PHP_EOL, $exception->getMessage());
- }
-
- /**
- * Test validate() with a a bookmark with a bad created datetime.
- */
- public function testValidateNotValidBadCreated()
- {
- $bookmark = new Bookmark();
- $bookmark->setId(1);
- $bookmark->setShortUrl('abc');
- $bookmark->setCreated('hi!');
- $exception = null;
- try {
- $bookmark->validate();
- } catch (InvalidBookmarkException $e) {
- $exception = $e;
- }
- $this->assertNotNull($exception);
- $this->assertContains('- Created: Not a DateTime object'. PHP_EOL, $exception->getMessage());
+ $this->assertContainsPolyfill('- Created: '. PHP_EOL, $exception->getMessage());
}
/**
$bookmark->deleteTag('nope');
$this->assertEquals(['tag1', 'tag2', 'chair'], $bookmark->getTags());
}
+
+ /**
+ * Test shouldUpdateThumbnail() with bookmarks needing an update.
+ */
+ public function testShouldUpdateThumbnail(): void
+ {
+ $bookmark = (new Bookmark())->setUrl('http://domain.tld/with-image');
+
+ static::assertTrue($bookmark->shouldUpdateThumbnail());
+
+ $bookmark = (new Bookmark())
+ ->setUrl('http://domain.tld/with-image')
+ ->setThumbnail('unknown file')
+ ;
+
+ static::assertTrue($bookmark->shouldUpdateThumbnail());
+ }
+
+ /**
+ * Test shouldUpdateThumbnail() with bookmarks that should not update.
+ */
+ public function testShouldNotUpdateThumbnail(): void
+ {
+ $bookmark = (new Bookmark());
+
+ static::assertFalse($bookmark->shouldUpdateThumbnail());
+
+ $bookmark = (new Bookmark())
+ ->setUrl('ftp://domain.tld/other-protocol', ['ftp'])
+ ;
+
+ static::assertFalse($bookmark->shouldUpdateThumbnail());
+
+ $bookmark = (new Bookmark())
+ ->setUrl('http://domain.tld/with-image')
+ ->setThumbnail(__FILE__)
+ ;
+
+ static::assertFalse($bookmark->shouldUpdateThumbnail());
+
+ $bookmark = (new Bookmark())->setUrl('/shaare/abcdef');
+
+ static::assertFalse($bookmark->shouldUpdateThumbnail());
+ }
}