Opened 3 years ago
Closed 3 years ago
#41561 closed enhancement (fixed)
Remove usage of DOING_AJAX in the test suite
| Reported by: |
|
Owned by: |
|
|---|---|---|---|
| Milestone: | 4.9 | Priority: | normal |
| Severity: | normal | Version: | |
| Component: | Build/Test Tools | Keywords: | needs-unit-tests |
| Focuses: | Cc: |
Description
In the test suite, several tests define DOING_AJAX to true. This effectively pollutes the tests which follow them, and prevent any other tests from operating in a non-Ajax state when they need to (for example, Tests_WP_Customize_Manager::test_not_doing_ajax()).
Instances of DOING_AJAX should be replaced by use of a filter, for example add_filter( 'wp_doing_ajax', '__return_true' ).
Attachments (3)
Change History (14)
#2
@
3 years ago
- Keywords has-patch dev-feedback added; needs-patch removed
I was looking on simple tickets to start with unit tests so this was perfect.
I checked and with this changes there was no problems with the tests :-)
This ticket was mentioned in Slack in #core by mte90. View the logs.
3 years ago
#4
@
3 years ago
- Keywords dev-feedback removed
- Milestone changed from Awaiting Review to 4.9
@Mte90 Looks good!
- The
test_not_doing_ajax()test can useadd_filter( 'wp_doing_ajax', '__return_false' )to force a non-Ajax request, and then remove themarkTestSkippedcall. - Does this cover all instances of
DOING_AJAXin the test suite?
#5
@
3 years ago
- I will do a new patch for that asap
- I searched in all the code about the use of the constant and replace with the function :-)
#8
@
3 years ago
I am not sure the current implementation resolves the issue properly. Adding a filter in the static setUpBeforeClass method will still exist in test cases that are run later. I advise putting the hook into the setUp method like the wp_die_ajax_handler hook.
I think this would also be more in line with the WP_UnitTestCase class as it backs up all hooks in the setUp method.
#9
@
3 years ago
- Keywords needs-unit-tests added; has-patch removed
- Resolution fixed deleted
- Status changed from closed to reopened
Re-opening as per comment above.
#10
@
3 years ago
41561.3.diff moves the filter from setUpBeforeClass() to setUp() in WP_Ajax_UnitTestCase. All other occurrences are in the correct location.
Previously: #25669