| @@ 19-33 (lines=15) @@ | ||
| 16 | /** | |
| 17 | * Tests that the autoloader works properly in the standard case. | |
| 18 | */ | |
| 19 | 	public function test_autoloader_as_active_plugin() { | |
| 20 | // Activate the current autoloader so it won't be unknown. | |
| 21 | $this->activate_autoloader( Test_Plugin_Factory::CURRENT ); | |
| 22 | ||
| 23 | // Load and shutdown the autoloader safely. | |
| 24 | $this->load_plugin_autoloader( Test_Plugin_Factory::CURRENT ); | |
| 25 | $this->trigger_shutdown( true ); | |
| 26 | ||
| 27 | // Make sure the autoloader worked as expected. | |
| 28 | $this->assertAutoloaderVersion( Test_Plugin_Factory::CURRENT ); | |
| 29 | $this->assertAutoloaderResetCount( 0 ); | |
| 30 | $this->assertAutoloaderNotFoundUnknown( Test_Plugin_Factory::CURRENT ); | |
| 31 | $this->assertAutoloaderCacheEquals( Test_Plugin_Factory::CURRENT ); | |
| 32 | $this->assertAutoloaderProvidesClass( \Automattic\Jetpack\AutoloaderTesting\Current\UniqueTestClass::class ); | |
| 33 | } | |
| 34 | ||
| 35 | /** | |
| 36 | * Tests that the autoloader works properly as an mu-plugin. | |
| @@ 38-59 (lines=22) @@ | ||
| 35 | /** | |
| 36 | * Tests that the autoloader does not write the cache when the active plugins have not changed. | |
| 37 | */ | |
| 38 | 	public function test_autoloader_does_not_write_unchanged_cache() { | |
| 39 | // Cache the plugin so that the cache is unchanged. | |
| 40 | $this->cache_plugin( Test_Plugin_Factory::CURRENT ); | |
| 41 | ||
| 42 | // Load the autoloader. | |
| 43 | $this->load_plugin_autoloader( Test_Plugin_Factory::CURRENT ); | |
| 44 | ||
| 45 | // We're going to erase the cache before we shut the autoloader down. | |
| 46 | // Since the cache is only loaded when the autoloader is, we can | |
| 47 | // do this to detect whether or not the cache is updated. | |
| 48 | $this->erase_cache(); | |
| 49 | ||
| 50 | // Trigger the shutdown now and it should NOT update the cache. | |
| 51 | $this->trigger_shutdown( true ); | |
| 52 | ||
| 53 | // Make sure the autoloader worked as expected. | |
| 54 | $this->assertAutoloaderVersion( Test_Plugin_Factory::CURRENT ); | |
| 55 | $this->assertAutoloaderResetCount( 0 ); | |
| 56 | $this->assertAutoloaderFoundUnknown( Test_Plugin_Factory::CURRENT ); | |
| 57 | $this->assertAutoloaderCacheEmpty(); | |
| 58 | $this->assertAutoloaderProvidesClass( \Automattic\Jetpack\AutoloaderTesting\Current\UniqueTestClass::class ); | |
| 59 | } | |
| 60 | ||
| 61 | /** | |
| 62 | * Tests that the autoloader does not reset when it encounters unknown plugins that are in the cache already. | |