@@ -45,44 +45,40 @@ public function testCMSPageUrlResolver()
45
45
$ targetPath = $ urlPathGenerator ->getCanonicalUrlPath ($ page );
46
46
$ expectedEntityType = CmsPageUrlRewriteGenerator::ENTITY_TYPE ;
47
47
48
- $ query
49
- = <<<QUERY
50
- {
51
- urlResolver(url:" {$ requestPath }")
52
- {
53
- id
54
- relative_url
55
- type
56
- redirectCode
57
- }
58
- }
59
- QUERY ;
48
+ $ query = $ this ->createQuery ($ requestPath );
60
49
$ response = $ this ->graphQlQuery ($ query );
61
50
$ this ->assertEquals ($ cmsPageId , $ response ['urlResolver ' ]['id ' ]);
62
51
$ this ->assertEquals ($ requestPath , $ response ['urlResolver ' ]['relative_url ' ]);
63
52
$ this ->assertEquals (strtoupper (str_replace ('- ' , '_ ' , $ expectedEntityType )), $ response ['urlResolver ' ]['type ' ]);
64
53
$ this ->assertEquals (0 , $ response ['urlResolver ' ]['redirectCode ' ]);
65
54
66
55
// querying by non seo friendly url path should return seo friendly relative url
67
- $ query
68
- = <<<QUERY
69
- {
70
- urlResolver(url:" {$ targetPath }")
71
- {
72
- id
73
- relative_url
74
- type
75
- redirectCode
76
- }
77
- }
78
- QUERY ;
56
+ $ query = $ this ->createQuery ($ targetPath );
79
57
$ response = $ this ->graphQlQuery ($ query );
80
58
$ this ->assertEquals ($ cmsPageId , $ response ['urlResolver ' ]['id ' ]);
81
59
$ this ->assertEquals ($ requestPath , $ response ['urlResolver ' ]['relative_url ' ]);
82
60
$ this ->assertEquals (strtoupper (str_replace ('- ' , '_ ' , $ expectedEntityType )), $ response ['urlResolver ' ]['type ' ]);
83
61
$ this ->assertEquals (0 , $ response ['urlResolver ' ]['redirectCode ' ]);
84
62
}
85
63
64
+ /**
65
+ * @magentoApiDataFixture Magento/Cms/_files/pages.php
66
+ */
67
+ public function testResolveCMSPageWithQueryParameters ()
68
+ {
69
+ $ page = $ this ->objectManager ->create (\Magento \Cms \Model \Page::class);
70
+ $ page ->load ('page100 ' );
71
+ $ cmsPageId = $ page ->getId ();
72
+ $ requestPath = $ page ->getIdentifier ();
73
+ $ requestPath .= '?key=value ' ;
74
+
75
+ $ query = $ this ->createQuery ($ requestPath );
76
+ $ response = $ this ->graphQlQuery ($ query );
77
+ $ this ->assertNotEmpty ($ response ['urlResolver ' ]);
78
+ $ this ->assertEquals ($ cmsPageId , $ response ['urlResolver ' ]['id ' ]);
79
+ $ this ->assertEquals ($ requestPath , $ response ['urlResolver ' ]['relative_url ' ]);
80
+ }
81
+
86
82
/**
87
83
* Test resolution of '/' path to home page
88
84
*/
@@ -98,10 +94,24 @@ public function testResolveSlash()
98
94
$ page = $ this ->objectManager ->get (\Magento \Cms \Model \Page::class);
99
95
$ page ->load ($ homePageIdentifier );
100
96
$ homePageId = $ page ->getId ();
101
- $ query
102
- = <<<QUERY
97
+ $ query = $ this ->createQuery ('/ ' );
98
+ $ response = $ this ->graphQlQuery ($ query );
99
+ $ this ->assertArrayHasKey ('urlResolver ' , $ response );
100
+ $ this ->assertEquals ($ homePageId , $ response ['urlResolver ' ]['id ' ]);
101
+ $ this ->assertEquals ($ homePageIdentifier , $ response ['urlResolver ' ]['relative_url ' ]);
102
+ $ this ->assertEquals ('CMS_PAGE ' , $ response ['urlResolver ' ]['type ' ]);
103
+ $ this ->assertEquals (0 , $ response ['urlResolver ' ]['redirectCode ' ]);
104
+ }
105
+
106
+ /**
107
+ * @param string $path
108
+ * @return string
109
+ */
110
+ private function createQuery (string $ path ): string
111
+ {
112
+ return <<<QUERY
103
113
{
104
- urlResolver(url:"/ ")
114
+ urlResolver(url:" { $ path } ")
105
115
{
106
116
id
107
117
relative_url
@@ -110,11 +120,5 @@ public function testResolveSlash()
110
120
}
111
121
}
112
122
QUERY ;
113
- $ response = $ this ->graphQlQuery ($ query );
114
- $ this ->assertArrayHasKey ('urlResolver ' , $ response );
115
- $ this ->assertEquals ($ homePageId , $ response ['urlResolver ' ]['id ' ]);
116
- $ this ->assertEquals ($ homePageIdentifier , $ response ['urlResolver ' ]['relative_url ' ]);
117
- $ this ->assertEquals ('CMS_PAGE ' , $ response ['urlResolver ' ]['type ' ]);
118
- $ this ->assertEquals (0 , $ response ['urlResolver ' ]['redirectCode ' ]);
119
123
}
120
124
}
0 commit comments