relevance-tarantula 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +70 -0
  3. data/Rakefile +79 -0
  4. data/init.rb +1 -0
  5. data/install.rb +1 -0
  6. data/laf/images/background.jpg +0 -0
  7. data/laf/images/relevance-os-logo.gif +0 -0
  8. data/laf/images/tab.png +0 -0
  9. data/laf/images/table-sort.gif +0 -0
  10. data/laf/images/tarantula-sprites.png +0 -0
  11. data/laf/javascripts/jquery-1.2.3.js +3408 -0
  12. data/laf/javascripts/jquery-ui-tabs.js +890 -0
  13. data/laf/javascripts/jquery.tablesorter.js +861 -0
  14. data/laf/javascripts/tarantula.js +10 -0
  15. data/laf/stylesheets/tarantula.css +638 -0
  16. data/laf/stylesheets/ui.tabs.css +113 -0
  17. data/lib/relevance/core_extensions/ellipsize.rb +34 -0
  18. data/lib/relevance/core_extensions/file.rb +9 -0
  19. data/lib/relevance/core_extensions/response.rb +9 -0
  20. data/lib/relevance/core_extensions/test_case.rb +12 -0
  21. data/lib/relevance/tarantula/attack.rb +15 -0
  22. data/lib/relevance/tarantula/attack_form_submission.rb +75 -0
  23. data/lib/relevance/tarantula/attack_handler.rb +37 -0
  24. data/lib/relevance/tarantula/crawler.rb +240 -0
  25. data/lib/relevance/tarantula/detail.html.erb +77 -0
  26. data/lib/relevance/tarantula/form.rb +21 -0
  27. data/lib/relevance/tarantula/form_submission.rb +70 -0
  28. data/lib/relevance/tarantula/html_document_handler.rb +36 -0
  29. data/lib/relevance/tarantula/html_report_helper.rb +56 -0
  30. data/lib/relevance/tarantula/html_reporter.rb +105 -0
  31. data/lib/relevance/tarantula/index.html.erb +48 -0
  32. data/lib/relevance/tarantula/invalid_html_handler.rb +18 -0
  33. data/lib/relevance/tarantula/io_reporter.rb +34 -0
  34. data/lib/relevance/tarantula/link.rb +56 -0
  35. data/lib/relevance/tarantula/log_grabber.rb +16 -0
  36. data/lib/relevance/tarantula/rails_integration_proxy.rb +70 -0
  37. data/lib/relevance/tarantula/recording.rb +12 -0
  38. data/lib/relevance/tarantula/response.rb +13 -0
  39. data/lib/relevance/tarantula/result.rb +66 -0
  40. data/lib/relevance/tarantula/test_report.html.erb +34 -0
  41. data/lib/relevance/tarantula/tidy_handler.rb +32 -0
  42. data/lib/relevance/tarantula/transform.rb +17 -0
  43. data/lib/relevance/tarantula.rb +63 -0
  44. data/manifest.txt +114 -0
  45. data/tarantula.gemspec +42 -0
  46. data/tasks/tarantula_tasks.rake +34 -0
  47. data/template/tarantula_test.rb +12 -0
  48. data/test/relevance/core_extensions/ellipsize_test.rb +19 -0
  49. data/test/relevance/core_extensions/file_test.rb +8 -0
  50. data/test/relevance/core_extensions/response_test.rb +29 -0
  51. data/test/relevance/core_extensions/test_case_test.rb +17 -0
  52. data/test/relevance/tarantula/attack_form_submission_test.rb +79 -0
  53. data/test/relevance/tarantula/attack_handler_test.rb +30 -0
  54. data/test/relevance/tarantula/crawler_test.rb +297 -0
  55. data/test/relevance/tarantula/form_submission_test.rb +71 -0
  56. data/test/relevance/tarantula/form_test.rb +50 -0
  57. data/test/relevance/tarantula/html_document_handler_test.rb +44 -0
  58. data/test/relevance/tarantula/html_report_helper_test.rb +48 -0
  59. data/test/relevance/tarantula/html_reporter_test.rb +82 -0
  60. data/test/relevance/tarantula/invalid_html_handler_test.rb +34 -0
  61. data/test/relevance/tarantula/io_reporter_test.rb +12 -0
  62. data/test/relevance/tarantula/link_test.rb +49 -0
  63. data/test/relevance/tarantula/log_grabber_test.rb +27 -0
  64. data/test/relevance/tarantula/rails_integration_proxy_test.rb +95 -0
  65. data/test/relevance/tarantula/result_test.rb +86 -0
  66. data/test/relevance/tarantula/tidy_handler_test.rb +59 -0
  67. data/test/relevance/tarantula/transform_test.rb +21 -0
  68. data/test/relevance/tarantula_test.rb +23 -0
  69. data/test/test_helper.rb +32 -0
  70. data/uninstall.rb +1 -0
  71. data/vendor/xss-shield/MIT-LICENSE +20 -0
  72. data/vendor/xss-shield/README +76 -0
  73. data/vendor/xss-shield/init.rb +16 -0
  74. data/vendor/xss-shield/lib/xss_shield/erb_hacks.rb +111 -0
  75. data/vendor/xss-shield/lib/xss_shield/haml_hacks.rb +42 -0
  76. data/vendor/xss-shield/lib/xss_shield/safe_string.rb +47 -0
  77. data/vendor/xss-shield/lib/xss_shield/secure_helpers.rb +40 -0
  78. data/vendor/xss-shield/lib/xss_shield.rb +6 -0
  79. data/vendor/xss-shield/test/test_actionview_integration.rb +40 -0
  80. data/vendor/xss-shield/test/test_erb.rb +44 -0
  81. data/vendor/xss-shield/test/test_haml.rb +43 -0
  82. data/vendor/xss-shield/test/test_helpers.rb +25 -0
  83. data/vendor/xss-shield/test/test_safe_string.rb +55 -0
  84. metadata +256 -0
@@ -0,0 +1,47 @@
1
+ class SafeString < String
2
+ def to_s
3
+ self
4
+ end
5
+ def to_s_xss_protected
6
+ self
7
+ end
8
+ end
9
+
10
+ class String
11
+ def mark_as_xss_protected
12
+ SafeString.new(self)
13
+ end
14
+ end
15
+
16
+ class NilClass
17
+ def mark_as_xss_protected
18
+ self
19
+ end
20
+ end
21
+
22
+ # ERB::Util.h and (include ERB::Util; h) are different methods
23
+ module ERB::Util
24
+ class <<self
25
+ def h_with_xss_protection(*args)
26
+ h_without_xss_protection(*args).mark_as_xss_protected
27
+ end
28
+ alias_method_chain :h, :xss_protection
29
+ end
30
+
31
+ def h_with_xss_protection(*args)
32
+ h_without_xss_protection(*args).mark_as_xss_protected
33
+ end
34
+ alias_method_chain :h, :xss_protection
35
+ end
36
+
37
+ class Object
38
+ def to_s_xss_protected
39
+ ERB::Util.h(to_s).mark_as_xss_protected
40
+ end
41
+ end
42
+
43
+ class Array
44
+ def join_xss_protected(sep="")
45
+ map(&:to_s_xss_protected).join(sep.to_s_xss_protected).mark_as_xss_protected
46
+ end
47
+ end
@@ -0,0 +1,40 @@
1
+ class Module
2
+ def mark_helpers_as_xss_protected(*ms)
3
+ ms.each do |m|
4
+ begin
5
+ instance_method("#{m}_with_xss_protection")
6
+ rescue NameError
7
+ define_method :"#{m}_with_xss_protection" do |*args|
8
+ send(:"#{m}_without_xss_protection", *args).mark_as_xss_protected
9
+ end
10
+ alias_method_chain m, :xss_protection
11
+ end
12
+ end
13
+ end
14
+ end
15
+
16
+ class ActionView::Base
17
+ mark_helpers_as_xss_protected :javascript_include_tag,
18
+ :stylesheet_link_tag,
19
+ :render,
20
+ :text_field_tag,
21
+ :submit_tag,
22
+ :radio_button,
23
+ :text_area,
24
+ :auto_discovery_link_tag,
25
+ :image_tag
26
+
27
+ def link_to_with_xss_protection(text, *args)
28
+ link_to_without_xss_protection(text.to_s_xss_protected, *args).mark_as_xss_protected
29
+ end
30
+ alias_method_chain :link_to, :xss_protection
31
+
32
+ def button_to_with_xss_protection(text, *args)
33
+ button_to_without_xss_protection(text.to_s_xss_protected, *args).mark_as_xss_protected
34
+ end
35
+ alias_method_chain :button_to, :xss_protection
36
+ end
37
+
38
+ module ActionView::Helpers::FormHelper
39
+ mark_helpers_as_xss_protected :text_field, :check_box
40
+ end
@@ -0,0 +1,6 @@
1
+ require 'xss_shield/safe_string'
2
+ # Tarantula doesn't use haml
3
+ # require 'xss_shield/haml_hacks'
4
+ # ERB hacks blow up Rails
5
+ # require 'xss_shield/erb_hacks'
6
+ require 'xss_shield/secure_helpers'
@@ -0,0 +1,40 @@
1
+ # Run from your Rails main directory
2
+ require 'test/test_helper'
3
+
4
+ class TestActionViewIntegration < Test::Unit::TestCase
5
+ def assert_renders(expected, input, extension)
6
+ base = ActionView::Base.new
7
+ actual = base.render_template(extension, input, "foo.#{extension}")
8
+ assert_equal expected, actual
9
+ end
10
+
11
+ def test_erb
12
+ assert_renders <<OUT, <<IN, :erb
13
+ A & B
14
+ A & B
15
+ OUT
16
+ <%= "A & B" %>
17
+ <%= "A & B".mark_as_xss_protected %>
18
+ IN
19
+ end
20
+
21
+ def test_rhtml
22
+ assert_renders <<OUT, <<IN, :rhtml
23
+ A &amp; B
24
+ A & B
25
+ OUT
26
+ <%= "A & B" %>
27
+ <%= "A & B".mark_as_xss_protected %>
28
+ IN
29
+ end
30
+
31
+ def test_haml
32
+ assert_renders <<OUT, <<IN, :haml
33
+ A &amp; B
34
+ A & B
35
+ OUT
36
+ = "A & B"
37
+ = "A & B".mark_as_xss_protected
38
+ IN
39
+ end
40
+ end
@@ -0,0 +1,44 @@
1
+ # Run from your Rails main directory
2
+ require 'test/test_helper'
3
+
4
+ class TestERB < Test::Unit::TestCase
5
+ def assert_renders_erb(expected, input, shield=true)
6
+ erb_class = shield ? XSSProtectedERB : ERB
7
+
8
+ actual = eval(erb_class.new(input).src)
9
+
10
+ assert_equal expected, actual
11
+ end
12
+
13
+ def test_erb_with_shield
14
+ assert_renders_erb <<OUT, <<IN, true
15
+ Foo &amp;amp; Bar
16
+ Foo &amp;amp; Bar
17
+ Foo &amp; Bar
18
+ Foo &amp; Bar
19
+ Foo &amp; Bar
20
+ OUT
21
+ <%= "Foo &amp; Bar" %>
22
+ <%= h("Foo &amp; Bar") %>
23
+ <%= "Foo &amp; Bar".mark_as_xss_protected %>
24
+ <%= h("Foo & Bar") %>
25
+ <%= "Foo & Bar" %>
26
+ IN
27
+ end
28
+
29
+ def test_erb_without_shield
30
+ assert_renders_erb <<OUT, <<IN, false
31
+ Foo &amp;amp; Bar
32
+ Foo &amp; Bar
33
+ Foo &amp; Bar
34
+ Foo &amp; Bar
35
+ Foo & Bar
36
+ OUT
37
+ <%= h("Foo &amp; Bar") %>
38
+ <%= "Foo &amp; Bar" %>
39
+ <%= "Foo &amp; Bar".mark_as_xss_protected %>
40
+ <%= h("Foo & Bar") %>
41
+ <%= "Foo & Bar" %>
42
+ IN
43
+ end
44
+ end
@@ -0,0 +1,43 @@
1
+ # Run from your Rails main directory
2
+ require 'test/test_helper'
3
+
4
+ class TestHaml < Test::Unit::TestCase
5
+ def setup
6
+ @base = ActionView::Base.new
7
+ end
8
+
9
+ def assert_haml_renders(expected, input)
10
+ actual = Haml::Engine.new(input).to_html(@base)
11
+ assert_equal expected, actual
12
+ end
13
+
14
+ def test_haml_engine
15
+ assert_haml_renders <<OUT, <<IN
16
+ A & B
17
+ C &amp; D
18
+ E &amp; F
19
+ G & H
20
+ I &amp; J
21
+ OUT
22
+ A & B
23
+ = "C & D"
24
+ = h("E & F")
25
+ = "G & H".mark_as_xss_protected
26
+ = "I & J".to_s_xss_protected
27
+ IN
28
+ end
29
+
30
+ def test_attribute_escaping_in_haml
31
+ @base.instance_eval {
32
+ @foo = "A < & > ' \" B"
33
+ }
34
+ assert_haml_renders <<OUT, <<IN
35
+ <div foo="A &lt; &amp; &gt; ' &quot; B" />
36
+ <div foo="A < & > ' " B" />
37
+ OUT
38
+ %div{:foo => @foo}/
39
+ %div{:foo => @foo.mark_as_xss_protected}/
40
+ IN
41
+ # Note that '/" explicitly marked as XSS-protected can break validity
42
+ end
43
+ end
@@ -0,0 +1,25 @@
1
+ # Run from your Rails main directory
2
+ require 'test/test_helper'
3
+
4
+ class TestHelpers < Test::Unit::TestCase
5
+ def setup
6
+ @base = ActionView::Base.new
7
+ end
8
+
9
+ def assert_haml_renders(expected, input)
10
+ actual = Haml::Engine.new(input).to_html(@base)
11
+ assert_equal expected, actual
12
+ end
13
+
14
+ def test_link_to
15
+ assert_haml_renders <<OUT, <<IN
16
+ <a href="/bar">Foo</a>
17
+ <a href="/bar">Foo &amp; Bar</a>
18
+ <a href="/bar">Foo & Bar</a>
19
+ OUT
20
+ = link_to "Foo", "/bar"
21
+ = link_to "Foo & Bar", "/bar"
22
+ = link_to "Foo & Bar".mark_as_xss_protected, "/bar"
23
+ IN
24
+ end
25
+ end
@@ -0,0 +1,55 @@
1
+ # Run from your Rails main directory
2
+ require 'test/test_helper'
3
+
4
+ class TestSafeString < Test::Unit::TestCase
5
+ def test_safe_string
6
+ assert_equal "foo", "foo".to_s_xss_protected
7
+ assert_equal "foo &amp; bar", "foo & bar".to_s_xss_protected
8
+ assert_equal "foo &amp; bar", "foo & bar".to_s_xss_protected
9
+ assert_equal "foo &amp;amp; bar", "foo &amp; bar".to_s_xss_protected
10
+ assert_equal "foo &amp; bar", "foo & bar".to_s_xss_protected.to_s_xss_protected
11
+ assert_equal "foo &amp; bar", h("foo & bar").to_s_xss_protected
12
+ assert_equal "foo &amp;amp; bar", h(h("foo & bar"))
13
+
14
+ assert_not_equal "foo".mark_as_xss_protected.object_id, "foo".mark_as_xss_protected.object_id
15
+ x = "foo & bar".mark_as_xss_protected
16
+ assert_equal x.mark_as_xss_protected, x
17
+ # Not sure if this makes sense
18
+ assert_not_equal x.mark_as_xss_protected.object_id, x.object_id
19
+
20
+ assert_equal x.to_s, x
21
+ assert_equal x.to_s.object_id, x.object_id
22
+ end
23
+
24
+ def test_nonstring_objects
25
+ assert_equal "15", 15.to_s_xss_protected
26
+ assert_equal SafeString, 15.to_s_xss_protected.class
27
+ end
28
+
29
+ def test_nil
30
+ assert_equal "", nil.to_s_xss_protected
31
+ assert_equal SafeString, nil.to_s_xss_protected.class
32
+ assert_equal nil, nil.mark_as_xss_protected
33
+ end
34
+
35
+ def test_join
36
+ assert_equal "", [].join_xss_protected
37
+ assert_equal "", [].join_xss_protected(",")
38
+ assert_equal "a", ["a"].join_xss_protected
39
+ assert_equal "a", ["a"].join_xss_protected(",")
40
+ assert_equal "ab", ["a", "b"].join_xss_protected
41
+ assert_equal "a,b", ["a", "b"].join_xss_protected(",")
42
+
43
+ assert_equal "a&amp;b", ["a", "b"].join_xss_protected("&")
44
+ assert_equal "a&amp;amp;b", ["a", "b"].join_xss_protected("&amp;")
45
+ assert_equal "a&amp;b", ["a", "b"].join_xss_protected("&amp;".mark_as_xss_protected)
46
+
47
+ assert_equal "&lt;&amp;&gt;", ["<", ">"].join_xss_protected("&")
48
+ assert_equal "&lt;&amp;amp;&gt;", ["<", ">"].join_xss_protected("&amp;")
49
+ assert_equal "&lt;&amp;&gt;", ["<", ">"].join_xss_protected("&amp;".mark_as_xss_protected)
50
+
51
+ assert_equal "< &amp; &gt;", ["<".mark_as_xss_protected, ">"].join_xss_protected(" & ")
52
+ assert_equal "&lt; &amp; >", ["<", ">".mark_as_xss_protected].join_xss_protected(" & ")
53
+ assert_equal "&lt; & &gt;", ["<", ">"].join_xss_protected(" & ".mark_as_xss_protected)
54
+ end
55
+ end
metadata ADDED
@@ -0,0 +1,256 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: relevance-tarantula
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Relevance
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-09-05 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: htmlentities
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0"
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: hpricot
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: "0"
32
+ version:
33
+ - !ruby/object:Gem::Dependency
34
+ name: facets
35
+ version_requirement:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 2.4.3
41
+ version:
42
+ - !ruby/object:Gem::Dependency
43
+ name: echoe
44
+ version_requirement:
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: "0"
50
+ version:
51
+ description: A big hairy fuzzy spider that crawls your site, wreaking havoc
52
+ email: opensource@thinkrelevance.com
53
+ executables: []
54
+
55
+ extensions: []
56
+
57
+ extra_rdoc_files:
58
+ - MIT-LICENSE
59
+ - README.rdoc
60
+ - lib/relevance/core_extensions/ellipsize.rb
61
+ - lib/relevance/core_extensions/file.rb
62
+ - lib/relevance/core_extensions/response.rb
63
+ - lib/relevance/core_extensions/test_case.rb
64
+ - lib/relevance/tarantula/attack.rb
65
+ - lib/relevance/tarantula/attack_form_submission.rb
66
+ - lib/relevance/tarantula/attack_handler.rb
67
+ - lib/relevance/tarantula/crawler.rb
68
+ - lib/relevance/tarantula/detail.html.erb
69
+ - lib/relevance/tarantula/form.rb
70
+ - lib/relevance/tarantula/form_submission.rb
71
+ - lib/relevance/tarantula/html_document_handler.rb
72
+ - lib/relevance/tarantula/html_report_helper.rb
73
+ - lib/relevance/tarantula/html_reporter.rb
74
+ - lib/relevance/tarantula/index.html.erb
75
+ - lib/relevance/tarantula/invalid_html_handler.rb
76
+ - lib/relevance/tarantula/io_reporter.rb
77
+ - lib/relevance/tarantula/link.rb
78
+ - lib/relevance/tarantula/log_grabber.rb
79
+ - lib/relevance/tarantula/rails_integration_proxy.rb
80
+ - lib/relevance/tarantula/recording.rb
81
+ - lib/relevance/tarantula/response.rb
82
+ - lib/relevance/tarantula/result.rb
83
+ - lib/relevance/tarantula/test_report.html.erb
84
+ - lib/relevance/tarantula/tidy_handler.rb
85
+ - lib/relevance/tarantula/transform.rb
86
+ - lib/relevance/tarantula.rb
87
+ - vendor/xss-shield/MIT-LICENSE
88
+ files:
89
+ - MIT-LICENSE
90
+ - README.rdoc
91
+ - Rakefile
92
+ - init.rb
93
+ - install.rb
94
+ - laf/images/background.jpg
95
+ - laf/images/relevance-os-logo.gif
96
+ - laf/images/tab.png
97
+ - laf/images/table-sort.gif
98
+ - laf/images/tarantula-sprites.png
99
+ - laf/javascripts/jquery-1.2.3.js
100
+ - laf/javascripts/jquery-ui-tabs.js
101
+ - laf/javascripts/jquery.tablesorter.js
102
+ - laf/javascripts/tarantula.js
103
+ - laf/stylesheets/tarantula.css
104
+ - laf/stylesheets/ui.tabs.css
105
+ - lib/relevance/core_extensions/ellipsize.rb
106
+ - lib/relevance/core_extensions/file.rb
107
+ - lib/relevance/core_extensions/response.rb
108
+ - lib/relevance/core_extensions/test_case.rb
109
+ - lib/relevance/tarantula/attack.rb
110
+ - lib/relevance/tarantula/attack_form_submission.rb
111
+ - lib/relevance/tarantula/attack_handler.rb
112
+ - lib/relevance/tarantula/crawler.rb
113
+ - lib/relevance/tarantula/detail.html.erb
114
+ - lib/relevance/tarantula/form.rb
115
+ - lib/relevance/tarantula/form_submission.rb
116
+ - lib/relevance/tarantula/html_document_handler.rb
117
+ - lib/relevance/tarantula/html_report_helper.rb
118
+ - lib/relevance/tarantula/html_reporter.rb
119
+ - lib/relevance/tarantula/index.html.erb
120
+ - lib/relevance/tarantula/invalid_html_handler.rb
121
+ - lib/relevance/tarantula/io_reporter.rb
122
+ - lib/relevance/tarantula/link.rb
123
+ - lib/relevance/tarantula/log_grabber.rb
124
+ - lib/relevance/tarantula/rails_integration_proxy.rb
125
+ - lib/relevance/tarantula/recording.rb
126
+ - lib/relevance/tarantula/response.rb
127
+ - lib/relevance/tarantula/result.rb
128
+ - lib/relevance/tarantula/test_report.html.erb
129
+ - lib/relevance/tarantula/tidy_handler.rb
130
+ - lib/relevance/tarantula/transform.rb
131
+ - lib/relevance/tarantula.rb
132
+ - tasks/tarantula_tasks.rake
133
+ - template/tarantula_test.rb
134
+ - test/relevance/core_extensions/ellipsize_test.rb
135
+ - test/relevance/core_extensions/file_test.rb
136
+ - test/relevance/core_extensions/response_test.rb
137
+ - test/relevance/core_extensions/test_case_test.rb
138
+ - test/relevance/tarantula/attack_form_submission_test.rb
139
+ - test/relevance/tarantula/attack_handler_test.rb
140
+ - test/relevance/tarantula/crawler_test.rb
141
+ - test/relevance/tarantula/form_submission_test.rb
142
+ - test/relevance/tarantula/form_test.rb
143
+ - test/relevance/tarantula/html_document_handler_test.rb
144
+ - test/relevance/tarantula/html_report_helper_test.rb
145
+ - test/relevance/tarantula/html_reporter_test.rb
146
+ - test/relevance/tarantula/invalid_html_handler_test.rb
147
+ - test/relevance/tarantula/io_reporter_test.rb
148
+ - test/relevance/tarantula/link_test.rb
149
+ - test/relevance/tarantula/log_grabber_test.rb
150
+ - test/relevance/tarantula/rails_integration_proxy_test.rb
151
+ - test/relevance/tarantula/result_test.rb
152
+ - test/relevance/tarantula/tidy_handler_test.rb
153
+ - test/relevance/tarantula/transform_test.rb
154
+ - test/relevance/tarantula_test.rb
155
+ - test/test_helper.rb
156
+ - tmp/test_output/images/background.jpg
157
+ - tmp/test_output/images/relevance-os-logo.gif
158
+ - tmp/test_output/images/tab.png
159
+ - tmp/test_output/images/table-sort.gif
160
+ - tmp/test_output/images/tarantula-sprites.png
161
+ - tmp/test_output/index.html
162
+ - tmp/test_output/javascripts/jquery-1.2.3.js
163
+ - tmp/test_output/javascripts/jquery-ui-tabs.js
164
+ - tmp/test_output/javascripts/jquery.tablesorter.js
165
+ - tmp/test_output/javascripts/tarantula.js
166
+ - tmp/test_output/stylesheets/tarantula.css
167
+ - tmp/test_output/stylesheets/ui.tabs.css
168
+ - tmp/test_output/test_user_pages/1.html
169
+ - tmp/test_output/test_user_pages/10.html
170
+ - tmp/test_output/test_user_pages/11.html
171
+ - tmp/test_output/test_user_pages/12.html
172
+ - tmp/test_output/test_user_pages/13.html
173
+ - tmp/test_output/test_user_pages/14.html
174
+ - tmp/test_output/test_user_pages/15.html
175
+ - tmp/test_output/test_user_pages/16.html
176
+ - tmp/test_output/test_user_pages/17.html
177
+ - tmp/test_output/test_user_pages/18.html
178
+ - tmp/test_output/test_user_pages/19.html
179
+ - tmp/test_output/test_user_pages/2.html
180
+ - tmp/test_output/test_user_pages/20.html
181
+ - tmp/test_output/test_user_pages/3.html
182
+ - tmp/test_output/test_user_pages/4.html
183
+ - tmp/test_output/test_user_pages/5.html
184
+ - tmp/test_output/test_user_pages/6.html
185
+ - tmp/test_output/test_user_pages/7.html
186
+ - tmp/test_output/test_user_pages/8.html
187
+ - tmp/test_output/test_user_pages/9.html
188
+ - uninstall.rb
189
+ - vendor/xss-shield/MIT-LICENSE
190
+ - vendor/xss-shield/README
191
+ - vendor/xss-shield/init.rb
192
+ - vendor/xss-shield/lib/xss_shield/erb_hacks.rb
193
+ - vendor/xss-shield/lib/xss_shield/haml_hacks.rb
194
+ - vendor/xss-shield/lib/xss_shield/safe_string.rb
195
+ - vendor/xss-shield/lib/xss_shield/secure_helpers.rb
196
+ - vendor/xss-shield/lib/xss_shield.rb
197
+ - vendor/xss-shield/test/test_actionview_integration.rb
198
+ - vendor/xss-shield/test/test_erb.rb
199
+ - vendor/xss-shield/test/test_haml.rb
200
+ - vendor/xss-shield/test/test_helpers.rb
201
+ - vendor/xss-shield/test/test_safe_string.rb
202
+ - manifest.txt
203
+ - tarantula.gemspec
204
+ has_rdoc: true
205
+ homepage: http://opensource.thinkrelevance.com/wiki/tarantula
206
+ post_install_message:
207
+ rdoc_options:
208
+ - --line-numbers
209
+ - --inline-source
210
+ - --title
211
+ - Tarantula
212
+ - --main
213
+ - README.rdoc
214
+ require_paths:
215
+ - lib
216
+ required_ruby_version: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - ">="
219
+ - !ruby/object:Gem::Version
220
+ version: "0"
221
+ version:
222
+ required_rubygems_version: !ruby/object:Gem::Requirement
223
+ requirements:
224
+ - - "="
225
+ - !ruby/object:Gem::Version
226
+ version: "1.2"
227
+ version:
228
+ requirements: []
229
+
230
+ rubyforge_project: thinkrelevance
231
+ rubygems_version: 1.2.0
232
+ signing_key:
233
+ specification_version: 2
234
+ summary: A big hairy fuzzy spider that crawls your site, wreaking havoc
235
+ test_files:
236
+ - test/relevance/core_extensions/ellipsize_test.rb
237
+ - test/relevance/core_extensions/file_test.rb
238
+ - test/relevance/core_extensions/response_test.rb
239
+ - test/relevance/core_extensions/test_case_test.rb
240
+ - test/relevance/tarantula/attack_form_submission_test.rb
241
+ - test/relevance/tarantula/attack_handler_test.rb
242
+ - test/relevance/tarantula/crawler_test.rb
243
+ - test/relevance/tarantula/form_submission_test.rb
244
+ - test/relevance/tarantula/form_test.rb
245
+ - test/relevance/tarantula/html_document_handler_test.rb
246
+ - test/relevance/tarantula/html_report_helper_test.rb
247
+ - test/relevance/tarantula/html_reporter_test.rb
248
+ - test/relevance/tarantula/invalid_html_handler_test.rb
249
+ - test/relevance/tarantula/io_reporter_test.rb
250
+ - test/relevance/tarantula/link_test.rb
251
+ - test/relevance/tarantula/log_grabber_test.rb
252
+ - test/relevance/tarantula/rails_integration_proxy_test.rb
253
+ - test/relevance/tarantula/result_test.rb
254
+ - test/relevance/tarantula/tidy_handler_test.rb
255
+ - test/relevance/tarantula/transform_test.rb
256
+ - test/relevance/tarantula_test.rb