FOSSology  4.7.1
Open Source License Compliance by Open Source Software
MenuHookTest.php
1 <?php
2 /*
3  SPDX-FileCopyrightText: © 2026 Siemens AG
4 
5  SPDX-License-Identifier: GPL-2.0-only
6 */
7 
8 namespace Fossology\Lib\UI;
9 
14 class MenuHookTest extends \PHPUnit\Framework\TestCase
15 {
24  {
25  $parmList = ['agent_decider', 'agent_scancode', 'agent_reuser', 'agent_compatibility'];
26 
28 
29  $deciderKey = array_search('agent_decider', $parmList);
30  $scancodeKey = array_search('agent_scancode', $parmList);
31  $reuserKey = array_search('agent_reuser', $parmList);
32 
33  $this->assertLessThan($deciderKey, $scancodeKey);
34  $this->assertLessThan($deciderKey, $reuserKey);
35  $this->assertSame(['agent_reuser', 'agent_scancode', 'agent_decider', 'agent_compatibility'], $parmList);
36  }
37 
44  {
45  $parmList = ['agent_scancode', 'agent_decider', 'agent_reuser'];
46 
48 
49  $this->assertSame(['agent_scancode', 'agent_reuser', 'agent_decider'], $parmList);
50  }
51 
57  public function testNoOpWhenAlreadyOrdered(): void
58  {
59  $parmList = ['agent_reuser', 'agent_scancode', 'agent_decider'];
60 
62 
63  $this->assertSame(['agent_reuser', 'agent_scancode', 'agent_decider'], $parmList);
64  }
65 
71  public function testNoOpWhenDeciderAbsent(): void
72  {
73  $parmList = ['agent_scancode', 'agent_reuser'];
74 
76 
77  $this->assertSame(['agent_scancode', 'agent_reuser'], $parmList);
78  }
79 
85  public function testNoOpWhenNeitherAgentPresent(): void
86  {
87  $parmList = ['agent_decider', 'agent_compatibility'];
88 
90 
91  $this->assertSame(['agent_decider', 'agent_compatibility'], $parmList);
92  }
93 
99  public function testEmptyListIsNoOp(): void
100  {
101  $parmList = [];
102 
104 
105  $this->assertSame([], $parmList);
106  }
107 
113  public function testDeciderOnlyIsNoOp(): void
114  {
115  $parmList = ['agent_decider'];
116 
118 
119  $this->assertSame(['agent_decider'], $parmList);
120  }
121 
127  public function testNeverLosesOrDuplicatesEntries(): void
128  {
129  $base = ['agent_decider', 'agent_scancode', 'agent_reuser', 'agent_compatibility'];
130  $permutations = [
131  $base,
132  ['agent_scancode', 'agent_reuser', 'agent_decider', 'agent_compatibility'],
133  ['agent_reuser', 'agent_decider', 'agent_scancode', 'agent_compatibility'],
134  ['agent_compatibility', 'agent_decider'],
135  ];
136 
137  foreach ($permutations as $parmList) {
138  $expectedCount = count($parmList);
139  $expectedSet = $parmList;
140  sort($expectedSet);
141 
143 
144  $actualSet = $parmList;
145  sort($actualSet);
146 
147  $this->assertCount($expectedCount, $parmList);
148  $this->assertSame($expectedSet, $actualSet);
149  }
150  }
151 }
Test for class MenuHook.
static rearrangeParmAgentsBeforeDecider(&$parmList)
Definition: MenuHook.php:39