Skip to content

ISSUE-27397 - Fix phrase handling in widget validation #28379

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

zaximus84
Copy link

Description (*)

The doc block in \Magento\Widget\Model\Widget\Instance::validate indicates that it can return a boolean or phrase object, but \Magento\Widget\Controller\Adminhtml\Widget\Instance\Validate doesn't handle the phrase object properly. This PR updates the controller to recognize a phrase result value as an error message and output it to the user.

Fixed Issues (if relevant)

  1. Fixes Creating custom widget instance validation is weird due to controller type mismatch #27397

Manual testing scenarios (*)

  1. Create a custom widget type (in code).
  2. Ensure that the widget class implements the validate() method and returns an instance of \Magento\Framework\Phrase.
  3. In admin, go to Content > Widgets.
  4. Click Add Widget.
  5. Select the custom widget type and save.
  6. Instead of saving, an error message should appear with the text from the widget's validate method.

Contribution checklist (*)

  • Pull request has a meaningful description of its purpose
  • All commits are accompanied by meaningful commit messages
  • All new or changed code is covered with unit/integration tests (if applicable)
  • All automated tests passed successfully (all builds are green)

…translation phrase result as an error message
@m2-assistant
Copy link

m2-assistant bot commented May 26, 2020

Hi @zaximus84. Thank you for your contribution
Here is some useful tips how you can test your changes using Magento test environment.
Add the comment under your pull request to deploy test or vanilla Magento instance:

  • @magento give me test instance - deploy test instance based on PR changes
  • @magento give me 2.4-develop instance - deploy vanilla Magento instance

❗ Automated tests can be triggered manually with an appropriate comment:

  • @magento run all tests - run or re-run all required tests against the PR changes
  • @magento run <test-build(s)> - run or re-run specific test build(s)
    For example: @magento run Unit Tests

<test-build(s)> is a comma-separated list of build names. Allowed build names are:

  1. Database Compare
  2. Functional Tests CE
  3. Functional Tests EE,
  4. Functional Tests B2B
  5. Integration Tests
  6. Magento Health Index
  7. Sample Data Tests CE
  8. Sample Data Tests EE
  9. Sample Data Tests B2B
  10. Static Tests
  11. Unit Tests
  12. WebAPI Tests

You can find more information about the builds here

ℹ️ Please run only needed test builds instead of all when developing. Please run all test builds before sending your PR for review.

For more details, please, review the Magento Contributor Guide documentation.

@zaximus84
Copy link
Author

@magento run all tests

@ghost ghost assigned aleron75 May 27, 2020
@aleron75 aleron75 added the Auto-Tests: Not Required Changes in Pull Request does not require coverage by auto-tests label May 27, 2020
@zaximus84
Copy link
Author

@magento run all tests

@sidolov sidolov added Priority: P3 May be fixed according to the position in the backlog. Severity: S3 Affects non-critical data or functionality and does not force users to employ a workaround. labels Aug 17, 2020
Copy link
Contributor

@sidolov sidolov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zaximus84 please, cover changes with automated test

@gabrieldagama
Copy link
Contributor

Risk set to low since the functionality may not affect other areas.

@engcom-Charlie engcom-Charlie self-assigned this Sep 21, 2020
@engcom-Charlie
Copy link
Contributor

@zaximus84 I'll take care of the test coverage.

@engcom-Charlie
Copy link
Contributor

@magento run all tests

@ihor-sviziev ihor-sviziev added Auto-Tests: Covered All changes in Pull Request is covered by auto-tests and removed Auto-Tests: Not Required Changes in Pull Request does not require coverage by auto-tests labels Sep 23, 2020
@ghost ghost assigned ihor-sviziev Sep 23, 2020
@magento-engcom-team
Copy link
Contributor

Hi @ihor-sviziev, thank you for the review.
ENGCOM-8250 has been created to process this Pull Request

@engcom-Alfa
Copy link
Contributor

✔️ QA Passed

Manual testing scenario:

  1. Create a custom widget type (in code).
  2. Ensure that the widget class implements the validate() method and returns an instance of \Magento\Framework\Phrase.
  3. In admin, go to Content > Widgets.
  4. Click Add Widget.
  5. Select the custom widget type and save.

After ✔️ The error message appears with the text from the widget's validate method

Screenshot from 2020-09-24 12-30-22

@m2-assistant
Copy link

m2-assistant bot commented Sep 25, 2020

Hi @zaximus84, thank you for your contribution!
Please, complete Contribution Survey, it will take less than a minute.
Your feedback will help us to improve contribution process.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Auto-Tests: Covered All changes in Pull Request is covered by auto-tests Award: bug fix Component: Widget Partner: Blue Acorn iCi Partner: Mediotype partners-contribution Pull Request is created by Magento Partner Priority: P3 May be fixed according to the position in the backlog. Progress: accept QA: Added to Regression Scope Scenario was analysed and added to Regression Testing Scope Release Line: 2.4 Risk: low Severity: S3 Affects non-critical data or functionality and does not force users to employ a workaround.
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Creating custom widget instance validation is weird due to controller type mismatch
8 participants