Files
wordpress-develop/tests/phpunit/tests/ajax/AddMeta.php
T
Jonathan Desrosiers 88de9a1d7c Meta: Allow empty strings to be set by Custom Fields meta box.
Because the REST API allows meta keys to have empty values, the Custom Fields meta box should permit the same behavior.

Props charlestonsw, soulseekah, danielbachhuber.

Merges [43811] to trunk.

Fixes #43559.

git-svn-id: https://develop.svn.wordpress.org/trunk@44153 602fd350-edb4-49c9-b593-d223f7449a82
2018-12-14 03:16:56 +00:00

72 lines
1.5 KiB
PHP

<?php
/**
* Admin ajax functions to be tested
*/
require_once( ABSPATH . 'wp-admin/includes/ajax-actions.php' );
/**
* Testing Add Meta AJAX functionality.
*
* @group ajax
*/
class Tests_Ajax_AddMeta extends WP_Ajax_UnitTestCase {
/**
* @ticket 43559
*/
public function test_post_add_meta_empty_is_allowed_ajax() {
$p = self::factory()->post->create();
// Become an administrator.
$this->_setRole( 'administrator' );
$_POST = array(
'post_id' => $p,
'metakeyinput' => 'testkey',
'metavalue' => '',
'_ajax_nonce-add-meta' => wp_create_nonce( 'add-meta' ),
);
// Make the request.
try {
$this->_handleAjax( 'add-meta' );
} catch ( WPAjaxDieContinueException $e ) {
unset( $e );
}
$this->assertEquals( '', get_post_meta( $p, 'testkey', true ) );
}
/**
* @ticket 43559
*/
public function test_post_update_meta_empty_is_allowed_ajax() {
$p = self::factory()->post->create();
$m = add_post_meta( $p, 'testkey', 'hello' );
// Become an administrator.
$this->_setRole( 'administrator' );
$_POST = array(
'_ajax_nonce-add-meta' => wp_create_nonce( 'add-meta' ),
'post_id' => $p,
'meta' => array(
$m => array(
'key' => 'testkey',
'value' => '',
),
),
);
// Make the request.
try {
$this->_handleAjax( 'add-meta' );
} catch ( WPAjaxDieContinueException $e ) {
unset( $e );
}
$this->assertEquals( '', get_post_meta( $p, 'testkey', true ) );
}
}