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

WP_Test_Autoloader   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

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

6 Methods

Rating   Name   Duplication   Size   Complexity  
A setup() 0 6 1
A tearDown() 0 7 1
A test_enqueueing_adds_to_the_global_array() 0 8 1
A test_enqueueing_adds_the_latest_version_to_the_global_array() 0 10 1
A test_enqueueing_always_adds_the_dev_version_to_the_global_array() 0 11 1
A test_enqueue_class_to_autoload_works_as_expected() 0 7 1
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