model = $this->createMock(FocusModel::class); $this->router = $this->createMock(RouterInterface::class); $this->security = $this->createMock(CorePermissions::class); $this->helper = new TokenHelper($this->model, $this->router, $this->security); } public function testFindFocusTokensNotFound(): void { $content = 'content'; self::assertSame([], $this->helper->findFocusTokens($content)); } public function testFindFocusTokensFound(): void { $content = 'content {focus=1}'; self::assertSame(['{focus=1}' => ''], $this->helper->findFocusTokens($content)); } public function testFindFocusTokensFoundAddScriptByFocusPublishedStatus(): void { $focusItemId = 1; $content = "content {focus=$focusItemId}"; $focusItem = new Focus(); $focusItem->setIsPublished(true); $this->model->expects(self::once()) ->method('getEntity') ->with($focusItemId) ->willReturn($focusItem); self::assertSame( ['{focus=1}' => ''], $this->helper->findFocusTokens($content) ); } public function testFindFocusTokensFoundAddScriptByAccessCheck(): void { $focusItemId = 1; $createdById = 2; $content = "content {focus=$focusItemId}"; $focusItem = new Focus(); $focusItem->setIsPublished(false); $focusItem->setCreatedBy($createdById); $this->model->expects(self::once()) ->method('getEntity') ->with($focusItemId) ->willReturn($focusItem); $this->security->expects(self::once()) ->method('hasEntityAccess') ->with( 'focus:items:viewown', 'focus:items:viewother', $focusItem->getCreatedBy() ) ->willReturn(true); self::assertSame( ['{focus=1}' => ''], $this->helper->findFocusTokens($content) ); } }