/** * Tests override_request_method. * * @covers CustomizeSnapshots\Customize_Snapshot_Manager::override_request_method() */ public function test_override_request_method() { global $wp; $manager = new Customize_Snapshot_Manager($this->plugin); $this->assertFalse($manager->override_request_method()); $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] = 'GET'; $wp->query_vars['rest_route'] = '/wp/v1/foo'; $this->assertFalse($manager->override_request_method()); unset($wp->query_vars['rest_route']); $_SERVER['REQUEST_METHOD'] = 'GET'; $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] = 'GET'; $this->assertFalse($manager->override_request_method()); $_SERVER['REQUEST_METHOD'] = 'GET'; $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] = 'BAD'; $this->assertFalse($manager->override_request_method()); $_GET = wp_slash(array('foo' => '1')); $_POST = wp_slash(array('bar' => '2')); $_SERVER['REQUEST_METHOD'] = 'POST'; $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] = 'GET'; $this->assertTrue($manager->override_request_method()); $this->assertEquals('GET', $_SERVER['REQUEST_METHOD']); $this->assertEquals('foo=1&bar=2', $_SERVER['QUERY_STRING']); $this->assertArrayHasKey('foo', $_GET); $this->assertArrayHasKey('bar', $_GET); $_SERVER['REQUEST_METHOD'] = 'POST'; $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] = 'PUT'; $this->assertFalse($manager->override_request_method()); }