assertSame($result, nicecase($string)); } public function providerNiceCase() { return array( array('bgp_peer', 'BGP Peer'), array('bgp_peer_af', 'BGP Peer (AFI/SAFI)'), array('netscaler_vsvr', 'Netscaler vServer'), array('netscaler_svc', 'Netscaler Service'), array('mempool', 'Memory'), array('ipsec_tunnels', 'IPSec Tunnels'), array('vrf', 'VRF'), array('isis', 'IS-IS'), array('cef', 'CEF'), array('eigrp', 'EIGRP'), array('ospf', 'OSPF'), array('bgp', 'BGP'), array('ases', 'ASes'), array('vpns', 'VPNs'), array('dbm', 'dBm'), array('mysql', 'MySQL'), array('powerdns', 'PowerDNS'), array('bind', 'BIND'), array('ntpd', 'NTPd'), array('powerdns-recursor', 'PowerDNS Recursor'), array('freeradius', 'FreeRADIUS'), array('postfix_mailgraph', 'Postfix Mailgraph'), array('ge', 'Greater or equal'), array('le', 'Less or equal'), array('notequals', 'Doesn\'t equal'), array('notmatch', 'Doesn\'t match'), array('diskio', 'Disk I/O'), array('ipmi', 'IPMI'), array('snmp', 'SNMP'), array('mssql', 'SQL Server'), array('apower', 'Apparent power'), array('proxysg', 'Proxy SG'), array('', ''), array(' some text here ', ' some text here '), array('some text here ', 'Some text here '), array(NULL, ''), array(FALSE, ''), array(array('test'), '') ); } /** * @dataProvider providerGetDeviceIcon * @group icon */ public function testGetDeviceIcon($device, $base_icon, $result) { $GLOBALS['config']['base_url'] = 'http://localhost'; // for device_permitted $device['device_id'] = 98217; $_SESSION['userlevel'] = 7; $this->assertSame($result, get_device_icon($device, $base_icon)); } public function providerGetDeviceIcon() { return [ // by $device['os'] [ [ 'os' => 'screenos', 'icon' => '', 'sysObjectID' => '' ], TRUE, 'juniper-old' ], // by $device['os'] and icon definition [ [ 'os' => 'ios', 'icon' => '', 'sysObjectID' => '' ], TRUE, 'cisco' ], // by $device['os'] and vendor definition [ [ 'os' => 'liebert', 'icon' => '', 'sysObjectID' => '' ], TRUE, 'emerson' ], // by $device['os'] and vendor defined icon [ [ 'os' => 'summitd-wl', 'icon' => '', 'sysObjectID' => '' ], TRUE, 'summitd' ], // by $device['os'] and vendor defined icon [ [ 'os' => 'summitd-wl', 'icon' => '', 'sysObjectID' => '', 'vendor' => 'Summit Development' ], TRUE, 'summitd' ], // by $device['os'] and vendor definition (with non alpha chars) [ [ 'os' => 'wut-com' ], TRUE, 'wut' ], // W&T // by $device['os'] and distro name in array [ [ 'os' => 'linux', 'icon' => '', 'sysObjectID' => '', 'distro' => 'RedHat' ], TRUE, 'redhat' ], // by $device['os'] and icon in device array [ [ 'os' => 'ios', 'icon' => 'cisco-old', 'sysObjectID' => '' ], TRUE, 'cisco-old' ], // by all, who win? [ [ 'os' => 'liebert', 'distro' => 'RedHat', 'icon' => 'cisco-old', 'sysObjectID' => '' ], TRUE, 'cisco-old' ], // unknown [ [ 'os' => 'yohoho', 'icon' => '', 'sysObjectID' => '' ], TRUE, 'generic' ], // empty [ [], TRUE, 'generic' ], // Prevent use vendor icon for unix/window oses and visa-versa for others [ [ 'os' => 'pve', 'type' => 'hypervisor', 'sysObjectID' => '', 'vendor' => 'Supermicro' ], TRUE, 'proxmox' ], [ [ 'os' => 'proxmox-server', 'type' => 'server', 'sysObjectID' => '', 'vendor' => 'Supermicro' ], TRUE, 'proxmox' ], [ [ 'os' => 'truenas-core', 'type' => 'storage', 'sysObjectID' => '', 'vendor' => 'Supermicro' ], TRUE, 'truenas' ], [ [ 'os' => 'generic-ups', 'type' => 'power', 'sysObjectID' => '', 'vendor' => '' ], TRUE, 'ups' ], [ [ 'os' => 'generic-ups', 'type' => 'power', 'sysObjectID' => '', 'vendor' => 'Supermicro' ], TRUE, 'supermicro' ], // Last, check with img tag [ [ 'os' => 'ios' ], FALSE, '' ], [ [ 'os' => 'screenos' ], FALSE, '' ], ]; } protected function setUp(): void { // Start the session before each test @session_start(); } protected function tearDown(): void { // Clean up the session after each test session_unset(); session_destroy(); } /** * @group session */ public function test_single_key() { session_set_var('key', 'value'); $this->assertEquals('value', $_SESSION['key']); } /** * @group session */ public function test_nested_keys() { session_set_var('key1->key2->key3', 'value'); $this->assertEquals('value', $_SESSION['key1']['key2']['key3']); } /** * @group session */ public function test_unset_single_key() { $_SESSION['key'] = 'value'; session_set_var('key', null); $this->assertArrayNotHasKey('key', $_SESSION); } /** * @group session */ public function test_unset_nested_keys() { $_SESSION['key1']['key2']['key3'] = 'value'; session_set_var('key1->key2->key3', null); $this->assertArrayNotHasKey('key3', $_SESSION['key1']['key2']); } /** * @group session */ public function test_no_change_single_key() { $_SESSION['key'] = 'value'; session_set_var('key', 'value'); $this->assertEquals('value', $_SESSION['key']); } /** * @group session */ public function test_no_change_nested_keys() { $_SESSION['key1']['key2']['key3'] = 'value'; session_set_var('key1->key2->key3', 'value'); $this->assertEquals('value', $_SESSION['key1']['key2']['key3']); } /** * @group session */ public function test_single_key_array() { session_set_var(['key'], 'value'); $this->assertEquals('value', $_SESSION['key']); } /** * @group session */ public function test_nested_keys_array() { session_set_var(['key1', 'key2', 'key3'], 'value'); $this->assertEquals('value', $_SESSION['key1']['key2']['key3']); } /** * @group session */ public function test_unset_single_key_array() { $_SESSION['key'] = 'value'; session_set_var(['key'], null); $this->assertArrayNotHasKey('key', $_SESSION); } /** * @group session */ public function test_unset_nested_keys_array() { $_SESSION['key1']['key2']['key3'] = 'value'; session_set_var(['key1', 'key2', 'key3'], null); $this->assertArrayNotHasKey('key3', $_SESSION['key1']['key2']); } } // EOF