| | 1 | <?php |
| | 2 | |
| | 3 | /** |
| | 4 | * @group formatting |
| | 5 | */ |
| | 6 | class 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 | } |