]> wagnertech.de Git - kivitendo-erp.git/blobdiff - t/menu/parse_access_string.t
Merge branch 'b-3.6.1' of ../kivitendo-erp_20220811
[kivitendo-erp.git] / t / menu / parse_access_string.t
index f1cbd4289e7d018e2bbf6cf314eb520ea0bf1b78..521269995c9e4cd38c3659779f3acd8facf67e3a 100644 (file)
@@ -54,9 +54,27 @@ ok($menu->parse_access_string(\%node), 'parenthesis 1');
 $node{access} = '(no_such_right & sales_order_edit | (no_such_right & sales_order_edit))';
 ok(!$menu->parse_access_string(\%node), 'parenthesis 2');
 
-$node{access} = 'sales_quotation_edit & client/feature_experimental';
+$node{access} = 'sales_quotation_edit & client/feature_experimental_order';
 ok($menu->parse_access_string(\%node), 'client');
 
+$node{access} = '!no_such_right';
+ok($menu->parse_access_string(\%node), 'simple negation 1');
+
+$node{access} = '!sales_order_edit';
+ok(!$menu->parse_access_string(\%node), 'simple negation 2');
+
+$node{access} = '!!sales_order_edit';
+ok($menu->parse_access_string(\%node), 'double negation');
+
+$node{access} = '(no_such_right & sales_order_edit | !(no_such_right & sales_order_edit))';
+ok($menu->parse_access_string(\%node), 'parenthesis with negation 1');
+
+$node{access} = '(no_such_right & sales_order_edit | (!no_such_right | !sales_order_edit))';
+ok($menu->parse_access_string(\%node), 'parenthesis with negation 2');
+
+$node{access} = 'sales_quotation_edit & !client/feature_experimental_order';
+ok(!$menu->parse_access_string(\%node), 'client negation');
+
 done_testing;
 
 1;