Test coverage for /shipping/zones.
Covers success, shipping disabled, and insufficient permissions cases.
This commit is contained in:
parent
bbe5ffc295
commit
e4ccede35f
|
@ -69,4 +69,71 @@ class WC_Tests_API_Shipping_Zones extends WC_Unit_Test_Case {
|
||||||
$this->assertArrayHasKey( '/wc/v1/shipping/zones', $routes );
|
$this->assertArrayHasKey( '/wc/v1/shipping/zones', $routes );
|
||||||
$this->assertArrayHasKey( '/wc/v1/shipping/zones/(?P<id>[\d-]+)', $routes );
|
$this->assertArrayHasKey( '/wc/v1/shipping/zones/(?P<id>[\d-]+)', $routes );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test getting all Shipping Zones.
|
||||||
|
* @since 2.7.0
|
||||||
|
*/
|
||||||
|
public function test_get_zones() {
|
||||||
|
wp_set_current_user( $this->user );
|
||||||
|
|
||||||
|
// No zones by default
|
||||||
|
$response = $this->server->dispatch( new WP_REST_Request( 'GET', '/wc/v1/shipping/zones' ) );
|
||||||
|
$data = $response->get_data();
|
||||||
|
|
||||||
|
$this->assertEquals( 200, $response->get_status() );
|
||||||
|
$this->assertEquals( count( $data ), 0 );
|
||||||
|
|
||||||
|
// Create a zone and make sure it's in the response
|
||||||
|
$this->create_shipping_zone( 'Zone 1' );
|
||||||
|
|
||||||
|
$response = $this->server->dispatch( new WP_REST_Request( 'GET', '/wc/v1/shipping/zones' ) );
|
||||||
|
$data = $response->get_data();
|
||||||
|
|
||||||
|
$this->assertEquals( 200, $response->get_status() );
|
||||||
|
$this->assertEquals( count( $data ), 1 );
|
||||||
|
$this->assertEquals( array(
|
||||||
|
'id' => 1,
|
||||||
|
'name' => 'Zone 1',
|
||||||
|
'order' => 0,
|
||||||
|
'_links' => array(
|
||||||
|
'self' => array(
|
||||||
|
array(
|
||||||
|
'href' => rest_url( '/wc/v1/shipping/zones/1' ),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'collection' => array(
|
||||||
|
array(
|
||||||
|
'href' => rest_url( '/wc/v1/shipping/zones' ),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
), $data[0] );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test /shipping/zones without valid permissions/creds.
|
||||||
|
* @since 2.7.0
|
||||||
|
*/
|
||||||
|
public function test_get_shipping_zones_without_permission() {
|
||||||
|
wp_set_current_user( 0 );
|
||||||
|
|
||||||
|
$response = $this->server->dispatch( new WP_REST_Request( 'GET', '/wc/v1/shipping/zones' ) );
|
||||||
|
$this->assertEquals( 401, $response->get_status() );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test /shipping/zones while Shipping is disabled in WooCommerce.
|
||||||
|
* @since 2.7.0
|
||||||
|
*/
|
||||||
|
public function test_get_shipping_zones_disabled_shipping() {
|
||||||
|
wp_set_current_user( $this->user );
|
||||||
|
|
||||||
|
add_filter( 'wc_shipping_enabled', '__return_false' );
|
||||||
|
|
||||||
|
$response = $this->server->dispatch( new WP_REST_Request( 'GET', '/wc/v1/shipping/zones' ) );
|
||||||
|
$this->assertEquals( 404, $response->get_status() );
|
||||||
|
|
||||||
|
remove_filter( 'wc_shipping_enabled', '__return_false' );
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue