loofah 2.3.1 → 2.19.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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +193 -40
  3. data/README.md +13 -12
  4. data/lib/loofah/elements.rb +79 -75
  5. data/lib/loofah/helpers.rb +5 -4
  6. data/lib/loofah/html/document.rb +1 -0
  7. data/lib/loofah/html/document_fragment.rb +4 -2
  8. data/lib/loofah/html5/libxml2_workarounds.rb +8 -7
  9. data/lib/loofah/html5/safelist.rb +273 -27
  10. data/lib/loofah/html5/scrub.rb +147 -52
  11. data/lib/loofah/instance_methods.rb +14 -8
  12. data/lib/loofah/metahelpers.rb +2 -1
  13. data/lib/loofah/scrubber.rb +12 -7
  14. data/lib/loofah/scrubbers.rb +20 -18
  15. data/lib/loofah/version.rb +5 -0
  16. data/lib/loofah/xml/document.rb +1 -0
  17. data/lib/loofah/xml/document_fragment.rb +2 -1
  18. data/lib/loofah.rb +33 -16
  19. metadata +45 -125
  20. data/.gemtest +0 -0
  21. data/Gemfile +0 -22
  22. data/Manifest.txt +0 -41
  23. data/Rakefile +0 -81
  24. data/benchmark/benchmark.rb +0 -149
  25. data/benchmark/fragment.html +0 -96
  26. data/benchmark/helper.rb +0 -73
  27. data/benchmark/www.slashdot.com.html +0 -2560
  28. data/test/assets/msword.html +0 -63
  29. data/test/assets/testdata_sanitizer_tests1.dat +0 -502
  30. data/test/helper.rb +0 -18
  31. data/test/html5/test_sanitizer.rb +0 -401
  32. data/test/html5/test_scrub.rb +0 -10
  33. data/test/integration/test_ad_hoc.rb +0 -220
  34. data/test/integration/test_helpers.rb +0 -43
  35. data/test/integration/test_html.rb +0 -72
  36. data/test/integration/test_scrubbers.rb +0 -400
  37. data/test/integration/test_xml.rb +0 -55
  38. data/test/unit/test_api.rb +0 -142
  39. data/test/unit/test_encoding.rb +0 -20
  40. data/test/unit/test_helpers.rb +0 -62
  41. data/test/unit/test_scrubber.rb +0 -229
  42. data/test/unit/test_scrubbers.rb +0 -14
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: loofah
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.1
4
+ version: 2.19.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Dalessio
@@ -9,22 +9,8 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-10-22 00:00:00.000000000 Z
12
+ date: 2022-12-12 00:00:00.000000000 Z
13
13
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: nokogiri
16
- requirement: !ruby/object:Gem::Requirement
17
- requirements:
18
- - - ">="
19
- - !ruby/object:Gem::Version
20
- version: 1.5.9
21
- type: :runtime
22
- prerelease: false
23
- version_requirements: !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- version: 1.5.9
28
14
  - !ruby/object:Gem::Dependency
29
15
  name: crass
30
16
  requirement: !ruby/object:Gem::Requirement
@@ -40,165 +26,123 @@ dependencies:
40
26
  - !ruby/object:Gem::Version
41
27
  version: 1.0.2
42
28
  - !ruby/object:Gem::Dependency
43
- name: rake
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "~>"
47
- - !ruby/object:Gem::Version
48
- version: '12.3'
49
- type: :development
50
- prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - "~>"
54
- - !ruby/object:Gem::Version
55
- version: '12.3'
56
- - !ruby/object:Gem::Dependency
57
- name: minitest
29
+ name: nokogiri
58
30
  requirement: !ruby/object:Gem::Requirement
59
31
  requirements:
60
- - - "~>"
32
+ - - ">="
61
33
  - !ruby/object:Gem::Version
62
- version: '2.2'
63
- type: :development
34
+ version: 1.5.9
35
+ type: :runtime
64
36
  prerelease: false
65
37
  version_requirements: !ruby/object:Gem::Requirement
66
38
  requirements:
67
- - - "~>"
39
+ - - ">="
68
40
  - !ruby/object:Gem::Version
69
- version: '2.2'
41
+ version: 1.5.9
70
42
  - !ruby/object:Gem::Dependency
71
- name: rr
43
+ name: hoe-markdown
72
44
  requirement: !ruby/object:Gem::Requirement
73
45
  requirements:
74
46
  - - "~>"
75
47
  - !ruby/object:Gem::Version
76
- version: 1.2.0
48
+ version: '1.3'
77
49
  type: :development
78
50
  prerelease: false
79
51
  version_requirements: !ruby/object:Gem::Requirement
80
52
  requirements:
81
53
  - - "~>"
82
54
  - !ruby/object:Gem::Version
83
- version: 1.2.0
55
+ version: '1.3'
84
56
  - !ruby/object:Gem::Dependency
85
57
  name: json
86
58
  requirement: !ruby/object:Gem::Requirement
87
59
  requirements:
88
60
  - - "~>"
89
61
  - !ruby/object:Gem::Version
90
- version: 2.2.0
62
+ version: '2.2'
91
63
  type: :development
92
64
  prerelease: false
93
65
  version_requirements: !ruby/object:Gem::Requirement
94
66
  requirements:
95
67
  - - "~>"
96
68
  - !ruby/object:Gem::Version
97
- version: 2.2.0
69
+ version: '2.2'
98
70
  - !ruby/object:Gem::Dependency
99
- name: hoe-gemspec
71
+ name: minitest
100
72
  requirement: !ruby/object:Gem::Requirement
101
73
  requirements:
102
74
  - - "~>"
103
75
  - !ruby/object:Gem::Version
104
- version: '1.0'
76
+ version: '5.14'
105
77
  type: :development
106
78
  prerelease: false
107
79
  version_requirements: !ruby/object:Gem::Requirement
108
80
  requirements:
109
81
  - - "~>"
110
82
  - !ruby/object:Gem::Version
111
- version: '1.0'
83
+ version: '5.14'
112
84
  - !ruby/object:Gem::Dependency
113
- name: hoe-debugging
85
+ name: rake
114
86
  requirement: !ruby/object:Gem::Requirement
115
87
  requirements:
116
88
  - - "~>"
117
89
  - !ruby/object:Gem::Version
118
- version: '2.0'
90
+ version: '13.0'
119
91
  type: :development
120
92
  prerelease: false
121
93
  version_requirements: !ruby/object:Gem::Requirement
122
94
  requirements:
123
95
  - - "~>"
124
96
  - !ruby/object:Gem::Version
125
- version: '2.0'
97
+ version: '13.0'
126
98
  - !ruby/object:Gem::Dependency
127
- name: hoe-bundler
99
+ name: rdoc
128
100
  requirement: !ruby/object:Gem::Requirement
129
101
  requirements:
130
- - - "~>"
131
- - !ruby/object:Gem::Version
132
- version: '1.5'
133
- type: :development
134
- prerelease: false
135
- version_requirements: !ruby/object:Gem::Requirement
136
- requirements:
137
- - - "~>"
102
+ - - ">="
138
103
  - !ruby/object:Gem::Version
139
- version: '1.5'
140
- - !ruby/object:Gem::Dependency
141
- name: hoe-git
142
- requirement: !ruby/object:Gem::Requirement
143
- requirements:
144
- - - "~>"
104
+ version: '4.0'
105
+ - - "<"
145
106
  - !ruby/object:Gem::Version
146
- version: '1.6'
107
+ version: '7'
147
108
  type: :development
148
109
  prerelease: false
149
110
  version_requirements: !ruby/object:Gem::Requirement
150
- requirements:
151
- - - "~>"
152
- - !ruby/object:Gem::Version
153
- version: '1.6'
154
- - !ruby/object:Gem::Dependency
155
- name: concourse
156
- requirement: !ruby/object:Gem::Requirement
157
111
  requirements:
158
112
  - - ">="
159
113
  - !ruby/object:Gem::Version
160
- version: 0.26.0
161
- type: :development
162
- prerelease: false
163
- version_requirements: !ruby/object:Gem::Requirement
164
- requirements:
165
- - - ">="
114
+ version: '4.0'
115
+ - - "<"
166
116
  - !ruby/object:Gem::Version
167
- version: 0.26.0
117
+ version: '7'
168
118
  - !ruby/object:Gem::Dependency
169
- name: rdoc
119
+ name: rr
170
120
  requirement: !ruby/object:Gem::Requirement
171
121
  requirements:
172
- - - ">="
173
- - !ruby/object:Gem::Version
174
- version: '4.0'
175
- - - "<"
122
+ - - "~>"
176
123
  - !ruby/object:Gem::Version
177
- version: '7'
124
+ version: 1.2.0
178
125
  type: :development
179
126
  prerelease: false
180
127
  version_requirements: !ruby/object:Gem::Requirement
181
128
  requirements:
182
- - - ">="
183
- - !ruby/object:Gem::Version
184
- version: '4.0'
185
- - - "<"
129
+ - - "~>"
186
130
  - !ruby/object:Gem::Version
187
- version: '7'
131
+ version: 1.2.0
188
132
  - !ruby/object:Gem::Dependency
189
- name: hoe
133
+ name: rubocop
190
134
  requirement: !ruby/object:Gem::Requirement
191
135
  requirements:
192
136
  - - "~>"
193
137
  - !ruby/object:Gem::Version
194
- version: '3.18'
138
+ version: '1.1'
195
139
  type: :development
196
140
  prerelease: false
197
141
  version_requirements: !ruby/object:Gem::Requirement
198
142
  requirements:
199
143
  - - "~>"
200
144
  - !ruby/object:Gem::Version
201
- version: '3.18'
145
+ version: '1.1'
202
146
  description: |-
203
147
  Loofah is a general library for manipulating and transforming HTML/XML documents and fragments, built on top of Nokogiri.
204
148
 
@@ -210,25 +154,12 @@ email:
210
154
  - bryan@brynary.com
211
155
  executables: []
212
156
  extensions: []
213
- extra_rdoc_files:
214
- - CHANGELOG.md
215
- - MIT-LICENSE.txt
216
- - Manifest.txt
217
- - README.md
218
- - SECURITY.md
157
+ extra_rdoc_files: []
219
158
  files:
220
- - ".gemtest"
221
159
  - CHANGELOG.md
222
- - Gemfile
223
160
  - MIT-LICENSE.txt
224
- - Manifest.txt
225
161
  - README.md
226
- - Rakefile
227
162
  - SECURITY.md
228
- - benchmark/benchmark.rb
229
- - benchmark/fragment.html
230
- - benchmark/helper.rb
231
- - benchmark/www.slashdot.com.html
232
163
  - lib/loofah.rb
233
164
  - lib/loofah/elements.rb
234
165
  - lib/loofah/helpers.rb
@@ -241,31 +172,20 @@ files:
241
172
  - lib/loofah/metahelpers.rb
242
173
  - lib/loofah/scrubber.rb
243
174
  - lib/loofah/scrubbers.rb
175
+ - lib/loofah/version.rb
244
176
  - lib/loofah/xml/document.rb
245
177
  - lib/loofah/xml/document_fragment.rb
246
- - test/assets/msword.html
247
- - test/assets/testdata_sanitizer_tests1.dat
248
- - test/helper.rb
249
- - test/html5/test_sanitizer.rb
250
- - test/html5/test_scrub.rb
251
- - test/integration/test_ad_hoc.rb
252
- - test/integration/test_helpers.rb
253
- - test/integration/test_html.rb
254
- - test/integration/test_scrubbers.rb
255
- - test/integration/test_xml.rb
256
- - test/unit/test_api.rb
257
- - test/unit/test_encoding.rb
258
- - test/unit/test_helpers.rb
259
- - test/unit/test_scrubber.rb
260
- - test/unit/test_scrubbers.rb
261
178
  homepage: https://github.com/flavorjones/loofah
262
179
  licenses:
263
180
  - MIT
264
- metadata: {}
181
+ metadata:
182
+ homepage_uri: https://github.com/flavorjones/loofah
183
+ source_code_uri: https://github.com/flavorjones/loofah
184
+ bug_tracker_uri: https://github.com/flavorjones/loofah/issues
185
+ changelog_uri: https://github.com/flavorjones/loofah/blob/main/CHANGELOG.md
186
+ documentation_uri: https://www.rubydoc.info/gems/loofah/
265
187
  post_install_message:
266
- rdoc_options:
267
- - "--main"
268
- - README.md
188
+ rdoc_options: []
269
189
  require_paths:
270
190
  - lib
271
191
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -279,7 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
279
199
  - !ruby/object:Gem::Version
280
200
  version: '0'
281
201
  requirements: []
282
- rubygems_version: 3.0.3
202
+ rubygems_version: 3.3.7
283
203
  signing_key:
284
204
  specification_version: 4
285
205
  summary: Loofah is a general library for manipulating and transforming HTML/XML documents
data/.gemtest DELETED
File without changes
data/Gemfile DELETED
@@ -1,22 +0,0 @@
1
- # -*- ruby -*-
2
-
3
- # DO NOT EDIT THIS FILE. Instead, edit Rakefile, and run `rake bundler:gemfile`.
4
-
5
- source "https://rubygems.org/"
6
-
7
- gem "nokogiri", ">=1.5.9"
8
- gem "crass", "~>1.0.2"
9
-
10
- gem "rake", ">=0.8", :group => [:development, :test]
11
- gem "minitest", "~>2.2", :group => [:development, :test]
12
- gem "rr", "~>1.2.0", :group => [:development, :test]
13
- gem "json", ">=0", :group => [:development, :test]
14
- gem "hoe-gemspec", ">=0", :group => [:development, :test]
15
- gem "hoe-debugging", ">=0", :group => [:development, :test]
16
- gem "hoe-bundler", ">=0", :group => [:development, :test]
17
- gem "hoe-git", ">=0", :group => [:development, :test]
18
- gem "concourse", ">=0.26.0", :group => [:development, :test]
19
- gem "rdoc", ">=4.0", "<7", :group => [:development, :test]
20
- gem "hoe", "~>3.17", :group => [:development, :test]
21
-
22
- # vim: syntax=ruby
data/Manifest.txt DELETED
@@ -1,41 +0,0 @@
1
- .gemtest
2
- CHANGELOG.md
3
- Gemfile
4
- MIT-LICENSE.txt
5
- Manifest.txt
6
- README.md
7
- Rakefile
8
- SECURITY.md
9
- benchmark/benchmark.rb
10
- benchmark/fragment.html
11
- benchmark/helper.rb
12
- benchmark/www.slashdot.com.html
13
- lib/loofah.rb
14
- lib/loofah/elements.rb
15
- lib/loofah/helpers.rb
16
- lib/loofah/html/document.rb
17
- lib/loofah/html/document_fragment.rb
18
- lib/loofah/html5/libxml2_workarounds.rb
19
- lib/loofah/html5/safelist.rb
20
- lib/loofah/html5/scrub.rb
21
- lib/loofah/instance_methods.rb
22
- lib/loofah/metahelpers.rb
23
- lib/loofah/scrubber.rb
24
- lib/loofah/scrubbers.rb
25
- lib/loofah/xml/document.rb
26
- lib/loofah/xml/document_fragment.rb
27
- test/assets/msword.html
28
- test/assets/testdata_sanitizer_tests1.dat
29
- test/helper.rb
30
- test/html5/test_sanitizer.rb
31
- test/html5/test_scrub.rb
32
- test/integration/test_ad_hoc.rb
33
- test/integration/test_helpers.rb
34
- test/integration/test_html.rb
35
- test/integration/test_scrubbers.rb
36
- test/integration/test_xml.rb
37
- test/unit/test_api.rb
38
- test/unit/test_encoding.rb
39
- test/unit/test_helpers.rb
40
- test/unit/test_scrubber.rb
41
- test/unit/test_scrubbers.rb
data/Rakefile DELETED
@@ -1,81 +0,0 @@
1
- require "rubygems"
2
- require "hoe"
3
- require "concourse"
4
-
5
- Hoe.plugin :git
6
- Hoe.plugin :gemspec
7
- Hoe.plugin :bundler
8
- Hoe.plugin :debugging
9
-
10
- Hoe.spec "loofah" do
11
- developer "Mike Dalessio", "mike.dalessio@gmail.com"
12
- developer "Bryan Helmkamp", "bryan@brynary.com"
13
-
14
- self.extra_rdoc_files = FileList["*.md"]
15
- self.history_file = "CHANGELOG.md"
16
- self.readme_file = "README.md"
17
- self.license "MIT"
18
-
19
- extra_deps << ["nokogiri", ">=1.5.9"]
20
- extra_deps << ["crass", "~> 1.0.2"]
21
-
22
- extra_dev_deps << ["rake", "~> 12.3"]
23
- extra_dev_deps << ["minitest", "~>2.2"]
24
- extra_dev_deps << ["rr", "~>1.2.0"]
25
- extra_dev_deps << ["json", "~> 2.2.0"]
26
- extra_dev_deps << ["hoe-gemspec", "~> 1.0"]
27
- extra_dev_deps << ["hoe-debugging", "~> 2.0"]
28
- extra_dev_deps << ["hoe-bundler", "~> 1.5"]
29
- extra_dev_deps << ["hoe-git", "~> 1.6"]
30
- extra_dev_deps << ["concourse", ">=0.26.0"]
31
- end
32
-
33
- task :gemspec do
34
- system %q(rake debug_gem | grep -v "^\(in " > loofah.gemspec)
35
- end
36
-
37
- task :redocs => :fix_css
38
- task :docs => :fix_css
39
- task :fix_css do
40
- better_css = <<-EOT
41
- .method-description pre {
42
- margin : 1em 0 ;
43
- }
44
-
45
- .method-description ul {
46
- padding : .5em 0 .5em 2em ;
47
- }
48
-
49
- .method-description p {
50
- margin-top : .5em ;
51
- }
52
-
53
- #main ul, div#documentation ul {
54
- list-style-type : disc ! IMPORTANT ;
55
- list-style-position : inside ! IMPORTANT ;
56
- }
57
-
58
- h2 + ul {
59
- margin-top : 1em;
60
- }
61
- EOT
62
- puts "* fixing css"
63
- File.open("doc/rdoc.css", "a") { |f| f.write better_css }
64
- end
65
-
66
- desc "generate and upload docs to rubyforge"
67
- task :doc_upload_to_rubyforge => :docs do
68
- Dir.chdir "doc" do
69
- system "rsync -avz --delete * rubyforge.org:/var/www/gforge-projects/loofah/loofah"
70
- end
71
- end
72
-
73
- desc "generate safelists from W3C specifications"
74
- task :generate_safelists do
75
- load "tasks/generate-safelists"
76
- end
77
-
78
- Concourse.new("loofah", fly_target: "ci") do |c|
79
- c.add_pipeline "loofah", "loofah.yml"
80
- c.add_pipeline "loofah-pr", "loofah-pr.yml"
81
- end
@@ -1,149 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require "#{File.dirname(__FILE__)}/helper.rb"
3
-
4
- def compare_scrub_methods
5
- snip = "<div>foo</div><foo>fuxx <b>quux</b></foo><script>i have a chair</script>"
6
- puts "starting with:\n#{snip}"
7
- puts
8
- puts RailsSanitize.new.sanitize(snip) # => Rails.sanitize / scrub!(:prune).to_s
9
- puts Loofah::Helpers.sanitize(snip)
10
- puts "--"
11
- puts RailsSanitize.new.strip_tags(snip) # => Rails.strip_tags / parse().text
12
- puts Loofah::Helpers.strip_tags(snip)
13
- puts "--"
14
- puts Sanitize.clean(snip, Sanitize::Config::RELAXED) # => scrub!(:strip).to_s
15
- puts Loofah.scrub_fragment(snip, :strip).to_s
16
- puts "--"
17
- puts HTML5libSanitize.new.sanitize(snip) # => scrub!(:escape).to_s
18
- puts Loofah.scrub_fragment(snip, :escape).to_s
19
- puts "--"
20
- puts HTMLFilter.new.filter(snip)
21
- puts Loofah.scrub_fragment(snip, :strip).to_s
22
- puts
23
- end
24
-
25
- module TestSet
26
- def test_set options={}
27
- scale = options[:rehearse] ? 10 : 1
28
- puts self.class.name
29
-
30
- n = 100 / scale
31
- puts " Large document, #{BIG_FILE.length} bytes (x#{n})"
32
- bench BIG_FILE, n, false
33
- puts
34
-
35
- n = 1000 / scale
36
- puts " Small fragment, #{FRAGMENT.length} bytes (x#{n})"
37
- bench FRAGMENT, n, true
38
- puts
39
-
40
- n = 10_000 / scale
41
- puts " Text snippet, #{SNIPPET.length} bytes (x#{n})"
42
- bench SNIPPET, n, true
43
- puts
44
- end
45
- end
46
-
47
- class HeadToHead < Measure
48
- end
49
-
50
- class HeadToHeadRailsSanitize < Measure
51
- include TestSet
52
- def bench(content, ntimes, fragment_p)
53
- clear_measure
54
-
55
- measure "Loofah::Helpers.sanitize", ntimes do
56
- Loofah::Helpers.sanitize content
57
- end
58
-
59
- sanitizer = RailsSanitize.new
60
- measure "ActionView sanitize", ntimes do
61
- sanitizer.sanitize(content)
62
- end
63
- end
64
- end
65
-
66
- class HeadToHeadRailsStripTags < Measure
67
- include TestSet
68
- def bench(content, ntimes, fragment_p)
69
- clear_measure
70
-
71
- measure "Loofah::Helpers.strip_tags", ntimes do
72
- Loofah::Helpers.strip_tags content
73
- end
74
-
75
- sanitizer = RailsSanitize.new
76
- measure "ActionView strip_tags", ntimes do
77
- sanitizer.strip_tags(content)
78
- end
79
- end
80
- end
81
-
82
- class HeadToHeadSanitizerSanitize < Measure
83
- include TestSet
84
- def bench(content, ntimes, fragment_p)
85
- clear_measure
86
-
87
- measure "Loofah :strip", ntimes do
88
- if fragment_p
89
- Loofah.scrub_fragment(content, :strip).to_s
90
- else
91
- Loofah.scrub_document(content, :strip).to_s
92
- end
93
- end
94
-
95
- measure "Sanitize.clean", ntimes do
96
- Sanitize.clean(content, Sanitize::Config::RELAXED)
97
- end
98
- end
99
- end
100
-
101
- class HeadToHeadHtml5LibSanitize < Measure
102
- include TestSet
103
- def bench(content, ntimes, fragment_p)
104
- clear_measure
105
-
106
- measure "Loofah :escape", ntimes do
107
- if fragment_p
108
- Loofah.scrub_fragment(content, :escape).to_s
109
- else
110
- Loofah.scrub_document(content, :escape).to_s
111
- end
112
- end
113
-
114
- html5_sanitizer = HTML5libSanitize.new
115
- measure "HTML5lib.sanitize", ntimes do
116
- html5_sanitizer.sanitize(content)
117
- end
118
- end
119
- end
120
-
121
- class HeadToHeadHTMLFilter < Measure
122
- include TestSet
123
- def bench(content, ntimes, fragment_p)
124
- clear_measure
125
-
126
- measure "Loofah::Helpers.sanitize", ntimes do
127
- Loofah::Helpers.sanitize content
128
- end
129
-
130
- sanitizer = HTMLFilter.new
131
- measure "HTMLFilter.filter", ntimes do
132
- sanitizer.filter(content)
133
- end
134
- end
135
- end
136
-
137
- puts "Nokogiri version: #{Nokogiri::VERSION_INFO.inspect}"
138
- puts "Loofah version: #{Loofah::VERSION.inspect}"
139
-
140
- benches = []
141
- benches << HeadToHeadRailsSanitize.new
142
- benches << HeadToHeadRailsStripTags.new
143
- benches << HeadToHeadSanitizerSanitize.new
144
- benches << HeadToHeadHtml5LibSanitize.new
145
- benches << HeadToHeadHTMLFilter.new
146
- puts "---------- rehearsal ----------"
147
- benches.each { |bench| bench.test_set :rehearse => true }
148
- puts "---------- realsies ----------"
149
- benches.each { |bench| bench.test_set }
@@ -1,96 +0,0 @@
1
- <div id="top_parent"></div>
2
-
3
- <div id="jump">
4
- <a href="#main-articles">Stories</a>
5
- <br>
6
- <a href="#blocks">Slash Boxes</a>
7
- <br>
8
- <a href="#comments">Comments</a>
9
- </div>
10
- <a name="topothepage"></a>
11
- <div id="doc3" class="yui-t6 index2 mainpage ac ">
12
- <div id="hd" >
13
- <div id="logo" >
14
-
15
-
16
-
17
- <h1><a href="//slashdot.org"><span>Slashdot</span></a></h1>
18
- <div id="slogan"><h2>News for nerds, stuff that matters</h2></div>
19
- </div>
20
- <a href="#articles" class="hidden">Jump to articles</a>
21
- <div class="nav">
22
- <ul>
23
-
24
-
25
-
26
- <li><a href="//slashdot.org/submit.pl" title="Submit a story to Slashdot">Submit Story</a></li>
27
- <li><a href="//slashdot.org/help" title="Frequently asked questions on Slashdot">Help</a></li>
28
- <li><a href="//slashdot.org/login.pl" onclick="show_login_box(); return false;">Log In</a></li>
29
-
30
- </ul>
31
- </div>
32
-
33
-
34
-
35
-
36
-
37
- <div id="fh_picker_search" style="display: block;">
38
- <form method="get" action="//slashdot.org/index2.pl">
39
- <fieldset class="mode-filter mode-anon">
40
- <legend>Search</legend>
41
-
42
-
43
- <input class="query" type="text" name="fhfilter" value="" id="searchquery"> <input type="button" class="setfhfilter" value="Filter" id="viewsearch" style="display:none"> <input type="submit" class="setsearchfilter" value="Search" id="fhsearch" style="display:none">
44
- <noscript><input type="submit" class="setsearchfilter" value="Search"></noscript>
45
-
46
- <script type="text/javascript">
47
- var slash_search;
48
- $(function(){
49
- if (has_hose()) {
50
- var $search_text = $any('searchquery'),
51
- $panel = $search_text.closest('fieldset');
52
- $search_buttons = $('#viewsearch,#fhsearch'),
53
- ws = /\s+/;
54
-
55
-
56
-
57
- // The search buttons set the firehose option named by their class.
58
- $search_buttons.
59
- click(function(){
60
- var which=this.className;
61
- $search_text.each(function(){
62
- firehose_set_options(which, this.value);
63
- });
64
- return false;
65
- });
66
-
67
- // Provide a globally available function that does whatever clicking the search button would do.
68
- slash_search = function( query ){
69
- query!==undefined && $search_text.val(query);
70
- $search_buttons.filter(':visible:first').click();
71
- };
72
-
73
- $search_text.
74
- keydown(function( e ){ // ESCAPE restores the filter in-effect.
75
- if ( e.which == $.ui.keyCode.ESCAPE ) {
76
- $search_text.val(firehose_settings.fhfilter||'');
77
- return true;
78
- }
79
- if ( e.which == $.ui.keyCode.ENTER ) {
80
- slash_search();
81
- return false;
82
- }
83
- });
84
-
85
- $(document).
86
- bind('firehose-setting-setfhfilter firehose-setting-setsearchfilter', function( e, new_query ){
87
- $('fieldset input[type=text]').each(function(){
88
- $(this).blur().val(new_query);
89
- });
90
- }).
91
- bind('set-options.firehose', function( e, data ){
92
- data.select_section && $panel.toggleClass('mode-filter', data.id!=='unsaved');
93
- });
94
- }
95
- });
96
- </script>