Make WordPress Core

Changeset 384 in tests


Ignore:
Timestamp:
08/01/2011 04:49:56 PM (15 years ago)
Author:
ryan
Message:

Update and delete by mid tests. Props kovshenin. fixes #21

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wp-testcase/test_includes_meta.php

    r377 r384  
    66                $this->author = get_userdatabylogin(WP_USER_NAME);
    77                $this->post_ids = array();
     8                $this->meta_id = add_metadata( 'user', $this->author->ID, 'meta_key', 'meta_value' );
     9                $this->delete_meta_id = add_metadata( 'user', $this->author->ID, 'delete_meta_key', 'delete_meta_value' );
    810        }
    911
     
    1214                foreach ($this->post_ids as $id)
    1315                        wp_delete_post($id);
     16                       
     17                delete_metadata( 'user', $this->author->ID, 'meta_key', '', true );
     18                delete_metadata( 'user', $this->author->ID, 'delete_meta_key', '', true );
    1419        }
    1520
     
    2934                $this->assertEquals( 'sanitized', $meta );
    3035        }
     36       
     37        function test_delete_metadata_by_mid() {
     38                if ( ! function_exists( 'delete_metadata_by_mid' ) || ! function_exists( 'get_metadata_by_mid' ) )
     39                        return;
     40               
     41                // Let's try and delete a non-existing ID, non existing meta
     42                $this->assertFalse( delete_metadata_by_mid( 'user', 0 ) );
     43                $this->assertFalse( delete_metadata_by_mid( 'non_existing_meta', $this->delete_meta_id ) );
     44               
     45                // Now let's delete the real meta data
     46                $this->assertTrue( delete_metadata_by_mid( 'user', $this->delete_meta_id ) );
     47               
     48                // And make sure it's been deleted
     49                $this->assertFalse( get_metadata_by_mid( 'user', $this->delete_meta_id ) );
     50               
     51                // Make sure the caches are cleared
     52                $this->assertFalse( (bool) get_user_meta( $this->author->ID, 'delete_meta_key' ) );
     53        }
     54       
     55        function test_update_metadata_by_mid() {
     56                if ( ! function_exists( 'update_metadata_by_mid' ) || ! function_exists( 'get_metadata_by_mid') )
     57                        return;
     58               
     59                // Setup
     60                $meta = get_metadata_by_mid( 'user', $this->meta_id );
    3161
     62                // Update the meta value
     63                $this->assertTrue( update_metadata_by_mid( 'user', $this->meta_id, 'meta_new_value' ) );
     64                $meta = get_metadata_by_mid( 'user', $this->meta_id );         
     65                $this->assertEquals( 'meta_new_value', $meta->meta_value );
     66               
     67                // Update the meta value
     68                $this->assertTrue( update_metadata_by_mid( 'user', $this->meta_id, 'meta_new_value', 'meta_new_key' ) );
     69                $meta = get_metadata_by_mid( 'user', $this->meta_id );
     70                $this->assertEquals( 'meta_new_key', $meta->meta_key );
     71               
     72                // Update the key and value
     73                $this->assertTrue( update_metadata_by_mid( 'user', $this->meta_id, 'meta_value', 'meta_key' ) );
     74                $meta = get_metadata_by_mid( 'user', $this->meta_id );
     75                $this->assertEquals( 'meta_key', $meta->meta_key );
     76                $this->assertEquals( 'meta_value', $meta->meta_value );
     77               
     78                // Update the value that has to be serialized
     79                $this->assertTrue( update_metadata_by_mid( 'user', $this->meta_id, array( 'first', 'second' ) ) );
     80                $meta = get_metadata_by_mid( 'user', $this->meta_id );
     81                $this->assertEquals( array( 'first', 'second' ), $meta->meta_value );
     82               
     83                // Let's try some invalid meta data
     84                $this->assertFalse( update_metadata_by_mid( 'user', 0, 'meta_value' ) );
     85                $this->assertFalse( update_metadata_by_mid( 'user', $this->meta_id, 'meta_value', array('invalid', 'key' ) ) );
     86               
     87                // Let's see if caches get cleared after updates.
     88                $meta = get_metadata_by_mid( 'user', $this->meta_id );
     89                $first = get_user_meta( $meta->user_id, $meta->meta_key );
     90                $this->assertTrue( update_metadata_by_mid( 'user', $this->meta_id, 'other_meta_value' ) );
     91                $second = get_user_meta( $meta->user_id, $meta->meta_key );
     92                $this->assertFalse( $first === $second );
     93        }
    3294}
Note: See TracChangeset for help on using the changeset viewer.