wordpress-develop/tests/phpunit/tests/general/wpGetArchives.php
Tonya Mork 40ac5de838 Coding Standards: Add visibility to methods in tests/phpunit/tests/.
Adds a `public` visibility to test fixtures, tests, data providers, and callbacks methods.

Adds a `private` visibility to helper methods within test classes.

Renames callbacks and helpers that previously started with a `_` prefix. Why? For consistency and to leverage using the method visibility. Further naming standardizations is beyond the scope of this commit.

Props costdev, jrf, hellofromTonya.
Fixes #54177.

git-svn-id: https://develop.svn.wordpress.org/trunk@52010 602fd350-edb4-49c9-b593-d223f7449a82
2021-11-04 15:22:47 +00:00

177 lines
4.5 KiB
PHP

<?php
/**
* @group general
* @group template
* @covers ::wp_get_archives
*/
class Tests_General_wpGetArchives extends WP_UnitTestCase {
public function set_up() {
parent::set_up();
wp_cache_delete( 'last_changed', 'posts' );
}
/**
* @ticket 23206
*/
public function test_get_archives_cache() {
global $wpdb;
self::factory()->post->create_many( 3, array( 'post_type' => 'post' ) );
wp_cache_delete( 'last_changed', 'posts' );
$this->assertFalse( wp_cache_get( 'last_changed', 'posts' ) );
$num_queries = $wpdb->num_queries;
// Cache is not primed, expect 1 query.
$result = wp_get_archives(
array(
'type' => 'monthly',
'echo' => false,
)
);
$this->assertIsString( $result );
$time1 = wp_cache_get( 'last_changed', 'posts' );
$this->assertNotEmpty( $time1 );
$this->assertSame( $num_queries + 1, $wpdb->num_queries );
$num_queries = $wpdb->num_queries;
// Cache is primed, expect no queries.
$result = wp_get_archives(
array(
'type' => 'monthly',
'echo' => false,
)
);
$this->assertIsString( $result );
$this->assertSame( $time1, wp_cache_get( 'last_changed', 'posts' ) );
$this->assertSame( $num_queries, $wpdb->num_queries );
// Change args, resulting in a different query string. Cache is not primed, expect 1 query.
$result = wp_get_archives(
array(
'type' => 'monthly',
'echo' => false,
'order' => 'ASC',
)
);
$this->assertIsString( $result );
$this->assertSame( $time1, wp_cache_get( 'last_changed', 'posts' ) );
$this->assertSame( $num_queries + 1, $wpdb->num_queries );
$num_queries = $wpdb->num_queries;
// Cache is primed, expect no queries.
$result = wp_get_archives(
array(
'type' => 'monthly',
'echo' => false,
'order' => 'ASC',
)
);
$this->assertIsString( $result );
$this->assertSame( $time1, wp_cache_get( 'last_changed', 'posts' ) );
$this->assertSame( $num_queries, $wpdb->num_queries );
$num_queries = $wpdb->num_queries;
// Change type. Cache is not primed, expect 1 query.
$result = wp_get_archives(
array(
'type' => 'yearly',
'echo' => false,
)
);
$this->assertIsString( $result );
$this->assertSame( $time1, wp_cache_get( 'last_changed', 'posts' ) );
$this->assertSame( $num_queries + 1, $wpdb->num_queries );
$num_queries = $wpdb->num_queries;
// Cache is primed, expect no queries.
$result = wp_get_archives(
array(
'type' => 'yearly',
'echo' => false,
)
);
$this->assertIsString( $result );
$this->assertSame( $time1, wp_cache_get( 'last_changed', 'posts' ) );
$this->assertSame( $num_queries, $wpdb->num_queries );
// Change type. Cache is not primed, expect 1 query.
$result = wp_get_archives(
array(
'type' => 'daily',
'echo' => false,
)
);
$this->assertIsString( $result );
$this->assertSame( $time1, wp_cache_get( 'last_changed', 'posts' ) );
$this->assertSame( $num_queries + 1, $wpdb->num_queries );
$num_queries = $wpdb->num_queries;
// Cache is primed, expect no queries.
$result = wp_get_archives(
array(
'type' => 'daily',
'echo' => false,
)
);
$this->assertIsString( $result );
$this->assertSame( $time1, wp_cache_get( 'last_changed', 'posts' ) );
$this->assertSame( $num_queries, $wpdb->num_queries );
// Change type. Cache is not primed, expect 1 query.
$result = wp_get_archives(
array(
'type' => 'weekly',
'echo' => false,
)
);
$this->assertIsString( $result );
$this->assertSame( $time1, wp_cache_get( 'last_changed', 'posts' ) );
$this->assertSame( $num_queries + 1, $wpdb->num_queries );
$num_queries = $wpdb->num_queries;
// Cache is primed, expect no queries.
$result = wp_get_archives(
array(
'type' => 'weekly',
'echo' => false,
)
);
$this->assertIsString( $result );
$this->assertSame( $time1, wp_cache_get( 'last_changed', 'posts' ) );
$this->assertSame( $num_queries, $wpdb->num_queries );
// Change type. Cache is not primed, expect 1 query.
$result = wp_get_archives(
array(
'type' => 'postbypost',
'echo' => false,
)
);
$this->assertIsString( $result );
$this->assertSame( $time1, wp_cache_get( 'last_changed', 'posts' ) );
$this->assertSame( $num_queries + 1, $wpdb->num_queries );
$num_queries = $wpdb->num_queries;
// Cache is primed, expect no queries.
$result = wp_get_archives(
array(
'type' => 'postbypost',
'echo' => false,
)
);
$this->assertIsString( $result );
$this->assertSame( $time1, wp_cache_get( 'last_changed', 'posts' ) );
$this->assertSame( $num_queries, $wpdb->num_queries );
}
}