Skip to content
Snippets Groups Projects
test-class-external-permalinks-redux-block-editor.php 3.13 KiB
Newer Older
Erick Hitter's avatar
Erick Hitter committed
<?php
/**
 * Test block-editor integration.
 *
Erick Hitter's avatar
Erick Hitter committed
 * @package External_Permalinks_Redux
Erick Hitter's avatar
Erick Hitter committed
 */

/**
 * Class TestClassExternalPermalinksReduxBlockEditor.
 *
 * @coversDefaultClass External_Permalinks_Redux_Block_Editor
 */
class TestClassExternalPermalinksReduxBlockEditor extends WP_UnitTestCase {
	/**
Erick Hitter's avatar
Erick Hitter committed
	 * Test meta registration.
	 *
Erick Hitter's avatar
Erick Hitter committed
	 * @covers ::register_meta()
	 */
	public function test_register_meta() {
Erick Hitter's avatar
Erick Hitter committed
		global $wp_meta_keys;

		$wp_meta_keys = null;

		$this->assertFalse(
			registered_meta_key_exists(
				'post',
				external_permalinks_redux::get_instance()->meta_key_target
			),
			'Failed to assert that "target" meta key is not registered.'
		);

		$this->assertFalse(
			registered_meta_key_exists(
				'post',
				external_permalinks_redux::get_instance()->meta_key_type
			),
			'Failed to assert that "type" meta key is not registered.'
		);

		External_Permalinks_Redux_Block_Editor::get_instance()->register_meta();

		$this->assertTrue(
			registered_meta_key_exists(
				'post',
				external_permalinks_redux::get_instance()->meta_key_target
			),
			'Failed to assert that "target" meta key is registered.'
		);

		$this->assertTrue(
			registered_meta_key_exists(
				'post',
				external_permalinks_redux::get_instance()->meta_key_type
			),
			'Failed to assert that "type" meta key is registered.'
		);
Erick Hitter's avatar
Erick Hitter committed
	 * Test overridding private meta editing.
	 *
Erick Hitter's avatar
Erick Hitter committed
	 * @covers ::allow_meta_updates()
	 */
	public function test_allow_meta_updates() {
Erick Hitter's avatar
Erick Hitter committed
		$this->assertTrue(
			External_Permalinks_Redux_Block_Editor::get_instance()->allow_meta_updates(
				true,
				'_a_random_key',
				'term'
			),
			'Failed to assert that a term\'s key is not modified..'
		);

		$this->assertTrue(
			External_Permalinks_Redux_Block_Editor::get_instance()->allow_meta_updates(
				true,
				'_a_random_key',
				'post'
			),
			'Failed to assert that unrelated key\'s protection is not modified.'
		);

		$this->assertFalse(
			External_Permalinks_Redux_Block_Editor::get_instance()->allow_meta_updates(
				true,
				external_permalinks_redux::get_instance()->meta_key_target,
				'post'
			),
			'Failed to assert that "target" key is not protected.'
		);

		$this->assertFalse(
			External_Permalinks_Redux_Block_Editor::get_instance()->allow_meta_updates(
				true,
				external_permalinks_redux::get_instance()->meta_key_type,
				'post'
			),
			'Failed to assert that "type" key is not protected.'
		);
Erick Hitter's avatar
Erick Hitter committed
	 * Test script enqueueing.
	 *
Erick Hitter's avatar
Erick Hitter committed
	 * @covers ::enqueue()
	 */
	public function test_enqueue() {
Erick Hitter's avatar
Erick Hitter committed
		$asset_handle = 'external-permalinks-redux';
Erick Hitter's avatar
Erick Hitter committed

		$this->assertFalse(
			wp_script_is( $asset_handle, 'enqueued' ),
			'Failed to assert that script is not enqueued.'
		);

Erick Hitter's avatar
Erick Hitter committed
		remove_all_actions( 'admin_init' );
		do_action( 'admin_init' );
		external_permalinks_redux::get_instance()->action_admin_init();
Erick Hitter's avatar
Erick Hitter committed
		External_Permalinks_Redux_Block_Editor::get_instance()->enqueue();

		$this->assertTrue(
			wp_script_is( $asset_handle, 'enqueued' ),
			'Failed to assert that script is enqueued.'
		);

		$this->assertStringContainsString(
			'externalPermalinksReduxConfig',
			wp_scripts()->get_data( $asset_handle, 'data' ),
			'Failed to assert that configuration data is added.'
		);