Changeset 35651
- Timestamp:
- 11/17/2015 02:38:31 AM (9 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/rest-api/rest-functions.php
r35650 r35651 21 21 * @param bool $override Optional. If the route already exists, should we override it? True overrides, 22 22 * false merges (with newer overriding if duplicate keys exist). Default false. 23 * @return bool True on success, false on error. 23 24 */ 24 25 function register_rest_route( $namespace, $route, $args = array(), $override = false ) { 25 26 /** @var WP_REST_Server $wp_rest_server */ 26 27 global $wp_rest_server; 28 29 if ( empty( $namespace ) ) { 30 /* 31 * Non-namespaced routes are not allowed, with the exception of the main 32 * and namespace indexes. If you really need to register a 33 * non-namespaced route, call `WP_REST_Server::register_route` directly. 34 */ 35 _doing_it_wrong( 'register_rest_route', 'Routes must be namespaced with plugin or theme name and version.', '4.4.0' ); 36 return false; 37 } else if ( empty( $route ) ) { 38 _doing_it_wrong( 'register_rest_route', 'Route must be specified.', '4.4.0' ); 39 return false; 40 } 27 41 28 42 if ( isset( $args['callback'] ) ) { … … 45 59 } 46 60 47 if ( $namespace ) { 48 $full_route = '/' . trim( $namespace, '/' ) . '/' . trim( $route, '/' ); 49 } else { 50 /* 51 * Non-namespaced routes are not allowed, with the exception of the main 52 * and namespace indexes. If you really need to register a 53 * non-namespaced route, call `WP_REST_Server::register_route` directly. 54 */ 55 _doing_it_wrong( 'register_rest_route', 'Routes must be namespaced with plugin name and version', '4.4.0' ); 56 57 $full_route = '/' . trim( $route, '/' ); 58 } 59 61 $full_route = '/' . trim( $namespace, '/' ) . '/' . trim( $route, '/' ); 60 62 $wp_rest_server->register_route( $namespace, $full_route, $args, $override ); 63 return true; 61 64 } 62 65 -
trunk/tests/phpunit/tests/rest-api.php
r35351 r35651 147 147 $this->assertArrayHasKey( 'should_exist', $endpoint[0] ); 148 148 $this->assertTrue( $endpoint[0]['should_exist'] ); 149 } 150 151 /** 152 * Test that we reject routes without namespaces 153 * 154 * @expectedIncorrectUsage register_rest_route 155 */ 156 public function test_route_reject_empty_namespace() { 157 register_rest_route( '', '/test-empty-namespace', array( 158 'methods' => array( 'POST' ), 159 'callback' => '__return_null', 160 ), true ); 161 $endpoints = $GLOBALS['wp_rest_server']->get_routes(); 162 $this->assertFalse( isset( $endpoints['/test-empty-namespace'] ) ); 163 } 164 165 /** 166 * Test that we reject empty routes 167 * 168 * @expectedIncorrectUsage register_rest_route 169 */ 170 public function test_route_reject_empty_route() { 171 register_rest_route( '/test-empty-route', '', array( 172 'methods' => array( 'POST' ), 173 'callback' => '__return_null', 174 ), true ); 175 $endpoints = $GLOBALS['wp_rest_server']->get_routes(); 176 $this->assertFalse( isset( $endpoints['/test-empty-route'] ) ); 149 177 } 150 178
Note: See TracChangeset
for help on using the changeset viewer.