Files
wordpress-develop/tests/phpunit/tests/editor/wpEditors.php
Sergey Biryukov 8be943d06e Tests: Introduce assertSameSets() and assertSameSetsWithIndex(), and use them where appropriate.
This ensures that not only the array values being compared are equal, but also that their type is the same.

These new methods replace most of the existing instances of `assertEqualSets()` and `assertEqualSetsWithIndex()`.

Going forward, stricter type checking by using `assertSameSets()` or `assertSameSetsWithIndex()` should generally be preferred, to make the tests more reliable.

Follow-up to [48937].

See #38266.

git-svn-id: https://develop.svn.wordpress.org/trunk@48939 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-04 07:01:00 +00:00

95 lines
2.3 KiB
PHP

<?php
if ( ! class_exists( '_WP_Editors', false ) ) {
require_once ABSPATH . WPINC . '/class-wp-editor.php';
}
/**
* @group editor
*/
class Tests_WP_Editors extends WP_UnitTestCase {
public function wp_link_query_callback( $results ) {
return array_merge(
$results,
array(
array(
'ID' => 123,
'title' => 'foo',
'permalink' => 'bar',
'info' => 'baz',
),
)
);
}
public function test_wp_link_query_returns_false_when_nothing_found() {
$actual = _WP_Editors::wp_link_query( array( 's' => 'foobarbaz' ) );
$this->assertFalse( $actual );
}
public function test_wp_link_query_returns_search_results() {
$post = self::factory()->post->create_and_get( array( 'post_status' => 'publish' ) );
$actual = _WP_Editors::wp_link_query( array( 's' => $post->post_title ) );
$this->assertSameSets(
array(
array(
'ID' => $post->ID,
'title' => $post->post_title,
'permalink' => get_permalink( $post->ID ),
'info' => mysql2date( __( 'Y/m/d' ), $post->post_date ),
),
),
$actual
);
}
/**
* @ticket 41825
*/
public function test_wp_link_query_returns_filtered_result_when_nothing_found() {
add_filter( 'wp_link_query', array( $this, 'wp_link_query_callback' ) );
$actual = _WP_Editors::wp_link_query( array( 's' => 'foobarbaz' ) );
remove_filter( 'wp_link_query', array( $this, 'wp_link_query_callback' ) );
$this->assertSameSets(
array(
array(
'ID' => 123,
'title' => 'foo',
'permalink' => 'bar',
'info' => 'baz',
),
),
$actual
);
}
public function test_wp_link_query_returns_filtered_search_results() {
$post = self::factory()->post->create_and_get( array( 'post_status' => 'publish' ) );
add_filter( 'wp_link_query', array( $this, 'wp_link_query_callback' ) );
$actual = _WP_Editors::wp_link_query( array( 's' => $post->post_title ) );
remove_filter( 'wp_link_query', array( $this, 'wp_link_query_callback' ) );
$this->assertSameSets(
array(
array(
'ID' => $post->ID,
'title' => $post->post_title,
'permalink' => get_permalink( $post->ID ),
'info' => mysql2date( __( 'Y/m/d' ), $post->post_date ),
),
array(
'ID' => 123,
'title' => 'foo',
'permalink' => 'bar',
'info' => 'baz',
),
),
$actual
);
}
}