slashes.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. /**
  3. * @group option
  4. * @group slashes
  5. * @ticket 21767
  6. */
  7. class Tests_Option_Slashes extends WP_UnitTestCase {
  8. function setUp() {
  9. parent::setUp();
  10. // It is important to test with both even and odd numbered slashes,
  11. // as KSES does a strip-then-add slashes in some of its function calls.
  12. $this->slash_1 = 'String with 1 slash \\';
  13. $this->slash_2 = 'String with 2 slashes \\\\';
  14. $this->slash_3 = 'String with 3 slashes \\\\\\';
  15. $this->slash_4 = 'String with 4 slashes \\\\\\\\';
  16. $this->slash_5 = 'String with 5 slashes \\\\\\\\\\';
  17. $this->slash_6 = 'String with 6 slashes \\\\\\\\\\\\';
  18. $this->slash_7 = 'String with 7 slashes \\\\\\\\\\\\\\';
  19. }
  20. /**
  21. * Tests the model function that expects un-slashed data
  22. */
  23. function test_add_option() {
  24. add_option( 'slash_test_1', $this->slash_1 );
  25. add_option( 'slash_test_2', $this->slash_2 );
  26. add_option( 'slash_test_3', $this->slash_3 );
  27. add_option( 'slash_test_4', $this->slash_4 );
  28. $this->assertSame( $this->slash_1, get_option( 'slash_test_1' ) );
  29. $this->assertSame( $this->slash_2, get_option( 'slash_test_2' ) );
  30. $this->assertSame( $this->slash_3, get_option( 'slash_test_3' ) );
  31. $this->assertSame( $this->slash_4, get_option( 'slash_test_4' ) );
  32. }
  33. /**
  34. * Tests the model function that expects un-slashed data
  35. */
  36. function test_update_option() {
  37. add_option( 'slash_test_5', 'foo' );
  38. update_option( 'slash_test_5', $this->slash_1 );
  39. $this->assertSame( $this->slash_1, get_option( 'slash_test_5' ) );
  40. update_option( 'slash_test_5', $this->slash_2 );
  41. $this->assertSame( $this->slash_2, get_option( 'slash_test_5' ) );
  42. update_option( 'slash_test_5', $this->slash_3 );
  43. $this->assertSame( $this->slash_3, get_option( 'slash_test_5' ) );
  44. update_option( 'slash_test_5', $this->slash_4 );
  45. $this->assertSame( $this->slash_4, get_option( 'slash_test_5' ) );
  46. }
  47. }