blogOption.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. <?php
  2. if ( is_multisite() ) :
  3. /**
  4. * @group option
  5. */
  6. class Tests_Option_BlogOption extends WP_UnitTestCase {
  7. protected $suppress = false;
  8. function setUp() {
  9. global $wpdb;
  10. parent::setUp();
  11. $this->suppress = $wpdb->suppress_errors();
  12. $_SERVER['REMOTE_ADDR'] = null;
  13. }
  14. function tearDown() {
  15. global $wpdb;
  16. parent::tearDown();
  17. $wpdb->suppress_errors( $this->suppress );
  18. }
  19. function test_from_same_site() {
  20. $key = rand_str();
  21. $key2 = rand_str();
  22. $value = rand_str();
  23. $value2 = rand_str();
  24. $this->assertFalse( get_blog_option( 1, 'doesnotexist' ) );
  25. $this->assertFalse( get_option( 'doesnotexist' ) ); // check get_option()
  26. $this->assertTrue( add_blog_option( 1, $key, $value ) );
  27. // Assert all values of $blog_id that means the current or main blog (the same here).
  28. $this->assertEquals( $value, get_blog_option( 1, $key ) );
  29. $this->assertEquals( $value, get_blog_option( null, $key ) );
  30. $this->assertEquals( $value, get_blog_option( '1', $key ) );
  31. $this->assertEquals( $value, get_option( $key ) ); // check get_option()
  32. $this->assertFalse( add_blog_option( 1, $key, $value ) ); // Already exists
  33. $this->assertFalse( update_blog_option( 1, $key, $value ) ); // Value is the same
  34. $this->assertTrue( update_blog_option( 1, $key, $value2 ) );
  35. $this->assertEquals( $value2, get_blog_option( 1, $key ) );
  36. $this->assertEquals( $value2, get_option( $key ) ); // check get_option()
  37. $this->assertFalse( add_blog_option( 1, $key, $value ) );
  38. $this->assertEquals( $value2, get_blog_option( 1, $key ) );
  39. $this->assertEquals( $value2, get_option( $key ) ); // check get_option()
  40. $this->assertTrue( delete_blog_option( 1, $key ) );
  41. $this->assertFalse( get_blog_option( 1, $key ) );
  42. $this->assertFalse( get_option( $key ) ); // check get_option()
  43. $this->assertFalse( delete_blog_option( 1, $key ) );
  44. $this->assertTrue( update_blog_option( 1, $key2, $value2 ) );
  45. $this->assertEquals( $value2, get_blog_option( 1, $key2 ) );
  46. $this->assertEquals( $value2, get_option( $key2 ) ); // check get_option()
  47. $this->assertTrue( delete_blog_option( 1, $key2 ) );
  48. $this->assertFalse( get_blog_option( 1, $key2 ) );
  49. $this->assertFalse( get_option( $key2 ) ); // check get_option()
  50. }
  51. function test_from_same_site_with_null_blog_id() {
  52. $key = rand_str();
  53. $key2 = rand_str();
  54. $value = rand_str();
  55. $value2 = rand_str();
  56. $this->assertFalse( get_blog_option( null, 'doesnotexist' ) );
  57. $this->assertFalse( get_option( 'doesnotexist' ) ); // check get_option()
  58. $this->assertTrue( add_blog_option( null, $key, $value ) );
  59. // Assert all values of $blog_id that means the current or main blog (the same here).
  60. $this->assertEquals( $value, get_blog_option( null, $key ) );
  61. $this->assertEquals( $value, get_blog_option( null, $key ) );
  62. $this->assertEquals( $value, get_option( $key ) ); // check get_option()
  63. $this->assertFalse( add_blog_option( null, $key, $value ) ); // Already exists
  64. $this->assertFalse( update_blog_option( null, $key, $value ) ); // Value is the same
  65. $this->assertTrue( update_blog_option( null, $key, $value2 ) );
  66. $this->assertEquals( $value2, get_blog_option( null, $key ) );
  67. $this->assertEquals( $value2, get_option( $key ) ); // check get_option()
  68. $this->assertFalse( add_blog_option( null, $key, $value ) );
  69. $this->assertEquals( $value2, get_blog_option( null, $key ) );
  70. $this->assertEquals( $value2, get_option( $key ) ); // check get_option()
  71. $this->assertTrue( delete_blog_option( null, $key ) );
  72. $this->assertFalse( get_blog_option( null, $key ) );
  73. $this->assertFalse( get_option( $key ) ); // check get_option()
  74. $this->assertFalse( delete_blog_option( null, $key ) );
  75. $this->assertTrue( update_blog_option( null, $key2, $value2 ) );
  76. $this->assertEquals( $value2, get_blog_option( null, $key2 ) );
  77. $this->assertEquals( $value2, get_option( $key2 ) ); // check get_option()
  78. $this->assertTrue( delete_blog_option( null, $key2 ) );
  79. $this->assertFalse( get_blog_option( null, $key2 ) );
  80. $this->assertFalse( get_option( $key2 ) ); // check get_option()
  81. }
  82. function test_with_another_site() {
  83. global $current_site, $base;
  84. $title = 'Fooblog';
  85. $domain = 'blogoptiontest';
  86. if ( is_subdomain_install() ) {
  87. $newdomain = $domain . '.' . preg_replace( '|^www\.|', '', $current_site->domain );
  88. $path = $base;
  89. } else {
  90. $newdomain = $current_site->domain;
  91. $path = $base . $domain . '/';
  92. }
  93. $email = 'foo@foo.foo';
  94. $password = wp_generate_password( 12, false );
  95. $user_id = wpmu_create_user( $domain, $password, $email );
  96. $this->assertInternalType( 'integer', $user_id );
  97. $blog_id = wpmu_create_blog( $newdomain, $path, $title, $user_id , array( 'public' => 1 ), $current_site->id );
  98. $this->assertInternalType( 'integer', $blog_id );
  99. $key = rand_str();
  100. $key2 = rand_str();
  101. $value = rand_str();
  102. $value2 = rand_str();
  103. $this->assertFalse( get_blog_option( $blog_id, 'doesnotexist' ) );
  104. //$this->assertFalse( get_option( 'doesnotexist' ) ); // check get_option()
  105. $this->assertTrue( add_blog_option( $blog_id, $key, $value ) );
  106. // Assert all values of $blog_id that means the current or main blog (the same here).
  107. $this->assertEquals( $value, get_blog_option( $blog_id, $key ) );
  108. $this->assertEquals( $value, get_blog_option( "$blog_id", $key ) );
  109. //$this->assertEquals( $value, get_option( $key ) ); // check get_option()
  110. $this->assertFalse( add_blog_option( $blog_id, $key, $value ) ); // Already exists
  111. $this->assertFalse( update_blog_option( $blog_id, $key, $value ) ); // Value is the same
  112. $this->assertTrue( update_blog_option( $blog_id, $key, $value2 ) );
  113. $this->assertEquals( $value2, get_blog_option( $blog_id, $key ) );
  114. //$this->assertEquals( $value2, get_option( $key ) ); // check get_option()
  115. $this->assertFalse( add_blog_option( $blog_id, $key, $value ) );
  116. $this->assertEquals( $value2, get_blog_option( $blog_id, $key ) );
  117. //$this->assertEquals( $value2, get_option( $key ) ); // check get_option()
  118. $this->assertTrue( delete_blog_option( $blog_id, $key ) );
  119. $this->assertFalse( get_blog_option( $blog_id, $key ) );
  120. //$this->assertFalse( get_option( $key ) ); // check get_option()
  121. $this->assertFalse( delete_blog_option( $blog_id, $key ) );
  122. $this->assertTrue( update_blog_option( $blog_id, $key2, $value2 ) );
  123. $this->assertEquals( $value2, get_blog_option( $blog_id, $key2 ) );
  124. //$this->assertEquals( $value2, get_option( $key2 ) ); // check get_option()
  125. $this->assertTrue( delete_blog_option( $blog_id, $key2 ) );
  126. $this->assertFalse( get_blog_option( $blog_id, $key2 ) );
  127. //$this->assertFalse( get_option( $key2 ) ); // check get_option()
  128. }
  129. }
  130. endif;