get_error_code()); self::assertSame('lit_validation_failed', MediaGuard::attachment(0)->get_error_code()); } public function testMissingOrNonAttachmentIsNotFound(): void { Functions\when('get_post')->justReturn(null); self::assertSame('lit_not_found', MediaGuard::attachment(33)->get_error_code()); Functions\when('get_post')->justReturn(new WP_Post(['ID' => 33, 'post_type' => 'page'])); self::assertSame('lit_not_found', MediaGuard::attachment(33)->get_error_code()); } public function testChecksTheRequestedCapabilityOnTheAttachment(): void { $attachment = new WP_Post(['ID' => 33, 'post_type' => 'attachment', 'post_status' => 'inherit']); Functions\when('get_post')->justReturn($attachment); Functions\expect('current_user_can')->once()->with('delete_post', 33)->andReturn(false); self::assertSame('lit_forbidden', MediaGuard::attachment('33', 'delete_post')->get_error_code()); } public function testRefusesTrashedAttachmentsUnlessAllowed(): void { $attachment = new WP_Post(['ID' => 33, 'post_type' => 'attachment', 'post_status' => 'trash']); Functions\when('get_post')->justReturn($attachment); Functions\when('current_user_can')->justReturn(true); $error = MediaGuard::attachment(33); self::assertSame('lit_validation_failed', $error->get_error_code()); self::assertStringContainsString('Papierkorb', $error->get_error_message()); self::assertSame($attachment, MediaGuard::attachment(33, 'read_post', true)); } }