Skip to:
Content

BuddyPress.org

Ticket #7248: 7248.diff

File 7248.diff, 1.8 KB (added by boonebgorges, 5 years ago)
  • src/bp-core/classes/class-bp-user-query.php

    diff --git src/bp-core/classes/class-bp-user-query.php src/bp-core/classes/class-bp-user-query.php
    index 5216fda..2352007 100644
    class BP_User_Query { 
    364364                // 'include' - User ids to include in the results.
    365365                $include     = false !== $include ? wp_parse_id_list( $include ) : array();
    366366                $include_ids = $this->get_include_ids( $include );
    367                 if ( ! empty( $include_ids ) ) {
     367
     368                // An array containing nothing but 0 should always fail.
     369                if ( 1 === count( $include_ids ) && 0 == reset( $include_ids ) ) {
     370                        $sql['where'][] = $this->no_results['where'];
     371                } elseif ( ! empty( $include_ids ) ) {
    368372                        $include_ids    = implode( ',', wp_parse_id_list( $include_ids ) );
    369373                        $sql['where'][] = "u.{$this->uid_name} IN ({$include_ids})";
    370374                }
  • tests/phpunit/testcases/core/class-bp-user-query.php

    diff --git tests/phpunit/testcases/core/class-bp-user-query.php tests/phpunit/testcases/core/class-bp-user-query.php
    index 205cb26..1a87f70 100644
    class BP_Tests_BP_User_Query_TestCases extends BP_UnitTestCase { 
    6767        }
    6868
    6969        /**
     70         * @ticket BP7248
     71         */
     72        public function test_include_array_contaning_only_0_should_result_in_no_results_query() {
     73                $q = new BP_User_Query( array(
     74                        'include' => array( 0 ),
     75                ) );
     76
     77                $this->assertContains( '0 = 1', $q->uid_clauses['where'] );
     78        }
     79
     80        /**
     81         * @ticket BP7248
     82         */
     83        public function test_include_array_contaning_0_but_also_real_IDs_should_not_result_in_no_results_query() {
     84                $q = new BP_User_Query( array(
     85                        'include' => array( 0, 1 ),
     86                ) );
     87
     88                $this->assertNotContains( '0 = 1', $q->uid_clauses['where'] );
     89        }
     90
     91        /**
    7092         * @group user_ids
    7193         */
    7294        public function test_bp_user_query_user_ids_with_invalid_user_id() {