Issues (3627)

app/bundles/PageBundle/Tests/PageTestAbstract.php (2 issues)

1
<?php
2
3
/*
4
 * @copyright   2016 Mautic Contributors. All rights reserved
5
 * @author      Mautic, Inc.
6
 *
7
 * @link        https://mautic.org
8
 *
9
 * @license     GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
10
 */
11
12
namespace Mautic\PageBundle\Tests;
13
14
use Doctrine\ORM\EntityManager;
15
use Mautic\CoreBundle\Helper\CookieHelper;
16
use Mautic\CoreBundle\Helper\CoreParametersHelper;
17
use Mautic\CoreBundle\Helper\IpLookupHelper;
18
use Mautic\CoreBundle\Helper\UrlHelper;
19
use Mautic\CoreBundle\Helper\UserHelper;
20
use Mautic\CoreBundle\Translation\Translator;
21
use Mautic\LeadBundle\Entity\Lead;
22
use Mautic\LeadBundle\Model\CompanyModel;
23
use Mautic\LeadBundle\Model\FieldModel;
24
use Mautic\LeadBundle\Model\LeadModel;
25
use Mautic\LeadBundle\Tracker\ContactTracker;
26
use Mautic\LeadBundle\Tracker\DeviceTracker;
27
use Mautic\PageBundle\Entity\HitRepository;
28
use Mautic\PageBundle\Entity\PageRepository;
29
use Mautic\PageBundle\Model\PageModel;
30
use Mautic\PageBundle\Model\RedirectModel;
31
use Mautic\PageBundle\Model\TrackableModel;
32
use Mautic\QueueBundle\Queue\QueueService;
33
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
34
use Symfony\Component\EventDispatcher\EventDispatcher;
35
36
class PageTestAbstract extends WebTestCase
37
{
38
    protected static $mockId   = 123;
39
    protected static $mockName = 'Mock test name';
40
    protected $mockTrackingId;
41
    protected $container;
42
43
    protected function setUp(): void
44
    {
45
        self::bootKernel();
46
        $this->mockTrackingId = hash('sha1', uniqid(mt_rand(), true));
47
        $this->container      = self::$kernel->getContainer();
48
    }
49
50
    /**
51
     * @return PageModel
52
     */
53
    protected function getPageModel($transliterationEnabled = true)
54
    {
55
        $cookieHelper = $this
56
            ->getMockBuilder(CookieHelper::class)
57
            ->disableOriginalConstructor()
58
            ->getMock();
59
60
        $router = $this->container->get('router');
61
62
        $ipLookupHelper = $this
63
            ->getMockBuilder(IpLookupHelper::class)
64
            ->disableOriginalConstructor()
65
            ->getMock();
66
67
        $leadModel = $this
68
            ->getMockBuilder(LeadModel::class)
69
            ->disableOriginalConstructor()
70
            ->getMock();
71
72
        $leadFieldModel = $this
73
            ->getMockBuilder(FieldModel::class)
74
            ->disableOriginalConstructor()
75
            ->getMock();
76
77
        $redirectModel = $this->getRedirectModel();
78
79
        $companyModel = $this
80
            ->getMockBuilder(CompanyModel::class)
81
            ->disableOriginalConstructor()
82
            ->getMock();
83
84
        $trackableModel = $this
85
            ->getMockBuilder(TrackableModel::class)
86
            ->disableOriginalConstructor()
87
            ->getMock();
88
89
        $dispatcher = $this
90
            ->getMockBuilder(EventDispatcher::class)
91
            ->disableOriginalConstructor()
92
            ->getMock();
93
94
        $translator = $this
95
            ->getMockBuilder(Translator::class)
96
            ->disableOriginalConstructor()
97
            ->getMock();
98
99
        $entityManager = $this
100
            ->getMockBuilder(EntityManager::class)
101
            ->disableOriginalConstructor()
102
            ->getMock();
103
104
        $pageRepository = $this
105
            ->getMockBuilder(PageRepository::class)
106
            ->disableOriginalConstructor()
107
            ->getMock();
108
109
        $coreParametersHelper = $this
110
            ->getMockBuilder(CoreParametersHelper::class)
111
            ->disableOriginalConstructor()
112
            ->getMock();
113
114
        $hitRepository = $this->createMock(HitRepository::class);
115
        $userHelper    = $this->createMock(UserHelper::class);
116
117
        $queueService = $this
118
            ->getMockBuilder(QueueService::class)
119
            ->disableOriginalConstructor()
120
            ->getMock();
121
122
        $contactTracker = $this->createMock(ContactTracker::class);
123
124
        $contactTracker->expects($this
125
            ->any())
126
            ->method('getContact')
127
            ->willReturn($this
128
                ->returnValue(['id' => self::$mockId, 'name' => self::$mockName])
129
            );
130
131
        $queueService->expects($this
132
            ->any())
133
            ->method('isQueueEnabled')
134
            ->will(
135
                $this->returnValue(false)
136
            );
137
138
        $entityManager->expects($this
139
            ->any())
140
            ->method('getRepository')
141
            ->will(
142
                $this->returnValueMap(
143
                    [
144
                        ['MauticPageBundle:Page', $pageRepository],
145
                        ['MauticPageBundle:Hit', $hitRepository],
146
                    ]
147
                )
148
            );
149
150
        $coreParametersHelper->expects($this->any())
151
                ->method('get')
152
                ->with('transliterate_page_title')
153
                ->willReturn($transliterationEnabled);
154
155
        $deviceTrackerMock = $this->createMock(DeviceTracker::class);
156
157
        $pageModel = new PageModel(
158
            $cookieHelper,
159
            $ipLookupHelper,
160
            $leadModel,
161
            $leadFieldModel,
162
            $redirectModel,
163
            $trackableModel,
164
            $queueService,
165
            $companyModel,
166
            $deviceTrackerMock,
167
            $contactTracker,
168
            $coreParametersHelper
169
        );
170
171
        $pageModel->setDispatcher($dispatcher);
172
        $pageModel->setTranslator($translator);
173
        $pageModel->setEntityManager($entityManager);
174
        $pageModel->setRouter($router);
175
        $pageModel->setUserHelper($userHelper);
176
177
        return $pageModel;
178
    }
179
180
    /**
181
     * @return RedirectModel
182
     */
183
    protected function getRedirectModel()
184
    {
185
        $urlHelper = $this
186
            ->getMockBuilder(UrlHelper::class)
187
            ->disableOriginalConstructor()
188
            ->getMock();
189
190
        $mockRedirectModel = $this->getMockBuilder('Mautic\PageBundle\Model\RedirectModel')
0 ignored issues
show
Deprecated Code introduced by
The function PHPUnit\Framework\MockOb...ckBuilder::setMethods() has been deprecated: https://github.com/sebastianbergmann/phpunit/pull/3687 ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

190
        $mockRedirectModel = /** @scrutinizer ignore-deprecated */ $this->getMockBuilder('Mautic\PageBundle\Model\RedirectModel')

This function has been deprecated. The supplier of the function has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the function will be removed and what other function to use instead.

Loading history...
191
            ->setConstructorArgs([$urlHelper])
192
            ->setMethods(['createRedirectEntity', 'generateRedirectUrl'])
193
            ->getMock();
194
195
        $mockRedirect = $this->getMockBuilder('Mautic\PageBundle\Entity\Redirect')
196
            ->getMock();
197
198
        $mockRedirectModel->expects($this->any())
199
            ->method('createRedirectEntity')
200
            ->willReturn($mockRedirect);
201
202
        $mockRedirectModel->expects($this->any())
203
            ->method('generateRedirectUrl')
204
            ->willReturn('http://some-url.com');
205
206
        return $mockRedirectModel;
0 ignored issues
show
Bug Best Practice introduced by
The expression return $mockRedirectModel returns the type PHPUnit\Framework\MockObject\MockObject which is incompatible with the documented return type Mautic\PageBundle\Model\RedirectModel.
Loading history...
207
    }
208
}
209