Make WordPress Core

Changeset 384 in tests


Ignore:
Timestamp:
08/01/2011 04:49:56 PM (13 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.