|
@@ 61-70 (lines=10) @@
|
| 58 |
|
/** |
| 59 |
|
* Tests that the autoloader works as expected. |
| 60 |
|
*/ |
| 61 |
|
public function test_autoloader_init() { |
| 62 |
|
$this->activate_plugin( 'plugin_current' ); |
| 63 |
|
|
| 64 |
|
$this->load_autoloader( 'plugin_current' ); |
| 65 |
|
|
| 66 |
|
$this->assertAutoloaderVersion( '2.6.0.0' ); |
| 67 |
|
|
| 68 |
|
$this->shutdown_autoloader( true ); |
| 69 |
|
$this->assertAutoloaderCache( array( 'plugin_current' ) ); |
| 70 |
|
} |
| 71 |
|
|
| 72 |
|
/** |
| 73 |
|
* Tests that the autoloader does not initialize twice. |
|
@@ 178-189 (lines=12) @@
|
| 175 |
|
/** |
| 176 |
|
* Tests that the autoloader updates the cache. |
| 177 |
|
*/ |
| 178 |
|
public function test_autoloader_updates_cache() { |
| 179 |
|
$this->activate_plugin( 'plugin_current' ); |
| 180 |
|
|
| 181 |
|
// Write an empty cache so we can make sure it was updated. |
| 182 |
|
$this->cache_plugins( array() ); |
| 183 |
|
|
| 184 |
|
$this->load_autoloader( 'plugin_current' ); |
| 185 |
|
$this->shutdown_autoloader( true ); |
| 186 |
|
|
| 187 |
|
$this->assertAutoloaderVersion( '2.6.0.0' ); |
| 188 |
|
$this->assertAutoloaderCache( array( 'plugin_current' ) ); |
| 189 |
|
} |
| 190 |
|
|
| 191 |
|
/** |
| 192 |
|
* Tests that the autoloader does not update the cache if it has not changed. |
|
@@ 215-228 (lines=14) @@
|
| 212 |
|
/** |
| 213 |
|
* Tests that the autoloader empties the cache if shutdown happens before plugins_loaded. |
| 214 |
|
*/ |
| 215 |
|
public function test_autoloader_empties_cache_on_early_shutdown() { |
| 216 |
|
$this->activate_plugin( 'plugin_current' ); |
| 217 |
|
|
| 218 |
|
// Write a cache that we can use when loading the autoloader. |
| 219 |
|
$this->cache_plugins( array( 'plugin_current' ) ); |
| 220 |
|
|
| 221 |
|
$this->load_autoloader( 'plugin_current' ); |
| 222 |
|
|
| 223 |
|
// Make sure to shutdown prematurely so that the cache will be erased instead of saved. |
| 224 |
|
$this->shutdown_autoloader( false ); |
| 225 |
|
|
| 226 |
|
$this->assertAutoloaderVersion( '2.6.0.0' ); |
| 227 |
|
$this->assertAutoloaderCache( array() ); |
| 228 |
|
} |
| 229 |
|
|
| 230 |
|
/** |
| 231 |
|
* Tests that the autoloader is able to resolve symbolic links to avoid duplicate plugin entries. |
|
@@ 233-243 (lines=11) @@
|
| 230 |
|
/** |
| 231 |
|
* Tests that the autoloader is able to resolve symbolic links to avoid duplicate plugin entries. |
| 232 |
|
*/ |
| 233 |
|
public function test_autoloader_resolves_symlinks() { |
| 234 |
|
$this->activate_plugin( 'plugin_current', 'plugin_symlink' ); |
| 235 |
|
|
| 236 |
|
$this->load_autoloader( 'plugin_symlink' ); |
| 237 |
|
|
| 238 |
|
$this->assertAutoloaderVersion( '2.6.0.0' ); |
| 239 |
|
|
| 240 |
|
$this->shutdown_autoloader( true ); |
| 241 |
|
// Since there's no cache we should expect the resolved path. |
| 242 |
|
$this->assertAutoloaderCache( array( 'plugin_current' ) ); |
| 243 |
|
} |
| 244 |
|
|
| 245 |
|
/** |
| 246 |
|
* Tests that the autoloader can handle cases where the cached path is a symlink. |
|
@@ 248-260 (lines=13) @@
|
| 245 |
|
/** |
| 246 |
|
* Tests that the autoloader can handle cases where the cached path is a symlink. |
| 247 |
|
*/ |
| 248 |
|
public function test_autoloader_resolves_cached_symlinks() { |
| 249 |
|
$this->cache_plugins( array( 'plugin_symlink' ) ); |
| 250 |
|
|
| 251 |
|
$this->activate_plugin( 'plugin_current', 'plugin_symlink' ); |
| 252 |
|
|
| 253 |
|
$this->load_autoloader( 'plugin_symlink' ); |
| 254 |
|
|
| 255 |
|
$this->assertAutoloaderVersion( '2.6.0.0' ); |
| 256 |
|
|
| 257 |
|
$this->shutdown_autoloader( true ); |
| 258 |
|
// The cache shouldn't be updated since internally real paths are always used. |
| 259 |
|
$this->assertAutoloaderCache( array( 'plugin_symlink' ) ); |
| 260 |
|
} |
| 261 |
|
|
| 262 |
|
/** |
| 263 |
|
* Generates a new autoloader from the current source files for the "plugin_current" plugin. |