openscap 0.4.9 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -18
  3. data/Rakefile +2 -2
  4. data/lib/openscap/all.rb +1 -1
  5. data/lib/openscap/ds/arf.rb +3 -3
  6. data/lib/openscap/ds/sds.rb +8 -2
  7. data/lib/openscap/openscap.rb +9 -0
  8. data/lib/openscap/source.rb +10 -4
  9. data/lib/openscap/text.rb +34 -5
  10. data/lib/openscap/version.rb +1 -1
  11. data/lib/openscap/xccdf/benchmark.rb +67 -15
  12. data/lib/openscap/xccdf/fix.rb +7 -14
  13. data/lib/openscap/xccdf/fixtext.rb +19 -0
  14. data/lib/openscap/xccdf/group.rb +27 -1
  15. data/lib/openscap/xccdf/ident.rb +4 -10
  16. data/lib/openscap/xccdf/item.rb +37 -65
  17. data/lib/openscap/xccdf/item_common.rb +40 -0
  18. data/lib/openscap/xccdf/policy.rb +12 -3
  19. data/lib/openscap/xccdf/policy_model.rb +16 -15
  20. data/lib/openscap/xccdf/profile.rb +10 -10
  21. data/lib/openscap/xccdf/reference.rb +5 -21
  22. data/lib/openscap/xccdf/rule.rb +40 -20
  23. data/lib/openscap/xccdf/ruleresult.rb +5 -7
  24. data/lib/openscap/xccdf/session.rb +28 -30
  25. data/lib/openscap/xccdf/status.rb +34 -0
  26. data/lib/openscap/xccdf/tailoring.rb +7 -16
  27. data/lib/openscap/xccdf/testresult.rb +18 -28
  28. data/lib/openscap/xccdf/value.rb +1 -2
  29. data/lib/openscap/xccdf.rb +1 -1
  30. metadata +15 -48
  31. data/test/common/testcase.rb +0 -38
  32. data/test/data/arf.xml +0 -275156
  33. data/test/data/invalid.xml +0 -20
  34. data/test/data/sds-complex.xml +0 -132
  35. data/test/data/tailoring.xml +0 -31
  36. data/test/data/testresult.xml +0 -225
  37. data/test/data/xccdf.xml +0 -3046
  38. data/test/ds/arf_test.rb +0 -96
  39. data/test/ds/sds_test.rb +0 -71
  40. data/test/integration/arf_waiver_test.rb +0 -91
  41. data/test/openscap_test.rb +0 -21
  42. data/test/source_test.rb +0 -78
  43. data/test/text_test.rb +0 -19
  44. data/test/xccdf/arf_test.rb +0 -44
  45. data/test/xccdf/benchmark_test.rb +0 -115
  46. data/test/xccdf/policy_test.rb +0 -20
  47. data/test/xccdf/profile_test.rb +0 -20
  48. data/test/xccdf/session_ds_test.rb +0 -116
  49. data/test/xccdf/session_test.rb +0 -33
  50. data/test/xccdf/tailoring_test.rb +0 -30
  51. data/test/xccdf/testresult_test.rb +0 -99
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'openscap'
4
- require 'common/testcase'
5
-
6
- class TestSession < OpenSCAP::TestCase
7
- def test_session_new_bad
8
- msg = nil
9
- begin
10
- OpenSCAP::Xccdf::Session.new('')
11
- assert false
12
- rescue OpenSCAP::OpenSCAPError => e
13
- msg = e.to_s
14
- end
15
- assert msg.start_with?("Unable to open file: ''"), 'Message was: ' + msg
16
- end
17
-
18
- def test_session_new_nil
19
- msg = nil
20
- begin
21
- OpenSCAP::Xccdf::Session.new(nil)
22
- assert false
23
- rescue OpenSCAP::OpenSCAPError => e
24
- msg = e.to_s
25
- end
26
- assert msg.start_with?('No filename specified!'), 'Message was: ' + msg
27
- end
28
-
29
- def test_sds_false
30
- @s = OpenSCAP::Xccdf::Session.new('../data/xccdf.xml')
31
- refute @s.sds?
32
- end
33
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'openscap'
4
- require 'openscap/source'
5
- require 'openscap/xccdf/tailoring'
6
- require 'common/testcase'
7
-
8
- class TailoringTest < OpenSCAP::TestCase
9
- def test_new_from_file
10
- tailoring = tailoring_from_file
11
- tailoring.destroy
12
- refute tailoring.raw
13
- end
14
-
15
- def test_profiles
16
- profiles = tailoring_from_file.profiles
17
- assert_equal 1, profiles.length
18
- assert profiles.values.first.is_a?(OpenSCAP::Xccdf::Profile)
19
- end
20
-
21
- private
22
-
23
- def tailoring_from_file
24
- source = OpenSCAP::Source.new '../data/tailoring.xml'
25
- tailoring = OpenSCAP::Xccdf::Tailoring.new source, nil
26
- source.destroy
27
- assert tailoring
28
- tailoring
29
- end
30
- end
@@ -1,99 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'openscap'
4
- require 'openscap/source'
5
- require 'openscap/xccdf/benchmark'
6
- require 'openscap/xccdf/testresult'
7
- require 'common/testcase'
8
-
9
- class TestTestResult < OpenSCAP::TestCase
10
- def test_testresult_new_bad
11
- source = OpenSCAP::Source.new('../data/xccdf.xml')
12
- assert !source.nil?
13
- msg = nil
14
- begin
15
- OpenSCAP::Xccdf::TestResult.new(source)
16
- assert false
17
- rescue OpenSCAP::OpenSCAPError => e
18
- msg = e.to_s
19
- end
20
- assert msg.start_with?("Expected 'TestResult' element while found 'Benchmark'."),
21
- 'Message was: ' + msg
22
- end
23
-
24
- def test_result_create_and_query_properties
25
- tr = new_tr
26
- assert tr.id == 'xccdf_org.open-scap_testresult_xccdf_org.ssgproject.content_profile_common',
27
- "TestResult.id was '#{tr.id}"
28
- assert tr.profile == 'xccdf_org.ssgproject.content_profile_common',
29
- "TestResult.profile was '#{tr.profile}'"
30
- tr.destroy
31
- end
32
-
33
- def test_result_create_and_query_rr
34
- tr = new_tr
35
- assert tr.rr.size == 28
36
- assert tr.rr.key?('xccdf_org.ssgproject.content_rule_disable_prelink')
37
- assert tr.rr.key?('xccdf_org.ssgproject.content_rule_no_direct_root_logins')
38
- assert tr.rr['xccdf_org.ssgproject.content_rule_disable_prelink'].result == 'fail'
39
- assert tr.rr['xccdf_org.ssgproject.content_rule_no_direct_root_logins'].result == 'notchecked'
40
- tr.destroy
41
- end
42
-
43
- def test_override
44
- tr = new_tr
45
- rr = tr.rr['xccdf_org.ssgproject.content_rule_disable_prelink']
46
- assert rr.result == 'fail'
47
- rr.override!(:new_result => :pass,
48
- :time => 'yesterday',
49
- :authority => 'John Hacker',
50
- :raw_text => 'We are testing prelink on this machine')
51
- assert rr.result == 'pass'
52
- tr.destroy
53
- end
54
-
55
- def test_score
56
- tr = new_tr
57
- assert_default_score tr.score, 34, 35
58
- tr.destroy
59
- end
60
-
61
- def test_waive_and_score
62
- tr = new_tr
63
- benchmark = benchmark_for_tr
64
-
65
- assert_default_score tr.score, 34, 35
66
- assert_default_score tr.score!(benchmark), 34, 35
67
-
68
- rr = tr.rr['xccdf_org.ssgproject.content_rule_disable_prelink']
69
- assert rr.result == 'fail'
70
- rr.override!(:new_result => :pass,
71
- :time => 'yesterday',
72
- :authority => 'John Hacker',
73
- :raw_text => 'We are testing prelink on this machine')
74
- assert rr.result == 'pass'
75
-
76
- assert_default_score tr.score, 34, 35
77
- assert_default_score tr.score!(benchmark), 47, 48
78
-
79
- benchmark.destroy
80
- tr.destroy
81
- end
82
-
83
- private
84
-
85
- def benchmark_for_tr
86
- source = OpenSCAP::Source.new('../data/xccdf.xml')
87
- benchmark = OpenSCAP::Xccdf::Benchmark.new source
88
- source.destroy
89
- benchmark
90
- end
91
-
92
- def new_tr
93
- source = OpenSCAP::Source.new('../data/testresult.xml')
94
- assert !source.nil?
95
- tr = OpenSCAP::Xccdf::TestResult.new(source)
96
- source.destroy
97
- tr
98
- end
99
- end