| 160 | |
| 161 | /** |
| 162 | * Test calling get_settings_errors() with variations on where it gets errors from. |
| 163 | * |
| 164 | * @ticket 42498 |
| 165 | * @global array $wp_settings_errors |
| 166 | */ |
| 167 | public function test_get_settings_errors_sources() { |
| 168 | global $wp_settings_errors; |
| 169 | |
| 170 | $blogname_error = array( |
| 171 | 'setting' => 'blogname', |
| 172 | 'code' => 'blogname', |
| 173 | 'message' => 'Capital P dangit!', |
| 174 | 'type' => 'error', |
| 175 | ); |
| 176 | $blogdescription_error = array( |
| 177 | 'setting' => 'blogdescription', |
| 178 | 'code' => 'blogdescription', |
| 179 | 'message' => 'Too short', |
| 180 | 'type' => 'error', |
| 181 | ); |
| 182 | |
| 183 | $wp_settings_errors = null; |
| 184 | $this->assertSame( array(), get_settings_errors( 'blogname' ) ); |
| 185 | |
| 186 | // Test getting errors from transient. |
| 187 | $_GET['settings-updated'] = '1'; |
| 188 | set_transient( 'settings_errors', array( $blogname_error ) ); |
| 189 | $wp_settings_errors = null; |
| 190 | $this->assertSame( array( $blogname_error ), get_settings_errors( 'blogname' ) ); |
| 191 | |
| 192 | // Test getting errors from transient and from global. |
| 193 | $_GET['settings-updated'] = '1'; |
| 194 | set_transient( 'settings_errors', array( $blogname_error ) ); |
| 195 | $wp_settings_errors = null; |
| 196 | add_settings_error( $blogdescription_error['setting'], $blogdescription_error['code'], $blogdescription_error['message'], $blogdescription_error['type'] ); |
| 197 | $this->assertEqualSets( array( $blogname_error, $blogdescription_error ), get_settings_errors() ); |
| 198 | |
| 199 | $wp_settings_errors = null; |
| 200 | } |