Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
NoCookiesObserverTest.php
Go to the documentation of this file.
1 <?php
7 
8 class NoCookiesObserverTest extends \PHPUnit\Framework\TestCase
9 {
13  protected $noCookiesObserver;
14 
18  protected $cmsPageMock;
19 
23  protected $scopeConfigMock;
24 
28  protected $observerMock;
29 
33  protected $eventMock;
34 
38  protected $objectMock;
39 
40  protected function setUp()
41  {
42  $this->cmsPageMock = $this
43  ->getMockBuilder(\Magento\Cms\Helper\Page::class)
44  ->disableOriginalConstructor()
45  ->getMock();
46  $this->scopeConfigMock = $this
47  ->getMockBuilder(\Magento\Framework\App\Config\ScopeConfigInterface::class)
48  ->disableOriginalConstructor()
49  ->getMock();
50  $this->observerMock = $this
51  ->getMockBuilder(\Magento\Framework\Event\Observer::class)
52  ->disableOriginalConstructor()
53  ->getMock();
54  $this->eventMock = $this
55  ->getMockBuilder(\Magento\Framework\Event::class)
56  ->setMethods(
57  [
58  'getStatus',
59  'getRedirect',
60  ]
61  )
62  ->disableOriginalConstructor()
63  ->getMock();
64  $this->objectMock = $this
65  ->getMockBuilder(\Magento\Framework\DataObject::class)
66  ->setMethods(
67  [
68  'setLoaded',
69  'setForwardModule',
70  'setForwardController',
71  'setForwardAction',
72  'setRedirectUrl',
73  'setRedirect',
74  'setPath',
75  'setArguments',
76  ]
77  )
78  ->disableOriginalConstructor()
79  ->getMock();
80 
81  $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
82  $this->noCookiesObserver = $objectManager->getObject(
83  \Magento\Cms\Observer\NoCookiesObserver::class,
84  [
85  'cmsPage' => $this->cmsPageMock,
86  'scopeConfig' => $this->scopeConfigMock
87  ]
88  );
89  }
90 
96  public function testNoCookies($pageUrl)
97  {
98  $pageId = 1;
99 
100  $this->observerMock
101  ->expects($this->atLeastOnce())
102  ->method('getEvent')
103  ->willReturn($this->eventMock);
104  $this->eventMock
105  ->expects($this->atLeastOnce())
106  ->method('getRedirect')
107  ->willReturn($this->objectMock);
108  $this->scopeConfigMock
109  ->expects($this->atLeastOnce())
110  ->method('getValue')
111  ->with('web/default/cms_no_cookies', 'store')
112  ->willReturn($pageId);
113  $this->cmsPageMock
114  ->expects($this->atLeastOnce())
115  ->method('getPageUrl')
116  ->with($pageId)
117  ->willReturn($pageUrl);
118  $this->objectMock
119  ->expects($this->any())
120  ->method('setRedirectUrl')
121  ->with($pageUrl)
122  ->willReturnSelf();
123  $this->objectMock
124  ->expects($this->any())
125  ->method('setRedirect')
126  ->with(true)
127  ->willReturnSelf();
128  $this->objectMock
129  ->expects($this->any())
130  ->method('setPath')
131  ->with('cookie/index/noCookies')
132  ->willReturnSelf();
133  $this->objectMock
134  ->expects($this->any())
135  ->method('setArguments')
136  ->with([])
137  ->willReturnSelf();
138 
139  $this->assertEquals($this->noCookiesObserver, $this->noCookiesObserver->execute($this->observerMock));
140  }
141 
145  public function noCookiesDataProvider()
146  {
147  return [
148  'url IS empty' => ['pageUrl' => ''],
149  'url NOT empty' => ['pageUrl' => '/some/url']
150  ];
151  }
152 }
$objectManager
Definition: bootstrap.php:17