AlkantarClanX12
| Current Path : /www/capitalgmcbuickregina_830/public/wp-content/plugins/leadbox-careers/tests/ |
| Current File : /www/capitalgmcbuickregina_830/public/wp-content/plugins/leadbox-careers/tests/ShortcodeTest.php |
<?php
namespace Tests;
use WP_User;
use Leadbox\Careers\Hooks\ThePost;
class ShortcodeTest extends CareersPluginTestCase
{
public $mockPosts;
public $mockTerms;
public $mockQuery;
public function setUp()
{
// User required for post-factory taxonomies
$user_id = $this->factory->user->create();
$user = new WP_User( $user_id );
$user->set_role( 'administrator' );
wp_set_current_user($user->ID);
parent::setUp();
$this->mockTerms = $this->factory->term->create_many(10, [], $this->term_generation_definitions);
$this->mockPosts = $this->factory->post->create_many(10, [], $this->post_generation_definitions);
}
public function test_shortcode_generic()
{
$careers = get_posts([
'post_type' => 'careers_member',
'posts_per_page' => -1
]);
$response = do_shortcode('[careers]');
foreach($careers as $member) {
$snippet = 'mailto:'.get_field('email', $member->ID);
$this->assertIsNumeric(strpos($response, $snippet));
}
}
public function test_shortcode_cdepartment_unlimited()
{
$terms = array_map(function ($term) {
return get_term($term, 'cdepartments')->slug;
}, $this->mockTerms);
$this->assertRenderedShortcode($terms[0]);
}
public function test_shortcode_cdepartment_limited()
{
$terms = array_map(function ($term) {
return get_term($term, 'cdepartments')->slug;
}, $this->mockTerms);
$this->assertRenderedShortcode($terms[1]);
}
public function assertRenderedShortcode($term)
{
$careers = get_posts([
'post_type' => 'careers_member',
'posts_per_page' => -1,
'tax_query' => array(
array(
'taxonomy' => 'cdepartments',
'field' => 'slug',
'terms' => $term,
),
),
]);
$response = do_shortcode("[careers type=\"{$term}\"]");
foreach($careers as $member) {
$snippet = 'mailto:'.get_field('email', $member->ID);
$this->assertIsNumeric(strpos($response, $snippet));
}
$responseCount = count(explode('<div class="careers-member', $response)) - 1;
$this->assertEquals($responseCount, count($careers));
}
}