WordPress.org

Make WordPress Core

Ticket #43446: 43446.1.tests.diff

File 43446.1.tests.diff, 2.9 KB (added by soulseekah, 21 months ago)

Tests for !=, NOT LIKE, IN, NOT IN

  • tests/phpunit/tests/query/metaQuery.php

    diff --git tests/phpunit/tests/query/metaQuery.php tests/phpunit/tests/query/metaQuery.php
    index d332815..e8f4769 100644
    class Tests_Query_MetaQuery extends WP_UnitTestCase { 
    19221922                $this->assertEqualSets( array( $posts[0] ), $q->posts );
    19231923
    19241924        }
     1925
     1926        /**
     1927         * @ticket 43446
     1928         */
     1929        public function test_compare_key_not_equals() {
     1930                $posts = self::factory()->post->create_many( 3 );
     1931
     1932                add_post_meta( $posts[0], 'aaa_foo_aaa', 'abc' );
     1933                add_post_meta( $posts[1], 'aaa_bar_aaa', 'abc' );
     1934                add_post_meta( $posts[2], 'aaa_foo_bbb', 'abc' );
     1935                add_post_meta( $posts[2], 'aaa_foo_ccc', 'abc' );
     1936
     1937                $q = new WP_Query(
     1938                        array(
     1939                                'meta_query' => array(
     1940                                        array(
     1941                                                'compare_key' => '!=',
     1942                                                'key'         => 'aaa_foo_bbb',
     1943                                                'value'       => 'abc',
     1944                                        ),
     1945                                ),
     1946                                'fields' => 'ids',
     1947                        )
     1948                );
     1949
     1950                $this->assertEqualSets( array( $posts[0], $posts[1] ), $q->posts );
     1951        }
     1952
     1953        /**
     1954         * @ticket 43446
     1955         */
     1956        public function test_compare_key_not_like() {
     1957                $posts = self::factory()->post->create_many( 3 );
     1958
     1959                add_post_meta( $posts[0], 'aaa_foo_aaa', 'abc' );
     1960                add_post_meta( $posts[1], 'aaa_bar_aaa', 'abc' );
     1961                add_post_meta( $posts[1], 'aaa_bar_ccc', 'abc' );
     1962                add_post_meta( $posts[2], 'aaa_foo_bbb', 'abc' );
     1963
     1964                $q = new WP_Query(
     1965                        array(
     1966                                'meta_query' => array(
     1967                                        array(
     1968                                                'compare_key' => 'NOT LIKE',
     1969                                                'key'         => 'aaa_bar',
     1970                                                'value'       => 'abc',
     1971                                        ),
     1972                                ),
     1973                                'fields' => 'ids',
     1974                        )
     1975                );
     1976
     1977                $this->assertEqualSets( array( $posts[0], $posts[2] ), $q->posts );
     1978        }
     1979
     1980        /**
     1981         * @ticket 43446
     1982         */
     1983        public function test_compare_key_in() {
     1984                $posts = self::factory()->post->create_many( 3 );
     1985
     1986                add_post_meta( $posts[0], 'aaa_foo_aaa', 'abc' );
     1987                add_post_meta( $posts[1], 'aaa_bar_aaa', 'abc' );
     1988                add_post_meta( $posts[2], 'aaa_foo_bbb', 'abc' );
     1989
     1990                $q = new WP_Query(
     1991                        array(
     1992                                'meta_query' => array(
     1993                                        array(
     1994                                                'compare_key' => 'IN',
     1995                                                'key'         => array( 'aaa_foo_bbb', 'aaa_bar_aaa' ),
     1996                                        ),
     1997                                ),
     1998                                'fields' => 'ids',
     1999                        )
     2000                );
     2001
     2002                $this->assertEqualSets( array( $posts[1], $posts[2] ), $q->posts );
     2003        }
     2004
     2005        /**
     2006         * @ticket 43446
     2007         */
     2008        public function test_compare_key_not_in() {
     2009                $posts = self::factory()->post->create_many( 3 );
     2010
     2011                add_post_meta( $posts[0], 'aaa_foo_aaa', 'abc' );
     2012                add_post_meta( $posts[0], 'aaa_foo_ddd', 'abc' );
     2013                add_post_meta( $posts[1], 'aaa_bar_aaa', 'abc' );
     2014                add_post_meta( $posts[2], 'aaa_foo_bbb', 'abc' );
     2015                add_post_meta( $posts[2], 'aaa_foo_ccc', 'abc' );
     2016
     2017                $q = new WP_Query(
     2018                        array(
     2019                                'meta_query' => array(
     2020                                        array(
     2021                                                'compare_key' => 'NOT IN',
     2022                                                'key'         => array( 'aaa_foo_bbb', 'aaa_foo_ddd' ),
     2023                                        ),
     2024                                ),
     2025                                'fields' => 'ids',
     2026                        )
     2027                );
     2028
     2029                $this->assertEqualSets( array( $posts[1] ), $q->posts );
     2030        }
    19252031}