Completed
Push — move/autoloader-package-tests ( 45c0cd )
by Marin
08:25
created

WP_Test_Autoloader::setup()   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
2
3
use Automattic\Jetpack\Autoloader as Autoloader;
4
use PHPUnit\Framework\TestCase;
5
use Jetpack\TestCase_ABC\className_ABC;
6
7
class WP_Test_Autoloader extends TestCase {
8
	static $jetpack_packages_classes;
9
	function setup() {
10
		parent::setup();
11
		global $jetpack_packages_classes;
12
		self::$jetpack_packages_classes = $jetpack_packages_classes;
13
		$jetpack_packages_classes = array();
14
	}
15
16
	function tearDown() {
17
		parent::tearDown(); // TODO: Change the autogenerated stub
18
		// reaply the global
19
		global $jetpack_packages_classes;
20
		$jetpack_packages_classes = self::$jetpack_packages_classes;
21
22
	}
23
24
	function test_enqueueing_adds_to_the_global_array() {
25
		Autoloader\enqueue_package_class( 'className', '1', 'path_to_class' );
26
27
		global $jetpack_packages_classes;
28
		$this->assertTrue( isset( $jetpack_packages_classes['className'] ) );
29
		$this->assertEquals( $jetpack_packages_classes['className']['version'], '1' );
30
		$this->assertEquals( $jetpack_packages_classes['className']['path'], 'path_to_class' );
31
	}
32
33
	function test_enqueueing_adds_the_latest_version_to_the_global_array() {
34
		Autoloader\enqueue_package_class( 'className', '1', 'path_to_class' );
35
		Autoloader\enqueue_package_class( 'className', '2', 'path_to_class_v2' );
36
37
		global $jetpack_packages_classes;
38
		$this->assertTrue( isset( $jetpack_packages_classes['className'] ) );
39
		$this->assertEquals( $jetpack_packages_classes['className']['version'], '2' );
40
		$this->assertEquals( $jetpack_packages_classes['className']['path'], 'path_to_class_v2' );
41
42
	}
43
44
	function test_enqueueing_always_adds_the_dev_version_to_the_global_array() {
45
46
		Autoloader\enqueue_package_class( 'className', '1', 'path_to_class' );
47
		Autoloader\enqueue_package_class( 'className', 'dev-howdy', 'path_to_class_dev' );
48
		Autoloader\enqueue_package_class( 'className', '2', 'path_to_class_v2' );
49
50
		global $jetpack_packages_classes;
51
		$this->assertTrue( isset( $jetpack_packages_classes['className'] ) );
52
		$this->assertEquals( $jetpack_packages_classes['className']['version'], 'dev-howdy' );
53
		$this->assertEquals( $jetpack_packages_classes['className']['path'], 'path_to_class_dev' );
54
	}
55
56
	function test_enqueue_class_to_autoload_works_as_expected() {
57
		Autoloader\enqueue_package_class( 'Jetpack\TestCase_ABC\className_ABC', '1', dirname( __FILE__ ) . '/path_to_class.php' );
58
59
		$class = new className_ABC();
60
61
		$this->assertTrue( $class->return_true() );
62
	}
63
64
}
65