Skip to content

Commit 225f191

Browse files
committed
REST API: Introduce Autosaves controller and endpoint.
- Adds `WP_REST_Autosaves_Controller` which extends `WP_REST_Revisions_Controller`. - Autosaves endpoint is registered for all post types except attachment because even post types without revisions enabled are expected to autosave. - Because setting the `DOING_AUTOSAVE` constant pollutes the test suite, autosaves tests are run last. We may want to improve upon this later. Also, use a truly impossibly high number in User Controller tests. The number `100`, (or `7777` in `trunk`), could be valid in certain test run configurations. The `REST_TESTS_IMPOSSIBLY_HIGH_NUMBER` constant is impossibly high for this very reason. Finally, Skip Autosaves controller test for multisite. There's a PHP 5.2 edge case where paths calculated differently, possibly caused by differing version of PHPUnit. Props adamsilverstein, aduth, azaozz, danielbachhuber, rmccue, danielbachhuber. Merges [43767], [43768], [43769] to trunk. See #45132, #45131. Fixes #45128, #43316. git-svn-id: https://develop.svn.wordpress.org/trunk@44126 602fd350-edb4-49c9-b593-d223f7449a82
1 parent 8c5f87d commit 225f191

9 files changed

Lines changed: 1531 additions & 9 deletions

File tree

phpunit.xml.dist

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,24 @@
66
>
77
<testsuites>
88
<!-- Default test suite to run all tests -->
9-
<testsuite>
9+
<testsuite name="default">
1010
<directory suffix=".php">tests/phpunit/tests</directory>
1111
<exclude>tests/phpunit/tests/actions/closures.php</exclude>
1212
<exclude>tests/phpunit/tests/image/editor.php</exclude>
1313
<exclude>tests/phpunit/tests/image/editorGd.php</exclude>
1414
<exclude>tests/phpunit/tests/image/editorImagick.php</exclude>
1515
<exclude>tests/phpunit/tests/oembed/headers.php</exclude>
16+
<exclude>tests/phpunit/tests/rest-api/rest-autosaves-controller.php</exclude>
1617
<file phpVersion="5.3.0">tests/phpunit/tests/actions/closures.php</file>
1718
<file phpVersion="5.3.0">tests/phpunit/tests/image/editor.php</file>
1819
<file phpVersion="5.3.0">tests/phpunit/tests/image/editorGd.php</file>
1920
<file phpVersion="5.3.0">tests/phpunit/tests/image/editorImagick.php</file>
2021
<file phpVersion="5.3.0">tests/phpunit/tests/oembed/headers.php</file>
2122
</testsuite>
23+
<!-- Sets the DOING_AUTOSAVE constant, so needs to be run last -->
24+
<testsuite name="restapi-autosave">
25+
<file>tests/phpunit/tests/rest-api/rest-autosaves-controller.php</file>
26+
</testsuite>
2227
</testsuites>
2328
<groups>
2429
<exclude>

src/wp-includes/rest-api.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,11 @@ function create_initial_rest_routes() {
193193
$revisions_controller = new WP_REST_Revisions_Controller( $post_type->name );
194194
$revisions_controller->register_routes();
195195
}
196+
197+
if ( 'attachment' !== $post_type->name ) {
198+
$autosaves_controller = new WP_REST_Autosaves_Controller( $post_type->name );
199+
$autosaves_controller->register_routes();
200+
}
196201
}
197202

198203
// Post types.

0 commit comments

Comments
 (0)