Make WordPress Core

Ticket #21003: 21003-ut.diff

File 21003-ut.diff, 2.0 KB (added by ryan, 12 years ago)
  • tests/comment/query.php

     
    3333
    3434                $this->assertEquals( $comment_id, $result->comment_ID );
    3535        }
     36
     37        /**
     38         * @ticket 21003
     39         */
     40        function test_orderby_meta() {
     41                $comment_id = $this->factory->comment->create();
     42                $comment_id2 = $this->factory->comment->create();
     43                $comment_id3 = $this->factory->comment->create();
     44
     45                add_comment_meta( $comment_id, 'key', 'value1', true );
     46                add_comment_meta( $comment_id, 'key1', 'value1', true );
     47                add_comment_meta( $comment_id, 'key3', 'value3', true );
     48                add_comment_meta( $comment_id2, 'key', 'value2', true );
     49                add_comment_meta( $comment_id2, 'key2', 'value2', true );
     50                add_comment_meta( $comment_id3, 'key3', 'value3', true );
     51
     52                $comments = get_comments( array( 'meta_key' => 'key', 'orderby' => array( 'meta_value' ) ) );
     53                $this->assertEquals( 2, count( $comments ) );
     54                $this->assertEquals( $comment_id2, $comments[0]->comment_ID );
     55                $this->assertEquals( $comment_id, $comments[1]->comment_ID );
     56
     57                $comments = get_comments( array( 'meta_key' => 'key', 'orderby' => array( 'meta_value' ), 'order' => 'ASC' ) );
     58                $this->assertEquals( 2, count( $comments ) );
     59                $this->assertEquals( $comment_id, $comments[0]->comment_ID );
     60                $this->assertEquals( $comment_id2, $comments[1]->comment_ID );
     61
     62                $comments = get_comments( array( 'meta_value' => 'value3', 'orderby' => array( 'meta_value' ) ) );
     63                $this->assertEquals( 2, count( $comments ) );
     64                $this->assertEquals( $comment_id, $comments[0]->comment_ID );
     65                $this->assertEquals( $comment_id3, $comments[1]->comment_ID );
     66
     67                // value1 is present on two different keys for $comment_id yet we should get only one instance
     68                // of that comment in the results
     69                $comments = get_comments( array( 'meta_value' => 'value1', 'orderby' => array( 'meta_value' ) ) );
     70                $this->assertEquals( 1, count( $comments ) );
     71        }
    3672}