AlkantarClanX12
| Current Path : /www/capitalgmcbuickregina_830/public/wp-content/plugins/leadbox-staff/tests/ |
| Current File : /www/capitalgmcbuickregina_830/public/wp-content/plugins/leadbox-staff/tests/ShortcodeTest.php |
<?php
namespace Tests;
use WP_User;
use Leadbox\Staff\Hooks\ThePost;
class ShortcodeTest extends StaffPluginTestCase
{
public $mockPosts;
public $mockTerms;
public $mockQuery;
public function setUp(): void
{
// 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()
{
$staff = get_posts([
'post_type' => 'staff_member',
'posts_per_page' => -1
]);
$response = do_shortcode('[staff]');
foreach ($staff as $member) {
$snippet = 'mailto:' . get_field('email', $member->ID);
$this->assertIsNumeric(strpos($response, $snippet), 'Needle not found in string.');
}
}
public function test_shortcode_department_unlimited()
{
$terms = array_map(function ($term) {
return get_term($term, 'departments')->slug;
}, $this->mockTerms);
$this->assertRenderedShortcode($terms[0]);
}
public function test_shortcode_department_limited()
{
$terms = array_map(function ($term) {
return get_term($term, 'departments')->slug;
}, $this->mockTerms);
$this->assertRenderedShortcode($terms[1]);
}
public function assertRenderedShortcode($term)
{
$staff = get_posts([
'post_type' => 'staff_member',
'posts_per_page' => -1,
'tax_query' => array(
array(
'taxonomy' => 'departments',
'field' => 'slug',
'terms' => $term,
),
),
]);
$response = do_shortcode("[staff type=\"{$term}\"]");
foreach ($staff as $member) {
$snippet = 'mailto:' . get_field('email', $member->ID);
$this->assertIsNumeric(strpos($response, $snippet));
}
$responseCount = count(explode('<div class="staff-member', $response)) - 1;
$this->assertEquals($responseCount, count($staff));
}
}