Completed
Push — update/seo-free ( 222e0e...3a5da0 )
by
unknown
62:25 queued 51:56
created

AutoloaderLocatorTest   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 90
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
dl 0
loc 90
rs 10
c 0
b 0
f 0
wmc 6
lcom 1
cbo 1

6 Methods

Rating   Name   Duplication   Size   Complexity  
A set_up_before_class() 0 3 1
A set_up() 0 3 1
A test_finds_latest_autoloader() 0 20 1
A test_gets_autoloader_path() 0 4 1
A test_gets_autoloader_version_as_null_without_class() 0 5 1
A test_gets_autoloader_version() 0 5 1
1
<?php // phpcs:ignore WordPress.Files.FileName
2
/**
3
 * Autoloader locator test suite.
4
 *
5
 * @package automattic/jetpack-autoloader
6
 */
7
8
// We live in the namespace of the test autoloader to avoid many use statements.
9
namespace Automattic\Jetpack\Autoloader\jpCurrent;
10
11
use PHPUnit\Framework\TestCase;
12
use Test_Plugin_Factory;
13
14
/**
15
 * Test suite class for the Autoloader locator.
16
 */
17
class AutoloaderLocatorTest extends TestCase {
18
19
	/**
20
	 * The older version of the autoloader that we want to use. Note that
21
	 * the version should support PSR-4 since this one does.
22
	 */
23
	const OLDER_VERSION = '2.4.0.0';
24
25
	/**
26
	 * The directory of a plugin using the autoloader.
27
	 *
28
	 * @var string
29
	 */
30
	private static $older_plugin_dir;
31
32
	/**
33
	 * The locator we are testing.
34
	 *
35
	 * @var Autoloader_Locator
36
	 */
37
	private $autoloader_locator;
38
39
	/**
40
	 * Setup before class runs before the class.
41
	 *
42
	 * @beforeClass
43
	 */
44
	public static function set_up_before_class() {
45
		self::$older_plugin_dir = Test_Plugin_Factory::create_test_plugin( false, self::OLDER_VERSION )->make();
46
	}
47
48
	/**
49
	 * Setup executes before each test.
50
	 *
51
	 * @before
52
	 */
53
	public function set_up() {
54
		$this->autoloader_locator = new Autoloader_Locator( new Version_Selector() );
55
	}
56
57
	/**
58
	 * Tests the locator to find the latest version of the autoloader.
59
	 */
60
	public function test_finds_latest_autoloader() {
61
		$latest_version = null;
62
		$latest         = $this->autoloader_locator->find_latest_autoloader( array(), $latest_version );
63
		$this->assertNull( $latest );
64
		$this->assertNull( $latest_version );
65
66
		$latest = $this->autoloader_locator->find_latest_autoloader(
67
			array( self::$older_plugin_dir ),
68
			$latest_version
69
		);
70
		$this->assertEquals( self::$older_plugin_dir, $latest );
71
		$this->assertEquals( self::OLDER_VERSION, $latest_version );
72
73
		$latest = $this->autoloader_locator->find_latest_autoloader(
74
			array( TEST_PLUGIN_DIR, self::$older_plugin_dir ),
75
			$latest_version
76
		);
77
		$this->assertEquals( TEST_PLUGIN_DIR, $latest );
78
		$this->assertEquals( Test_Plugin_Factory::VERSION_CURRENT, $latest_version );
79
	}
80
81
	/**
82
	 * Tests that the locator can find the path to the autoloader file.
83
	 */
84
	public function test_gets_autoloader_path() {
85
		$path = $this->autoloader_locator->get_autoloader_path( TEST_PLUGIN_DIR );
86
		$this->assertEquals( TEST_PLUGIN_DIR . '/vendor/autoload_packages.php', $path );
87
	}
88
89
	/**
90
	 * Tests that the locator returns null when no version could be found.
91
	 */
92
	public function test_gets_autoloader_version_as_null_without_class() {
93
		$version = $this->autoloader_locator->get_autoloader_version( TEST_PACKAGE_DIR );
94
95
		$this->assertNull( $version );
96
	}
97
98
	/**
99
	 * Tests that the locator can find the version..
100
	 */
101
	public function test_gets_autoloader_version() {
102
		$version = $this->autoloader_locator->get_autoloader_version( TEST_PLUGIN_DIR );
103
104
		$this->assertEquals( Test_Plugin_Factory::VERSION_CURRENT, $version );
105
	}
106
}
107