Project

General

Profile

Download (2.81 KB) Statistics
| Branch: | Tag: | Revision:
1
<?php
2
require_once("config.lib.inc");
3
use PHPUnit\Framework\TestCase;
4

    
5
class ConfigLibTest extends TestCase {
6
	public function test_config_get_path(): void {
7
		// Root element access
8
		$this->assertEquals("bar", config_get_path("foo", null));
9
		// Unfound element returns default, even if non-null
10
		$this->assertNull(config_get_path("foobaz", null));
11
		$this->assertEquals("test", config_get_path("foobaz", "test"));
12
		// Subarray
13
		$this->assertIsArray(config_get_path("bar", null));
14
		$this->assertEquals("bang", config_get_path("bar/baz", null));
15
	}
16

    
17
	public function test_config_set_path(): void {
18
		// Root element
19
		$this->assertEquals("barbaz", config_set_path("baz", "barbaz"));
20
		$this->assertEquals("barbaz", config_get_path("baz", "barbaz"));
21
		// Root element already exists
22
		$this->assertEquals("barbaz", config_set_path("bar", "barbaz"));
23
		$this->assertEquals("barbaz", config_get_path("bar", "barbaz"));
24
		// Parent doesn't exist
25
		$this->assertNull(config_set_path("barbang/baz", "bang"));
26
		$this->assertNull(config_get_path("barbang/baz", null));
27
		// Parent doesn't exist, non-null default return
28
		$this->assertEquals(-1, config_set_path("barbang/baz", "bang", -1));
29
		$this->assertNull(config_get_path("barbang/baz", null));
30

    
31
		// Subarray
32
		$this->assertIsArray(config_set_path("barbang", Array()));
33
		$this->assertEquals("bang", config_set_path("barbang/baz", "bang"));
34
		$this->assertEquals("bang", config_get_path("barbang/baz", null));
35
		// Key exists, replace with array
36
		$this->assertNotNull(config_get_path("foo", null));
37
		$this->assertNotNull(config_set_path("foo", ["bar" => "barbaz", "baz" => "barbaz"]));
38
		$this->assertEquals("barbaz", config_get_path("foo/bar", null));
39
		$this->assertEquals("barbaz", config_get_path("foo/baz", null));
40
		// Key in subarray exists
41
		$this->assertIsArray(config_set_path("bar", Array()));
42
		$this->assertEquals("barbaz", config_set_path("bar/baz", "barbaz"));
43
		$this->assertEquals("barbaz", config_get_path("bar/baz", null));
44
	}
45

    
46
	public function test_config_path_enabled(): void {
47
		// True value in enable
48
		$this->assertTrue(config_path_enabled('servicefoo'));
49
		// False value in enable
50
		$this->assertTrue(config_path_enabled('servicebar'));
51
		// null value in enable
52
		$this->assertFalse(config_path_enabled('servicebaz'));
53
		// Alternate enable key
54
		$this->assertTrue(config_path_enabled('servicebang', 'otherkey'));
55
		// nonexistent path
56
		$this->assertFalse(config_path_enabled('servicebazbang'));
57
	}
58

    
59
	public function setUp(): void {
60
		global $config;
61
		$config = array(
62
			"foo" => "bar",
63
			"bar" => array(
64
				"baz" => "bang",
65
				"foobar" => "foobaz"
66
			),
67
			"servicefoo" => array(
68
				"enable" => true
69
			),
70
			"servicebar" => array(
71
				"enable" => false
72
			),
73
			"servicebaz" => array(
74
				"enable" => null
75
			),
76
			"servicebang" => array(
77
				"otherkey" => true
78
			)
79
		);
80
	}
81
}
82
?>
(1-1/62)