Completed
Push — master ( 42fff5...6429c0 )
by Paweł
07:08
created

CodeReviewConfigTest::testPresistenceOfOptions()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 40
Code Lines 32

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 1
Metric Value
cc 1
eloc 32
c 1
b 1
f 1
nc 1
nop 0
dl 0
loc 40
rs 8.8571
1
<?php
2
namespace CodeReview\Tests;
3
4
class CodeReviewConfigTest extends \PHPUnit_Framework_TestCase {
5
6
	public function getLatestVersion($human_readable = false) {
7
		return $human_readable ? '11.22' : 2015062900;
8
	}
9
10
	public function testDefaultOptionsOnNoInput() {
11
		$config = new \CodeReview\Config(array(), array($this, 'getLatestVersion'));
12
		$this->assertEquals(null, $config->getSubPath());
13
		$this->assertEquals('11.22', $config->getMaxVersion());
14
		$this->assertEquals(false, $config->isIncludeDisabledPluginsEnabled());
15
		$this->assertEquals(true, $config->isSkipInactivePluginsEnabled());
16
		$this->assertEquals(true, $config->isDeprecatedFunctionsTestEnabled());
17
		$this->assertEquals(true, $config->isPrivateFunctionsTestEnabled());
18
		$this->assertEquals(false, $config->isFixProblemsEnabled());
19
	}
20
21
	public function testDefaultOptionsOnPersingEmptyInput() {
22
		$config = new \CodeReview\Config(array(), array($this, 'getLatestVersion'));
23
		$config->parseInput(array());
24
		$this->assertEquals('/', $config->getSubPath());
25
		$this->assertEquals('11.22', $config->getMaxVersion());
26
		$this->assertEquals(false, $config->isIncludeDisabledPluginsEnabled());
27
		$this->assertEquals(true, $config->isSkipInactivePluginsEnabled());
28
		$this->assertEquals(true, $config->isDeprecatedFunctionsTestEnabled());
29
		$this->assertEquals(true, $config->isPrivateFunctionsTestEnabled());
30
		$this->assertEquals(false, $config->isFixProblemsEnabled());
31
	}
32
33
	public function testDefaultOptionsOnPersingInput() {
34
		$config = new \CodeReview\Config(array(), array($this, 'getLatestVersion'));
35
		$config->parseInput(array(
36
			'subpath' => 'mod/fancy_plugin',
37
			'version' => '10.22',
38
			'include_disabled_plugins' => false,
39
			'find_deprecated_functions' => true,
40
			'find_private_functions' => true,
41
			'fix_problems' => false,
42
		));
43
		$this->assertEquals('mod/fancy_plugin/', $config->getSubPath());
44
		$this->assertEquals('10.22', $config->getMaxVersion());
45
		$this->assertEquals(false, $config->isIncludeDisabledPluginsEnabled());
46
		$this->assertEquals(true, $config->isSkipInactivePluginsEnabled());
47
		$this->assertEquals(true, $config->isDeprecatedFunctionsTestEnabled());
48
		$this->assertEquals(true, $config->isPrivateFunctionsTestEnabled());
49
		$this->assertEquals(false, $config->isFixProblemsEnabled());
50
51
		$config->parseInput(array(
52
			'subpath' => '//mod/fancy_plugin/../with/supprises\\not\\cool',
53
		));
54
		$this->assertEquals('mod/fancy_plugin//with/supprises/not/cool/', $config->getSubPath());
55
	}
56
57
	public function testDefaultOptionsSetOnConstructor() {
58
		$config = new \CodeReview\Config(array(
59
			'subpath' => 'mod/fancy_plugin',
60
			'subPath' => 'mod/proper_path',
61
			'version' => '10.22',
62
			'maxVersion' => '10.23',
63
			'include_disabled_plugins' => false,
64
			'find_deprecated_functions' => true,
65
			'find_private_functions' => true,
66
			'fix_problems' => false,
67
		), array($this, 'getLatestVersion'));
68
		$this->assertEquals('mod/proper_path', $config->getSubPath());
69
		$this->assertEquals('10.23', $config->getMaxVersion());
70
		$this->assertEquals(false, $config->isIncludeDisabledPluginsEnabled());
71
		$this->assertEquals(true, $config->isSkipInactivePluginsEnabled());
72
		$this->assertEquals(true, $config->isDeprecatedFunctionsTestEnabled());
73
		$this->assertEquals(true, $config->isPrivateFunctionsTestEnabled());
74
		$this->assertEquals(false, $config->isFixProblemsEnabled());
75
76
		$config->parseInput(array(
77
			'subpath' => '//mod/fancy_plugin/../with/supprises\\not\\cool',
78
		));
79
		$this->assertEquals('mod/fancy_plugin//with/supprises/not/cool/', $config->getSubPath());
80
	}
81
82
	public function testPresistenceOfOptions() {
83
		$config = new \CodeReview\Config(array(), array($this, 'getLatestVersion'));
84
		$config->parseInput(array());
85
		$this->assertEquals('/', $config->getSubPath());
86
		$this->assertEquals('11.22', $config->getMaxVersion());
87
		$this->assertEquals(false, $config->isIncludeDisabledPluginsEnabled());
88
		$this->assertEquals(true, $config->isSkipInactivePluginsEnabled());
89
		$this->assertEquals(true, $config->isDeprecatedFunctionsTestEnabled());
90
		$this->assertEquals(true, $config->isPrivateFunctionsTestEnabled());
91
		$this->assertEquals(false, $config->isFixProblemsEnabled());
92
93
		//change stuff
94
		$config->subPath = '//test/invalid/path';
95
		$this->assertEquals('//test/invalid/path', $config->getSubPath());
96
97
		$config->maxVersion = '10.24';
98
		$this->assertEquals('10.24', $config->getMaxVersion());
99
100
		$config->includeDisabledPlugins = true;
101
		$this->assertEquals(true, $config->isIncludeDisabledPluginsEnabled());
102
		$this->assertEquals(false, $config->isSkipInactivePluginsEnabled());
103
		$config->includeDisabledPlugins = false;
104
		$this->assertEquals(false, $config->isIncludeDisabledPluginsEnabled());
105
		$this->assertEquals(true, $config->isSkipInactivePluginsEnabled());
106
107
		$config->findDeprecatedFunctions = true;
108
		$this->assertEquals(true, $config->isDeprecatedFunctionsTestEnabled());
109
		$config->findDeprecatedFunctions = false;
110
		$this->assertEquals(false, $config->isDeprecatedFunctionsTestEnabled());
111
112
		$config->findPrivateFunctions = true;
113
		$this->assertEquals(true, $config->isPrivateFunctionsTestEnabled());
114
		$config->findPrivateFunctions = false;
115
		$this->assertEquals(false, $config->isPrivateFunctionsTestEnabled());
116
117
		$config->fixProblems = true;
118
		$this->assertEquals(true, $config->isFixProblemsEnabled());
119
		$config->fixProblems = false;
120
		$this->assertEquals(false, $config->isFixProblemsEnabled());
121
	}
122
}
123