5
5
*/
6
6
namespace Magento \Backend \Model ;
7
7
8
+ use Magento \TestFramework \Helper \Bootstrap ;
9
+ use Magento \Framework \App \RequestInterface ;
10
+ use Magento \Framework \Url \ParamEncoder ;
11
+ use Magento \Framework \Session \SessionManagerInterface ;
12
+ use Magento \Framework \Encryption \EncryptorInterface ;
13
+
8
14
/**
9
15
* Test class for \Magento\Backend\Model\UrlInterface.
10
16
*
13
19
class UrlTest extends \PHPUnit_Framework_TestCase
14
20
{
15
21
/**
16
- * @var \Magento\Backend\Model\UrlInterface
22
+ * @var RequestInterface
23
+ */
24
+ private $ request ;
25
+
26
+ /**
27
+ * @var UrlInterface
17
28
*/
18
29
protected $ _model ;
19
30
20
31
protected function setUp ()
21
32
{
22
- parent ::setUp ();
23
- $ this ->_model = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ()->create (
24
- 'Magento\Backend\Model\UrlInterface '
25
- );
33
+ $ this ->request = Bootstrap::getObjectManager ()->get (RequestInterface::class);
34
+ $ this ->_model = Bootstrap::getObjectManager ()->create (UrlInterface::class);
26
35
}
27
36
28
37
/**
@@ -34,6 +43,38 @@ public function testGetUrl()
34
43
{
35
44
$ url = $ this ->_model ->getUrl ('adminhtml/auth/login ' );
36
45
$ this ->assertContains ('admin/auth/login/key/ ' , $ url );
46
+
47
+ $ routeParams = [
48
+ '_escape_params ' => false ,
49
+ 'param1 ' => 'a1== '
50
+ ];
51
+ $ url = $ this ->_model ->getUrl ('path ' , $ routeParams );
52
+ $ this ->assertContains ('/param1/a1==/ ' , $ url );
53
+
54
+ $ this ->request ->setParams (['param2 ' => 'a2== ' ]);
55
+ $ routeParams = [
56
+ '_current ' => true ,
57
+ '_escape_params ' => false ,
58
+ ];
59
+ $ url = $ this ->_model ->getUrl ('path ' , $ routeParams );
60
+ $ this ->assertContains ('/param2/a2==/ ' , $ url );
61
+
62
+ /** @var ParamEncoder $paramEncoder */
63
+ $ paramEncoder = Bootstrap::getObjectManager ()->get (ParamEncoder::class);
64
+ $ routeParams = [
65
+ '_escape_params ' => true ,
66
+ 'param3 ' => 'a3== '
67
+ ];
68
+ $ url = $ this ->_model ->getUrl ('path ' , $ routeParams );
69
+ $ this ->assertContains ('/param3/ ' . $ paramEncoder ->encode ('a3== ' ) . '/ ' , $ url );
70
+
71
+ $ this ->request ->setParams (['param4 ' => 'a4== ' ]);
72
+ $ routeParams = [
73
+ '_current ' => true ,
74
+ '_escape_params ' => true ,
75
+ ];
76
+ $ url = $ this ->_model ->getUrl ('path ' , $ routeParams );
77
+ $ this ->assertContains ('/param4/ ' . $ paramEncoder ->encode ('a4== ' ) . '/ ' , $ url );
37
78
}
38
79
39
80
/**
@@ -46,20 +87,17 @@ public function testGetUrl()
46
87
*/
47
88
public function testGetSecretKey ($ routeName , $ controller , $ action , $ expectedHash )
48
89
{
49
- /** @var $request \Magento\Framework\App\RequestInterface */
50
- $ request = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ()
51
- ->create ('Magento\Framework\App\RequestInterface ' );
52
- $ request ->setControllerName (
90
+ $ this ->request ->setControllerName (
53
91
'default_controller '
54
92
)->setActionName (
55
93
'default_action '
56
94
)->setRouteName (
57
95
'default_router '
58
96
);
59
97
60
- $ this ->_model ->setRequest ($ request );
61
- \ Magento \ TestFramework \ Helper \ Bootstrap::getObjectManager ()->get (
62
- ' Magento\Framework\Session\ SessionManagerInterface'
98
+ $ this ->_model ->setRequest ($ this -> request );
99
+ Bootstrap::getObjectManager ()->get (
100
+ SessionManagerInterface::class
63
101
)->setData (
64
102
'_form_key ' ,
65
103
'salt '
@@ -72,10 +110,8 @@ public function testGetSecretKey($routeName, $controller, $action, $expectedHash
72
110
*/
73
111
public function getSecretKeyDataProvider ()
74
112
{
75
- $ objectManager = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ();
76
-
77
- /** @var $encryptor \Magento\Framework\Encryption\EncryptorInterface */
78
- $ encryptor = $ objectManager ->get ('Magento\Framework\Encryption\EncryptorInterface ' );
113
+ /** @var $encryptor EncryptorInterface */
114
+ $ encryptor = Bootstrap::getObjectManager ()->get (EncryptorInterface::class);
79
115
80
116
return [
81
117
[
@@ -129,19 +165,14 @@ public function getSecretKeyDataProvider()
129
165
*/
130
166
public function testGetSecretKeyForwarded ()
131
167
{
132
- $ objectManager = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ();
133
-
134
- /** @var $encryptor \Magento\Framework\Encryption\EncryptorInterface */
135
- $ encryptor = $ objectManager ->get ('Magento\Framework\Encryption\EncryptorInterface ' );
136
-
137
- /** @var $request \Magento\Framework\App\Request\Http */
138
- $ request = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ()
139
- ->create ('Magento\Framework\App\RequestInterface ' );
140
- $ request ->setControllerName ('controller ' )->setActionName ('action ' );
141
- $ request ->initForward ()->setControllerName (uniqid ())->setActionName (uniqid ());
142
- $ this ->_model ->setRequest ($ request );
143
- \Magento \TestFramework \Helper \Bootstrap::getObjectManager ()->get (
144
- 'Magento\Framework\Session\SessionManagerInterface '
168
+ /** @var $encryptor EncryptorInterface */
169
+ $ encryptor = Bootstrap::getObjectManager ()->get (EncryptorInterface::class);
170
+
171
+ $ this ->request ->setControllerName ('controller ' )->setActionName ('action ' );
172
+ $ this ->request ->initForward ()->setControllerName (uniqid ())->setActionName (uniqid ());
173
+ $ this ->_model ->setRequest ($ this ->request );
174
+ Bootstrap::getObjectManager ()->get (
175
+ SessionManagerInterface::class
145
176
)->setData (
146
177
'_form_key ' ,
147
178
'salt '
0 commit comments