Skip to content

Commit 0a05df6

Browse files
Parse not selected group ids for a Profile instead of selected (#39)
1 parent 8db4f26 commit 0a05df6

File tree

2 files changed

+14
-23
lines changed

2 files changed

+14
-23
lines changed

lib/openscap_parser/profile.rb

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,14 @@ def selected_rule_ids
3131
/@idref", RegexHandler).map(&:text)
3232
end
3333

34-
def selected_group_ids
35-
# Look for selected group ids where the idref contains '_group_' that is not preceded by 'rule'
36-
@selected_group_ids ||= @parsed_xml.xpath("select[@selected='true']
37-
[regex(@idref, '^((?!_rule_).)*?(_group_).*$')]
38-
/@idref", RegexHandler) &&
39-
@parsed_xml.xpath("select[@selected='true']
40-
[regex(@idref, '^((?!_rule_).)*?(_group_).*$')]
41-
/@idref", RegexHandler).map(&:text)
34+
def unselected_group_ids
35+
# Look for group ids that are not selected where the idref contains '_group_' that is not preceded by 'rule'
36+
@unselected_group_ids ||= @parsed_xml.xpath("select[@selected='false']
37+
[regex(@idref, '^((?!_rule_).)*?(_group_).*$')]
38+
/@idref", RegexHandler) &&
39+
@parsed_xml.xpath("select[@selected='false']
40+
[regex(@idref, '^((?!_rule_).)*?(_group_).*$')]
41+
/@idref", RegexHandler).map(&:text)
4242
end
4343

4444
def selected_entity_ids

test/openscap_parser/test_result_file_test.rb

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -42,25 +42,16 @@ def setup
4242
refute_includes(@test_result_file2.benchmark.profiles.first.selected_rule_ids, "xccdf_org.ssgproject.content_group_rule_group_crypto")
4343
end
4444

45-
test 'profile_selected_group_ids' do
46-
assert_equal(["xccdf_org.ssgproject.rules_group_crypto",
47-
"xccdf_org.ssgproject_rules.content_group_crypto",
48-
"xccdf_org.ssgproject.contentrule_group_crypto",
49-
"xccdf_org.ssgproject.content_group_rule_crypto",
50-
"xccdf_org.ssgproject.content_group_rule_group_crypto",
51-
"xccdf_org.ssgproject.content_group_endpoint_rule_security_software",
52-
"xccdf_org.ssgproject.content_group_nfs_configuring_all_machines",
53-
"xccdf_org.ssgproject.content_group_nfs_client_or_server_not_both",
54-
"xccdf_org.ssgproject.content_group_nfs_configure_fixed_ports",
55-
"xccdf_org.ssgproject.content_group_mounting_remote_filesystems"],
56-
@test_result_file2.benchmark.profiles.first.selected_group_ids)
45+
test 'profile_unselected_group_ids' do
46+
assert_equal(186, @test_result_file.benchmark.profiles.first.unselected_group_ids.count)
47+
assert_includes(@test_result_file.benchmark.profiles.first.unselected_group_ids, "xccdf_org.ssgproject.content_group_mcafee_security_software")
48+
assert_includes(@test_result_file.benchmark.profiles.first.unselected_group_ids, "xccdf_org.ssgproject.content_group_mcafee_hbss_software")
49+
assert_includes(@test_result_file.benchmark.profiles.first.unselected_group_ids, "xccdf_org.ssgproject.content_group_certified-vendor")
50+
assert_includes(@test_result_file.benchmark.profiles.first.unselected_group_ids, "xccdf_org.ssgproject.content_group_restrictions")
5751
end
5852

5953
test 'profile_selected_entity_ids' do
60-
all_selected_ids = @test_result_file2.benchmark.profiles.first.selected_rule_ids +
61-
@test_result_file2.benchmark.profiles.first.selected_group_ids
6254
assert_equal(248, @test_result_file2.benchmark.profiles.first.selected_entity_ids.length)
63-
assert_equal(all_selected_ids.sort, @test_result_file2.benchmark.profiles.first.selected_entity_ids.sort)
6455
end
6556
end
6657

0 commit comments

Comments
 (0)