WordPress.org

Make WordPress Core

Ticket #22300: 22300.test1.diff

File 22300.test1.diff, 1.3 KB (added by realloc, 6 years ago)

Unit test for urlencode_deep

  • tests/phpunit/tests/formatting/UrlencodeDeep.php

     
     1<?php
     2
     3/**
     4 * @group formatting
     5 */
     6class Tests_Formatting_UrlencodeDeep extends WP_UnitTestCase {
     7
     8        /**
     9         * Data Provider
     10         */
     11        public function get_test_values() {
     12                return array(
     13                        array( 'qwerty123456', 'qwerty123456' ),
     14                        array( '|!"£$%&/()=?', '%7C%21%22%C2%A3%24%25%26%2F%28%29%3D%3F' ),
     15                        array( '^é*ç°§;:_-.,', '%5E%C3%A9%2A%C3%A7%C2%B0%C2%A7%3B%3A_-.%2C' ),
     16                        array( 'abc123 @#[]€', 'abc123+%40%23%5B%5D%E2%82%AC' ),
     17                );
     18        }
     19
     20        /**
     21         * Validate the urlencode_deep function pair by pair
     22         * @dataProvider get_test_values
     23         *
     24         * @param string $actual
     25         * @param string $expected
     26         */
     27        function test_urlencode_deep( $actual, $expected ) {
     28                $this->assertEquals( $expected, urlencode_deep( $actual ) );
     29        }
     30
     31        /**
     32         * Test the whole array as input
     33         */
     34        function test_urlencode_deep_all() {
     35                $data = $this->get_test_values();
     36
     37                $actual   = wp_list_pluck( $data, 0 );
     38                $expected = wp_list_pluck( $data, 1 );
     39
     40                $this->assertEquals( $expected, urlencode_deep( $actual ) );
     41        }
     42
     43}