In $wpdb->update(), prevent explosions when $where is empty.

Adds unit tests.

Props UmeshSingla, wonderboymusic.
Fixes #26106


git-svn-id: https://develop.svn.wordpress.org/trunk@28814 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Scott Taylor
2014-06-24 00:23:09 +00:00
parent 76bd35fa79
commit 220fda0095
2 changed files with 20 additions and 1 deletions

View File

@@ -436,4 +436,21 @@ class Tests_DB extends WP_UnitTestCase {
$row = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->users WHERE ID = %d", $last ) );
$this->assertEquals( 'Walter Replace Sobchak', $row->display_name );
}
/**
*
* @ticket 26106
*/
function test_empty_where() {
global $wpdb;
$wpdb->update( $wpdb->posts, array( 'post_name' => 'burrito' ), array() );
$expected1 = "UPDATE `{$wpdb->posts}` SET `post_name` = 'burrito'";
$this->assertEquals( $expected1, $wpdb->last_query );
$wpdb->update( $wpdb->posts, array( 'post_name' => 'burrito' ), array( 'post_status' => 'taco' ) );
$expected2 = "UPDATE `{$wpdb->posts}` SET `post_name` = 'burrito' WHERE `post_status` = 'taco'";
$this->assertEquals( $expected2, $wpdb->last_query );
}
}