Completed
Push — try/find_latest_autoloader ( 4ce307...807460 )
by
unknown
06:53
created

WP_Test_Autoloader::tearDown()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 6
rs 10
c 0
b 0
f 0
1
<?php // phpcs:ignore WordPress.Files.FileName.NotHyphenatedLowerCase
2
/**
3
 * Autoloader test suite.
4
 *
5
 * @package automattic/jetpack-autoloader
6
 */
7
8
use PHPUnit\Framework\TestCase;
9
use Jetpack\TestCase_ABC\className_ABC;
10
11
/**
12
 * Test suite class for the Autoloader.
13
 */
14
class WP_Test_Autoloader extends TestCase {
15
16
	/**
17
	 * Setup runs before each test.
18
	 */
19
	public function setup() {
20
		parent::setup();
21
22
		spl_autoload_register( 'autoloader' );
23
	}
24
25
	/**
26
	 * Tests whether enqueueing adds a class to the global array.
27
	 */
28 View Code Duplication
	public function test_enqueueing_adds_to_the_global_array() {
29
		enqueue_package_class( 'className', '1', 'path_to_class' );
30
31
		global $jetpack_packages_classmap;
32
		$this->assertTrue( isset( $jetpack_packages_classmap['className'] ) );
33
		$this->assertEquals( $jetpack_packages_classmap['className']['version'], '1' );
34
		$this->assertEquals( $jetpack_packages_classmap['className']['path'], 'path_to_class' );
35
	}
36
37
	/**
38
	 * Tests whether enqueueing adds the latest class version to the global array.
39
	 */
40 View Code Duplication
	public function test_enqueueing_adds_the_latest_version_to_the_global_array() {
41
		enqueue_package_class( 'className', '1', 'path_to_class' );
42
		enqueue_package_class( 'className', '2', 'path_to_class_v2' );
43
44
		global $jetpack_packages_classmap;
45
		$this->assertTrue( isset( $jetpack_packages_classmap['className'] ) );
46
		$this->assertEquals( $jetpack_packages_classmap['className']['version'], '2' );
47
		$this->assertEquals( $jetpack_packages_classmap['className']['path'], 'path_to_class_v2' );
48
49
	}
50
51
	/**
52
	 * Tests whether enqueueing prioritizes the dev version of the class.
53
	 */
54 View Code Duplication
	public function test_enqueueing_always_adds_the_dev_version_to_the_global_array() {
55
56
		enqueue_package_class( 'className', '1', 'path_to_class' );
57
		enqueue_package_class( 'className', 'dev-howdy', 'path_to_class_dev' );
58
		enqueue_package_class( 'className', '2', 'path_to_class_v2' );
59
60
		global $jetpack_packages_classmap;
61
		$this->assertTrue( isset( $jetpack_packages_classmap['className'] ) );
62
		$this->assertEquals( $jetpack_packages_classmap['className']['version'], 'dev-howdy' );
63
		$this->assertEquals( $jetpack_packages_classmap['className']['path'], 'path_to_class_dev' );
64
	}
65
66
	/**
67
	 * Tests whether enqueueing works with autoloading.
68
	 */
69
	public function test_enqueue_class_to_autoload_works_as_expected() {
70
		enqueue_package_class( 'Jetpack\TestCase_ABC\className_ABC', '1', dirname( __FILE__ ) . '/path_to_class.php' );
71
72
		$class = new className_ABC();
73
74
		$this->assertTrue( $class->return_true() );
75
	}
76
}
77