diff options
Diffstat (limited to 'tests/phpunit/tests/meta.php')
-rw-r--r-- | tests/phpunit/tests/meta.php | 117 |
1 files changed, 59 insertions, 58 deletions
diff --git a/tests/phpunit/tests/meta.php b/tests/phpunit/tests/meta.php index 857414190a..6431a15861 100644 --- a/tests/phpunit/tests/meta.php +++ b/tests/phpunit/tests/meta.php @@ -9,16 +9,15 @@ class Tests_Meta extends WP_UnitTestCase { /** * @var \WP_User */ - private $author; + private static $author; - private $meta_id; - private $delete_meta_id; + private static $meta_id; + private static $delete_meta_id; - public function set_up() { - parent::set_up(); - $this->author = new WP_User( self::factory()->user->create( array( 'role' => 'author' ) ) ); - $this->meta_id = add_metadata( 'user', $this->author->ID, 'meta_key', 'meta_value' ); - $this->delete_meta_id = add_metadata( 'user', $this->author->ID, 'delete_meta_key', 'delete_meta_value' ); + public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) { + self::$author = new WP_User( $factory->user->create( array( 'role' => 'author' ) ) ); + self::$meta_id = add_metadata( 'user', self::$author->ID, 'meta_key', 'meta_value' ); + self::$delete_meta_id = add_metadata( 'user', self::$author->ID, 'delete_meta_key', 'delete_meta_value' ); } public function meta_sanitize_cb( $meta_value, $meta_key, $meta_type ) { @@ -37,51 +36,51 @@ class Tests_Meta extends WP_UnitTestCase { public function test_delete_metadata_by_mid() { // Let's try and delete a non-existing ID, non existing meta. $this->assertFalse( delete_metadata_by_mid( 'user', 0 ) ); - $this->assertFalse( delete_metadata_by_mid( 'non_existing_meta', $this->delete_meta_id ) ); + $this->assertFalse( delete_metadata_by_mid( 'non_existing_meta', self::$delete_meta_id ) ); // Now let's delete the real meta data. - $this->assertTrue( delete_metadata_by_mid( 'user', $this->delete_meta_id ) ); + $this->assertTrue( delete_metadata_by_mid( 'user', self::$delete_meta_id ) ); // And make sure it's been deleted. - $this->assertFalse( get_metadata_by_mid( 'user', $this->delete_meta_id ) ); + $this->assertFalse( get_metadata_by_mid( 'user', self::$delete_meta_id ) ); // Make sure the caches are cleared. - $this->assertFalse( (bool) get_user_meta( $this->author->ID, 'delete_meta_key' ) ); + $this->assertFalse( (bool) get_user_meta( self::$author->ID, 'delete_meta_key' ) ); } public function test_update_metadata_by_mid() { // Setup. - $meta = get_metadata_by_mid( 'user', $this->meta_id ); + $meta = get_metadata_by_mid( 'user', self::$meta_id ); // Update the meta value. - $this->assertTrue( update_metadata_by_mid( 'user', $this->meta_id, 'meta_new_value' ) ); - $meta = get_metadata_by_mid( 'user', $this->meta_id ); + $this->assertTrue( update_metadata_by_mid( 'user', self::$meta_id, 'meta_new_value' ) ); + $meta = get_metadata_by_mid( 'user', self::$meta_id ); $this->assertSame( 'meta_new_value', $meta->meta_value ); // Update the meta value. - $this->assertTrue( update_metadata_by_mid( 'user', $this->meta_id, 'meta_new_value', 'meta_new_key' ) ); - $meta = get_metadata_by_mid( 'user', $this->meta_id ); + $this->assertTrue( update_metadata_by_mid( 'user', self::$meta_id, 'meta_new_value', 'meta_new_key' ) ); + $meta = get_metadata_by_mid( 'user', self::$meta_id ); $this->assertSame( 'meta_new_key', $meta->meta_key ); // Update the key and value. - $this->assertTrue( update_metadata_by_mid( 'user', $this->meta_id, 'meta_value', 'meta_key' ) ); - $meta = get_metadata_by_mid( 'user', $this->meta_id ); + $this->assertTrue( update_metadata_by_mid( 'user', self::$meta_id, 'meta_value', 'meta_key' ) ); + $meta = get_metadata_by_mid( 'user', self::$meta_id ); $this->assertSame( 'meta_key', $meta->meta_key ); $this->assertSame( 'meta_value', $meta->meta_value ); // Update the value that has to be serialized. - $this->assertTrue( update_metadata_by_mid( 'user', $this->meta_id, array( 'first', 'second' ) ) ); - $meta = get_metadata_by_mid( 'user', $this->meta_id ); + $this->assertTrue( update_metadata_by_mid( 'user', self::$meta_id, array( 'first', 'second' ) ) ); + $meta = get_metadata_by_mid( 'user', self::$meta_id ); $this->assertSame( array( 'first', 'second' ), $meta->meta_value ); // Let's try some invalid meta data. $this->assertFalse( update_metadata_by_mid( 'user', 0, 'meta_value' ) ); - $this->assertFalse( update_metadata_by_mid( 'user', $this->meta_id, 'meta_value', array( 'invalid', 'key' ) ) ); + $this->assertFalse( update_metadata_by_mid( 'user', self::$meta_id, 'meta_value', array( 'invalid', 'key' ) ) ); // Let's see if caches get cleared after updates. - $meta = get_metadata_by_mid( 'user', $this->meta_id ); + $meta = get_metadata_by_mid( 'user', self::$meta_id ); $first = get_user_meta( $meta->user_id, $meta->meta_key ); - $this->assertTrue( update_metadata_by_mid( 'user', $this->meta_id, 'other_meta_value' ) ); + $this->assertTrue( update_metadata_by_mid( 'user', self::$meta_id, 'other_meta_value' ) ); $second = get_user_meta( $meta->user_id, $meta->meta_key ); $this->assertFalse( $first === $second ); } @@ -107,14 +106,16 @@ class Tests_Meta extends WP_UnitTestCase { $found = $this->updated_mids; $this->updated_mids = array(); + $this->assertNotEmpty( $found ); + foreach ( $found as $action => $mids ) { $this->assertCount( 2, $mids ); } } public function test_metadata_exists() { - $this->assertFalse( metadata_exists( 'user', $this->author->ID, 'foobarbaz' ) ); - $this->assertTrue( metadata_exists( 'user', $this->author->ID, 'meta_key' ) ); + $this->assertFalse( metadata_exists( 'user', self::$author->ID, 'foobarbaz' ) ); + $this->assertTrue( metadata_exists( 'user', self::$author->ID, 'meta_key' ) ); $this->assertFalse( metadata_exists( 'user', 1234567890, 'foobarbaz' ) ); $this->assertFalse( metadata_exists( 'user', 1234567890, 'meta_key' ) ); } @@ -125,7 +126,7 @@ class Tests_Meta extends WP_UnitTestCase { public function test_metadata_exists_with_filter() { // Let's see if it returns the correct value when adding a filter. add_filter( 'get_user_metadata', '__return_zero' ); - $this->assertFalse( metadata_exists( 'user', $this->author->ID, 'meta_key' ) ); // Existing meta key. + $this->assertFalse( metadata_exists( 'user', self::$author->ID, 'meta_key' ) ); // Existing meta key. $this->assertFalse( metadata_exists( 'user', 1234567890, 'meta_key' ) ); remove_filter( 'get_user_metadata', '__return_zero' ); } @@ -148,7 +149,7 @@ class Tests_Meta extends WP_UnitTestCase { $this->assertCount( 1, $u ); // User found is not locally defined author (it's the admin). - $this->assertNotEquals( $this->author->user_login, $u[0]->user_login ); + $this->assertNotEquals( self::$author->user_login, $u[0]->user_login ); // Test EXISTS and NOT EXISTS together, no users should be found. $this->assertCount( @@ -183,7 +184,7 @@ class Tests_Meta extends WP_UnitTestCase { ) ); - delete_metadata( 'user', $this->author->ID, 'meta_key' ); + delete_metadata( 'user', self::$author->ID, 'meta_key' ); $this->assertCount( 2, @@ -206,28 +207,28 @@ class Tests_Meta extends WP_UnitTestCase { $expected = 'Testsingleslash'; $value2 = 'Test\\\\doubleslash'; $expected2 = 'Test\\doubleslash'; - $this->assertFalse( metadata_exists( 'user', $this->author->ID, $key ) ); - $this->assertFalse( delete_metadata( 'user', $this->author->ID, $key ) ); - $this->assertSame( '', get_metadata( 'user', $this->author->ID, $key, true ) ); - $this->assertIsInt( add_metadata( 'user', $this->author->ID, $key, $value ) ); - $this->assertSame( $expected, get_metadata( 'user', $this->author->ID, $key, true ) ); - $this->assertTrue( delete_metadata( 'user', $this->author->ID, $key ) ); - $this->assertSame( '', get_metadata( 'user', $this->author->ID, $key, true ) ); - $this->assertIsInt( update_metadata( 'user', $this->author->ID, $key, $value ) ); - $this->assertSame( $expected, get_metadata( 'user', $this->author->ID, $key, true ) ); - $this->assertTrue( update_metadata( 'user', $this->author->ID, $key, 'blah' ) ); - $this->assertSame( 'blah', get_metadata( 'user', $this->author->ID, $key, true ) ); - $this->assertTrue( delete_metadata( 'user', $this->author->ID, $key ) ); - $this->assertSame( '', get_metadata( 'user', $this->author->ID, $key, true ) ); - $this->assertFalse( metadata_exists( 'user', $this->author->ID, $key ) ); + $this->assertFalse( metadata_exists( 'user', self::$author->ID, $key ) ); + $this->assertFalse( delete_metadata( 'user', self::$author->ID, $key ) ); + $this->assertSame( '', get_metadata( 'user', self::$author->ID, $key, true ) ); + $this->assertIsInt( add_metadata( 'user', self::$author->ID, $key, $value ) ); + $this->assertSame( $expected, get_metadata( 'user', self::$author->ID, $key, true ) ); + $this->assertTrue( delete_metadata( 'user', self::$author->ID, $key ) ); + $this->assertSame( '', get_metadata( 'user', self::$author->ID, $key, true ) ); + $this->assertIsInt( update_metadata( 'user', self::$author->ID, $key, $value ) ); + $this->assertSame( $expected, get_metadata( 'user', self::$author->ID, $key, true ) ); + $this->assertTrue( update_metadata( 'user', self::$author->ID, $key, 'blah' ) ); + $this->assertSame( 'blah', get_metadata( 'user', self::$author->ID, $key, true ) ); + $this->assertTrue( delete_metadata( 'user', self::$author->ID, $key ) ); + $this->assertSame( '', get_metadata( 'user', self::$author->ID, $key, true ) ); + $this->assertFalse( metadata_exists( 'user', self::$author->ID, $key ) ); // Test overslashing. - $this->assertIsInt( add_metadata( 'user', $this->author->ID, $key, $value2 ) ); - $this->assertSame( $expected2, get_metadata( 'user', $this->author->ID, $key, true ) ); - $this->assertTrue( delete_metadata( 'user', $this->author->ID, $key ) ); - $this->assertSame( '', get_metadata( 'user', $this->author->ID, $key, true ) ); - $this->assertIsInt( update_metadata( 'user', $this->author->ID, $key, $value2 ) ); - $this->assertSame( $expected2, get_metadata( 'user', $this->author->ID, $key, true ) ); + $this->assertIsInt( add_metadata( 'user', self::$author->ID, $key, $value2 ) ); + $this->assertSame( $expected2, get_metadata( 'user', self::$author->ID, $key, true ) ); + $this->assertTrue( delete_metadata( 'user', self::$author->ID, $key ) ); + $this->assertSame( '', get_metadata( 'user', self::$author->ID, $key, true ) ); + $this->assertIsInt( update_metadata( 'user', self::$author->ID, $key, $value2 ) ); + $this->assertSame( $expected2, get_metadata( 'user', self::$author->ID, $key, true ) ); } /** @@ -344,7 +345,7 @@ class Tests_Meta extends WP_UnitTestCase { * @ticket 37746 */ public function test_negative_meta_id() { - $negative_mid = $this->meta_id * -1; + $negative_mid = self::$meta_id * -1; $this->assertLessThan( 0, $negative_mid ); $this->assertFalse( get_metadata_by_mid( 'user', $negative_mid ) ); @@ -356,7 +357,7 @@ class Tests_Meta extends WP_UnitTestCase { * @ticket 37746 */ public function test_floating_meta_id() { - $floating_mid = $this->meta_id + 0.1337; + $floating_mid = self::$meta_id + 0.1337; $this->assertTrue( floor( $floating_mid ) !== $floating_mid ); $this->assertFalse( get_metadata_by_mid( 'user', $floating_mid ) ); @@ -368,7 +369,7 @@ class Tests_Meta extends WP_UnitTestCase { * @ticket 37746 */ public function test_string_point_zero_meta_id() { - $meta_id = add_metadata( 'user', $this->author->ID, 'meta_key', 'meta_value_2' ); + $meta_id = add_metadata( 'user', self::$author->ID, 'meta_key', 'meta_value_2' ); $string_mid = "{$meta_id}.0"; @@ -385,8 +386,8 @@ class Tests_Meta extends WP_UnitTestCase { public function test_get_metadata_with_empty_key_array_value() { $data = array( 1, 2 ); $value = serialize( $data ); - add_metadata( 'user', $this->author->ID, 'foo', $data ); - $found = get_metadata( 'user', $this->author->ID ); + add_metadata( 'user', self::$author->ID, 'foo', $data ); + $found = get_metadata( 'user', self::$author->ID ); $this->assertSame( array( $value ), $found['foo'] ); } @@ -398,8 +399,8 @@ class Tests_Meta extends WP_UnitTestCase { $data = new stdClass(); $data->foo = 'bar'; $value = serialize( $data ); - add_metadata( 'user', $this->author->ID, 'foo', $data ); - $found = get_metadata( 'user', $this->author->ID ); + add_metadata( 'user', self::$author->ID, 'foo', $data ); + $found = get_metadata( 'user', self::$author->ID ); $this->assertSame( array( $value ), $found['foo'] ); } @@ -413,8 +414,8 @@ class Tests_Meta extends WP_UnitTestCase { array( 3, 4 ), ); $value = serialize( $data ); - add_metadata( 'user', $this->author->ID, 'foo', $data ); - $found = get_metadata( 'user', $this->author->ID ); + add_metadata( 'user', self::$author->ID, 'foo', $data ); + $found = get_metadata( 'user', self::$author->ID ); $this->assertSame( array( $value ), $found['foo'] ); } |