public function test_customize_meta_boxes() { $testee = new Testee(); WP_Mock::wpFunction('remove_meta_box', array('times' => 1, 'args' => array(WP_Mock\Functions::type('string'), WP_Mock\Functions::type('string'), WP_Mock\Functions::type('string')))); $testee->customize_meta_boxes(); $this->assertConditionsMet(); }
/** * @covers tfrommen\ThatWasHelpful\Models\Nonce::is_valid * @dataProvider provide_is_valid_data * * @param bool $response * @param string $nonce * @param string $action * @param int $times * @param string $request_value */ public function test_is_valid($response, $nonce, $action, $times, $request_value) { $class_action = 'class_action'; $name = 'name'; $testee = new Testee($class_action, $name); $_REQUEST[$name] = $request_value; WP_Mock::wpFunction('wp_verify_nonce', array('times' => $times, 'args' => array(WP_Mock\Functions::type('string'), WP_Mock\Functions::type('string')), 'return' => function ($nonce, $nonce_action) use($action, $class_action) { return $nonce === 'nonce' && ($nonce_action === 'action' || $nonce_action === $class_action && $action === ''); })); $this->assertSame($response, $testee->is_valid($nonce, $action)); $this->assertConditionsMet(); }
/** * @covers tfrommen\ThatWasHelpful\Models\TextDomain::load * * @return void */ public function test_load() { $file = '/path/to/file.php'; $domain = 'text-domain'; $path = '/domain'; WP_Mock::wpPassthruFunction('plugin_basename', array('times' => 1, 'args' => array(WP_Mock\Functions::type('string')))); $testee = new Testee($file, $domain, $path); $path = dirname($file) . $path; WP_Mock::wpFunction('load_plugin_textdomain', array('times' => 1, 'args' => array($domain, FALSE, $path))); $testee->load(); $this->assertConditionsMet(); }
/** * @dataProvider provide_get_shortlink_data * * @param string|bool $response * @param string|bool $return * @param string $context * @param int $times * @param WP_Post $post * * @return void */ public function test_get_shortlink($response, $return, $context, $times, $post) { $post_type = Mockery::mock('tfrommen\\ExternalContent\\Models\\PostType'); $post_type->shouldReceive('get_post_type')->andReturn('post_type'); $meta_box = Mockery::mock('tfrommen\\ExternalContent\\Models\\MetaBox'); $meta_box->shouldReceive('get_meta_key'); /** @var tfrommen\ExternalContent\Models\PostType $post_type */ /** @var tfrommen\ExternalContent\Models\MetaBox $meta_box */ $testee = new Testee($post_type, $meta_box); WP_Mock::wpFunction('get_post', array('times' => $times, 'args' => array(WP_Mock\Functions::type('int')), 'return' => $post)); $this->assertSame($response, $testee->get_shortlink($return, 42, $context)); $this->assertConditionsMet(); }
public function test_render() { $meta_key = '_external_content'; $model = Mockery::mock('tfrommen\\ExternalContent\\Models\\MetaBox'); $model->shouldReceive('get_meta_key')->andReturn($meta_key); $post_type_slug = 'external_content'; $post_type = Mockery::mock('tfrommen\\ExternalContent\\Models\\PostType'); $post_type->shouldReceive('get_post_type')->andReturn($post_type_slug); $nonce = Mockery::mock('tfrommen\\ExternalContent\\Models\\Nonce'); $nonce->shouldReceive('print_field'); /** @var tfrommen\ExternalContent\Models\MetaBox $model */ /** @var tfrommen\ExternalContent\Models\PostType $post_type */ /** @var tfrommen\ExternalContent\Models\Nonce $nonce */ $testee = new Testee($model, $post_type, $nonce); $meta_value = 'http://example.com'; WP_Mock::wpFunction('get_post_meta', array('times' => 1, 'args' => array(WP_Mock\Functions::type('int'), $meta_key, TRUE), 'return' => $meta_value)); WP_Mock::wpFunction('esc_html_e', array('times' => 2, 'args' => array(WP_Mock\Functions::type('string'), 'external-content'), 'return' => function () { $args = func_get_args(); echo $args[0]; })); WP_Mock::wpPassthruFunction('esc_attr', array('times' => 1, 'args' => array(WP_Mock\Functions::type('string')))); $output = <<<'HTML' <p> Please enter the URL of the external content. </p> <table class="form-table"> <tbody> <tr> <th scope="row"> <label for="%1$s"> External URL </label> </th> <td> <input type="url" name="%1$s" class="large-text" placeholder="http://example.com" value="%2$s"> </td> </tr> </tbody> </table> HTML; $output = sprintf($output, $meta_key, $meta_value); $this->expectOutputString($output); $post = Mockery::mock('WP_Post'); $post->ID = 42; /** @var WP_Post $post */ $testee->render($post); $this->assertConditionsMet(); }
/** * @dataProvider provide_save_data * * @param bool $response * @param WP_Post $post * @param bool $is_nonce_valid * @param bool $is_post_revision * @param int $user_can_times * @param bool $user_can * @param int $update_times */ public function test_save($response, WP_Post $post, $is_nonce_valid, $is_post_revision, $user_can_times, $user_can, $update_times) { $post_type = Mockery::mock('tfrommen\\ExternalContent\\Models\\PostType'); $post_type->shouldReceive('get_post_type')->andReturn('post_type'); $nonce = Mockery::mock('tfrommen\\ExternalContent\\Models\\Nonce'); $nonce->shouldReceive('is_valid')->andReturn($is_nonce_valid); $meta_key = 'meta_key'; WP_Mock::onFilter('external_content_meta_key')->with('_external_content')->reply($meta_key); WP_Mock::wpPassthruFunction('esc_attr', array('times' => 1, 'args' => array(WP_Mock\Functions::type('string')))); /** @var tfrommen\ExternalContent\Models\PostType $post_type */ /** @var tfrommen\ExternalContent\Models\Nonce $nonce */ $testee = new Testee($post_type, $nonce); WP_Mock::wpFunction('wp_is_post_revision', array('times' => 1, 'args' => array(WP_Mock\Functions::type('int')), 'return' => $is_post_revision)); WP_Mock::wpFunction('current_user_can', array('times' => $user_can_times, 'args' => array('edit_post', WP_Mock\Functions::type('int')), 'return' => $user_can)); $meta_value = 'meta_value'; $_POST[$meta_key] = $meta_value; WP_Mock::wpFunction('update_post_meta', array('times' => $update_times, 'args' => array(WP_Mock\Functions::type('int'), $meta_key, $meta_value), 'return' => $response)); /** @var WP_Post $post */ $this->assertSame($response, $testee->save(42, $post)); $this->assertConditionsMet(); }