Skip to content

Commit f123109

Browse files
authored
Merge pull request #33427 from mmezhensky/33194-upgrade-swagger-ui
33194: Update Swagger UI to 3.51.1 version and configure security definitions
2 parents 06e30fc + cdc5173 commit f123109

File tree

20 files changed

+166
-472
lines changed

20 files changed

+166
-472
lines changed

app/code/Magento/Swagger/Test/Mftf/ActionGroup/StorefrontApplyAdminTokenOnSwaggerPageActionGroup.xml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,13 @@
1515
<argument name="token" type="string" defaultValue=""/>
1616
</arguments>
1717

18-
<clearField selector="{{SwaggerHeaderSection.apiKeyInput}}" stepKey="clearApiTokenField"/>
19-
<fillField selector="{{SwaggerHeaderSection.apiKeyInput}}" userInput="{{token}}" stepKey="fillApiTokenInput"/>
20-
<click selector="{{SwaggerHeaderSection.applyButton}}" stepKey="clickApplyButton" />
18+
<click selector="{{SwaggerAuthorizeSection.authorizeButtonUnlocked}}" stepKey="clickAuthorizeButton"/>
19+
<waitForElementVisible selector="{{SwaggerAuthorizeSection.apiKeyInput}}" stepKey="waitModalPopUp"/>
20+
<clearField selector="{{SwaggerAuthorizeSection.apiKeyInput}}" stepKey="clearApiTokenField"/>
21+
<fillField selector="{{SwaggerAuthorizeSection.apiKeyInput}}" userInput="{{token}}" stepKey="fillApiTokenInput"/>
22+
<comment userInput="Comment is added to preserve the step key for backward compatibility" stepKey="clickApplyButton"/>
23+
<click selector="{{SwaggerAuthorizeSection.authorizeModalButton}}" stepKey="clickModalAuthorizeButton"/>
24+
<waitForPageLoad stepKey="waitForPageReloaded"/>
25+
<click selector="{{SwaggerAuthorizeSection.closeModalButton}}" stepKey="clickModalCloseButton"/>
2126
</actionGroup>
2227
</actionGroups>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
10+
<actionGroup name="StorefrontSwaggerLogoutActionGroup">
11+
<annotations>
12+
<description>Logout Admin Token on Swagger Page</description>
13+
</annotations>
14+
15+
<click selector="{{SwaggerAuthorizeSection.authorizeButtonLocked}}" stepKey="clickAuthorizeButton"/>
16+
<click selector="{{SwaggerAuthorizeSection.logoutModalButton}}" stepKey="clickModalLogoutButton"/>
17+
<waitForPageLoad stepKey="waitForPageReloaded"/>
18+
<click selector="{{SwaggerAuthorizeSection.closeModalButton}}" stepKey="clickModalCloseButton" />
19+
<seeElementInDOM selector="{{SwaggerAuthorizeSection.authorizeButtonUnlocked}}" stepKey="assertIsLoggedOut"/>
20+
</actionGroup>
21+
</actionGroups>

app/code/Magento/Swagger/Test/Mftf/Page/SwaggerPage.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
<pages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/PageObject.xsd">
1010
<page name="StorefrontSwaggerPage" url="/swagger" area="storefront" module="Swagger">
11+
<section name="SwaggerAuthorizeSection"/>
1112
<section name="SwaggerHeaderSection"/>
1213
<section name="SwaggerApiListSection"/>
1314
</page>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
10+
<section name="SwaggerAuthorizeSection">
11+
<element name="authorizeButtonUnlocked" type="button" selector=".btn.authorize.unlocked"/>
12+
<element name="authorizeButtonLocked" type="button" selector=".btn.authorize.locked"/>
13+
<element name="authorizeModalButton" type="button" selector=".btn.auth.authorize"/>
14+
<element name="logoutModalButton" type="button" selector=".btn.modal-btn.auth"/>
15+
<element name="closeModalButton" type="button" selector=".btn.modal-btn.auth.btn-done"/>
16+
<element name="apiKeyInput" type="input" selector=".auth-container .wrapper input"/>
17+
</section>
18+
</sections>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<!--
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
-->
7+
8+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
9+
<test name="StorefrontMagentoApiSwaggerActionsExistTest">
10+
<annotations>
11+
<features value="Swagger"/>
12+
<stories value="Swagger via the Storefront"/>
13+
<title value="Authorize and logout on Swagger page"/>
14+
<description value="Authorize and logout on Swagger page use API Key"/>
15+
<severity value="CRITICAL"/>
16+
</annotations>
17+
<before>
18+
<getOTP stepKey="getOtpCode"/>
19+
<createData entity="adminApiToken" stepKey="createAdminToken">
20+
<field key="otp">{$getOtpCode}</field>
21+
</createData>
22+
</before>
23+
<after></after>
24+
<actionGroup ref="StorefrontGoToSwaggerPageActionGroup" stepKey="goToSwaggerPage"/>
25+
<actionGroup ref="StorefrontApplyAdminTokenOnSwaggerPageActionGroup" stepKey="applyAdminToken">
26+
<argument name="token" value="$createAdminToken.return$"/>
27+
</actionGroup>
28+
<seeElement selector="{{SwaggerApiListSection.swaggerActionTitle('storeStoreRepositoryV1')}}" stepKey="assertTitleOfFirstAction"/>
29+
<seeElement selector="{{SwaggerApiListSection.swaggerActionTitle('quoteCartRepositoryV1')}}" stepKey="assertTitleOfSecondAction"/>
30+
<seeElement selector="{{SwaggerApiListSection.swaggerActionTitle('catalogProductRepositoryV1')}}" stepKey="assertTitleOfThirdAction"/>
31+
<actionGroup ref="StorefrontSwaggerLogoutActionGroup" stepKey="swaggerLogout"/>
32+
</test>
33+
</tests>

app/code/Magento/Swagger/view/frontend/layout/swagger_index_index.xml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@
1212
<!--<title>Swagger UI assets</title>-->
1313
<css src='Magento_Swagger::swagger-ui/css/style.css' media='screen' rel='stylesheet' type='text/css'/>
1414
<css src='Magento_Swagger::swagger-ui/css/swagger-ui.css' media='screen' rel='stylesheet' type='text/css'/>
15-
<link src='Magento_Swagger::swagger-ui/js/lang/translator.js' type='text/javascript' defer="defer"/>
16-
<link src='Magento_Swagger::swagger-ui/js/lang/ru.js' type='text/javascript' defer="defer"/>
17-
<link src='Magento_Swagger::swagger-ui/js/lang/en.js' type='text/javascript' defer="defer"/>
1815
<link src='Magento_Swagger::swagger-ui/js/swagger-ui-bundle.min.js' type='text/javascript' defer="defer"/>
1916
<link src='Magento_Swagger::swagger-ui/js/swagger-ui-standalone-preset.min.js' type='text/javascript' defer="defer"/>
2017
<link src='Magento_Swagger::swagger-ui/js/magento-swagger.js' type='text/javascript' defer="defer"/>

app/code/Magento/Swagger/view/frontend/templates/swagger-ui/index.phtml

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* swagger-ui - Swagger UI is a dependency-free collection of HTML, JavaScript, and CSS
44
* assets that dynamically generate beautiful documentation from a Swagger-compliant API
55
*
6-
* @version v2.1.1
6+
* @version v3.51.1
77
* @link http://swagger.io
88
* @license Apache-2.0
99
*
@@ -14,6 +14,7 @@
1414

1515
/**
1616
* @var \Magento\Swagger\Block\Index $block
17+
* @var \Magento\Framework\Escaper $escaper
1718
*/
1819

1920
$schemaUrl = $block->getSchemaUrl();
@@ -53,16 +54,4 @@ $schemaUrl = $block->getSchemaUrl();
5354
</defs>
5455
</svg>
5556

56-
<div id='header'>
57-
<div class="swagger-ui-wrap">
58-
<a id="logo" href="http://swagger.io">swagger</a>
59-
<form id='api_selector'>
60-
<input id="input_baseUrl" type="hidden" value="<?= $block->escapeUrl($schemaUrl) ?>"/>
61-
<div class='input'><input placeholder="api_key" id="input_apiKey" name="apiKey" type="text"/></div>
62-
<div class='input'><a id="explore" href="#" data-sw-translate>apply</a></div>
63-
</form>
64-
</div>
65-
</div>
66-
67-
<div id="message-bar" class="swagger-ui-wrap" data-sw-translate>&nbsp;</div>
68-
<div id="swagger-ui-container" class="swagger-ui-wrap"></div>
57+
<div id="swagger-ui" data-base-url="<?= $escaper->escapeUrl($schemaUrl) ?>"></div>

app/code/Magento/Swagger/view/frontend/web/swagger-ui/css/style.css

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
html {
2+
box-sizing: border-box;
3+
overflow: -moz-scrollbars-vertical;
4+
overflow-y: scroll;
5+
}
6+
*,
7+
*:before,
8+
*:after {
9+
box-sizing: inherit;
10+
}
111
body {
212
margin:0;
313
background: #fafafa;

app/code/Magento/Swagger/view/frontend/web/swagger-ui/css/swagger-ui.css

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/code/Magento/Swagger/view/frontend/web/swagger-ui/js/lang/en.js

Lines changed: 0 additions & 55 deletions
This file was deleted.

0 commit comments

Comments
 (0)