WordPress.org

Make WordPress Core

Ticket #24106: 24106.wp_slash-unittest.diff

File 24106.wp_slash-unittest.diff, 1.6 KB (added by devesine, 6 years ago)
  • tests/phpunit/tests/formatting/wp_slash.php

     
     1<?php
     2
     3/**
     4 * @group formatting
     5 */
     6class Tests_Formatting_WP_Slash extends WP_UnitTestCase {
     7        /**
     8         * @ticket 24106
     9         */
     10        function test_preserves_original_datatype() {
     11
     12                $this->assertEquals( true, wp_slash( true ) );
     13                $this->assertEquals( false, wp_slash( false ) );
     14                $this->assertEquals( 4, wp_slash( 4 ) );
     15                $this->assertEquals( 'foo', wp_slash( 'foo' ) );
     16                $arr = array( 'a' => true, 'b' => false, 'c' => 4, 'd' => 'foo' );
     17                $arr['e'] = $arr; // Add a sub-array
     18                $this->assertEquals( $arr, wp_slash( $arr ) ); // Keyed array
     19                $this->assertEquals( array_values( $arr ), wp_slash( array_values( $arr ) ) ); // Non-keyed
     20
     21                $obj = new stdClass;
     22                foreach ( $arr as $k => $v ) {
     23                        $obj->$k = $v;
     24                }
     25                $this->assertEquals( $obj, wp_slash( $obj ) );
     26        }
     27
     28        function test_adds_slashes() {
     29                $old = 'single\\slash double\\\\slash triple\\\\\\slash';
     30                $new = 'single\\\\slash double\\\\\\\\slash triple\\\\\\\\\\\\slash';
     31                $this->assertEquals( $new, wp_slash( $old ) );
     32                $this->assertEquals( array( 'a' => $new ), wp_slash( array( 'a' => $old ) ) ); // Keyed array
     33                $this->assertEquals( array( $new ), wp_slash( array( $old ) ) ); // Non-keyed
     34
     35                $obj_old = new stdClass;
     36                $obj_old->a = $old;
     37                $obj_new = new stdClass;
     38                $obj_new->a = $new;
     39                $this->assertEquals( $obj_new, wp_slash( $obj_old ) );
     40        }
     41
     42}