function generate_args($args = array(), $generation_definitions = null, &$callbacks = null) { $callbacks = array(); if (is_null($generation_definitions)) { $generation_definitions = $this->default_generation_definitions; } // Use the same incrementor for all fields belonging to this object. $gen = new WP_UnitTest_Generator_Sequence(); $incr = $gen->get_incr(); foreach (array_keys($generation_definitions) as $field_name) { if (!isset($args[$field_name])) { $generator = $generation_definitions[$field_name]; if (is_scalar($generator)) { $args[$field_name] = $generator; } elseif (is_object($generator) && method_exists($generator, 'call')) { $callbacks[$field_name] = $generator; } elseif (is_object($generator)) { $args[$field_name] = sprintf($generator->get_template_string(), $incr); } else { return new WP_Error('invalid_argument', 'Factory default value should be either a scalar or an generator object.'); } } } return $args; }
/** * @covers GravityView_Edit_Entry::get_edit_link() */ function test_get_edit_link() { $form = $this->factory->form->create_and_get(); $editor = $this->factory->user->create_and_set(array('user_login' => 'editor', 'role' => 'editor')); $entry = $this->factory->entry->create_and_get(array('form_id' => $form['id'], 'created_by' => $editor->ID)); $view = $this->factory->view->create_and_get(array('form_id' => $form['id'], 'settings' => array('user_edit' => 1))); $this->assertNotEmpty($view, 'There was an error creating the View'); $post_title = new WP_UnitTest_Generator_Sequence(__METHOD__ . ' %s'); $post_id = $this->factory->post->create(array('post_title' => $post_title->next(), 'post_content' => sprintf('[gravityview id="%d"]', $view->ID))); $nonce_key = GravityView_Edit_Entry::get_nonce_key($view->ID, $entry['form_id'], $entry['id']); $nonce = wp_create_nonce($nonce_key); ### ### NO POST ### $edit_link_no_post = GravityView_Edit_Entry::get_edit_link($entry, $view->ID); // A link to the raw $this->assertEquals('?page=gf_entries&view=entry&edit=' . $nonce, $edit_link_no_post); $args = array('p' => $post_id, 'entry' => $entry['id'], 'gvid' => $view->ID, 'page' => 'gf_entries', 'view' => 'entry', 'edit' => $nonce); // When running all tests, this test thinks we have multiple Views. Correct that. GravityView_View::getInstance()->setViewId($view->ID); ### ### WITH POST ### $edit_link_with_post = GravityView_Edit_Entry::get_edit_link($entry, $view->ID, $post_id); $this->assertEquals(add_query_arg($args, 'http://example.org/'), $edit_link_with_post); }
/** * @covers GravityView_Entry_Link_Shortcode::shortcode */ public function test_shortcode() { $form = $this->factory->form->create_and_get(); $editor = $this->factory->user->create_and_set(array('user_login' => 'editor', 'role' => 'editor')); $entry = $this->factory->entry->create_and_get(array('form_id' => $form['id'], 'created_by' => $editor->ID)); $view = $this->factory->view->create_and_get(array('form_id' => $form['id'], 'settings' => array('user_edit' => 1))); $this->assertNotEmpty($view, 'There was an error creating the View'); $post_title = new WP_UnitTest_Generator_Sequence(__METHOD__ . ' %s'); $post_id = $this->factory->post->create(array('post_title' => $post_title->next(), 'post_content' => sprintf('[gravityview id="%d"]', $view->ID))); $atts = array('post_id' => $post_id, 'entry_id' => $entry['id'], 'view_id' => $view->ID); $this->_test_read($view, $entry, $atts); $this->_test_edit($view, $entry, $atts); $this->_test_delete($view, $entry, $atts); }