HookTypeTest.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. declare(strict_types=1);
  3. use PHPUnit\Framework\TestCase;
  4. class HookTypeTest extends TestCase
  5. {
  6. public static function testEntriesReadHookUsesPassArgumentsSignature(): void {
  7. self::assertSame(Minz_HookSignature::PassArguments, Minz_HookType::EntriesRead->signature());
  8. }
  9. public static function testEntriesReadHookPassesIdsAndReadState(): void {
  10. $actual_ids = [];
  11. $actual_is_read = null;
  12. Minz_ExtensionManager::addHook(
  13. Minz_HookType::EntriesRead,
  14. static function (array $ids, bool $is_read) use (&$actual_ids, &$actual_is_read): void {
  15. $actual_ids = $ids;
  16. $actual_is_read = $is_read;
  17. }
  18. );
  19. Minz_ExtensionManager::callHook(Minz_HookType::EntriesRead, ['123', '456'], false);
  20. self::assertSame(['123', '456'], $actual_ids);
  21. self::assertFalse($actual_is_read);
  22. }
  23. public static function testFeedsAfterActualizeHookUsesPassArgumentsSignature(): void {
  24. self::assertSame(Minz_HookSignature::PassArguments, Minz_HookType::FeedsAfterActualize->signature());
  25. }
  26. public static function testFeedsAfterActualizeHookPassesFeedsAndNewArticleCount(): void {
  27. $actual_feeds = null;
  28. $actual_count = null;
  29. $feed = new FreshRSS_Feed('https://example.net/feed.xml');
  30. Minz_ExtensionManager::addHook(
  31. Minz_HookType::FeedsAfterActualize,
  32. static function (array $feeds, int $nbNewArticles) use (&$actual_feeds, &$actual_count): void {
  33. $actual_feeds = $feeds;
  34. $actual_count = $nbNewArticles;
  35. }
  36. );
  37. Minz_ExtensionManager::callHook(Minz_HookType::FeedsAfterActualize, [$feed], 3);
  38. self::assertSame([$feed], $actual_feeds);
  39. self::assertSame(3, $actual_count);
  40. }
  41. }