spec/arachni/issue_spec.rb in arachni-1.0.5 vs spec/arachni/issue_spec.rb in arachni-1.0.6
- old
+ new
@@ -27,10 +27,28 @@
it 'recodes string data to UTF8' do
issue.name.should == "Check name \u2713"
end
+ describe '#recheck' do
+ it 'rechecks the issue' do
+ Arachni::Options.paths.checks = fixtures_path + '/taint_check/'
+ Arachni::Options.audit.elements :links, :forms, :cookies
+
+ issue = nil
+ Arachni::Framework.new do |f|
+ f.options.url = "#{web_server_url_for( :auditor )}/link"
+ f.checks.load :taint
+
+ f.run
+ issue = f.report.issues.first.variations.first
+ end
+
+ issue.recheck.should == issue
+ end
+ end
+
describe '#to_rpc_data' do
let(:issue) { issue_with_variations }
let(:data) { issue.to_rpc_data }
%w(name description platform_name platform_type references cwe
@@ -77,10 +95,16 @@
end
it "restores 'variation'" do
restored_issue.variation?.should == issue.variation?
end
+
+ it 'restores variation parent' do
+ restored_issue.variations.each do |v|
+ v.parent.should == restored_issue
+ end
+ end
end
[:page=, :referring_page=, :vector=].each do |m|
describe "##{m}" do
let(:obj) do
@@ -605,10 +629,14 @@
variation_data.each do |k|
root.send(k).should be_nil
end
root.variations.should be_nil
end
+
+ it 'has a #parent' do
+ issue.as_variation.parent.should == issue
+ end
end
describe '#to_solo!' do
it 'converts a variation to a solo issue in place, using a parent as a reference' do
original_solo = issue
@@ -642,9 +670,16 @@
variation = active_issue.as_variation
parent.vector.affected_input_name.should be_nil
variation.vector.affected_input_name.should be_true
variation.to_solo!( parent ).vector.affected_input_name.should be_true
+ end
+
+ it 'skips #parent' do
+ parent = issue.with_variations
+ variation = issue.as_variation
+
+ variation.to_solo!( parent ).parent.should be_nil
end
end
describe '#to_solo' do
it 'returns a solo issue using a parent as a reference' do