hpricot-scrub 0.2.0

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.
@@ -0,0 +1,45 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+ require File.dirname(__FILE__) + '/scrubber_data.rb'
3
+
4
+ class HpricotScrubTest < Test::Unit::TestCase
5
+
6
+ def setup
7
+ @clean = Hpricot(MARKUP).scrub.inner_html
8
+ @config = YAML.load_file('examples/config.yml')
9
+ end
10
+
11
+ def test_full_scrub
12
+ doc = Hpricot(MARKUP).scrub
13
+ # using the divisor search throws warnings in test
14
+ assert_tag_count(doc, 'a', 0)
15
+ assert_tag_count(doc, 'p', 0)
16
+ assert_tag_count(doc, 'img', 0)
17
+ assert_tag_count(doc, 'br', 0)
18
+ assert_tag_count(doc, 'div', 0)
19
+ assert_tag_count(doc, 'script', 0)
20
+ end
21
+
22
+ def test_partial_scrub
23
+ full = Hpricot(MARKUP)
24
+ doc = Hpricot(MARKUP).scrub(@config)
25
+ # using the divisor search throws warnings in test
26
+ assert_tag_count(doc, 'a', 0)
27
+ assert_tag_count(doc, 'p', full.search('//p').size)
28
+ assert_tag_count(doc, 'div', full.search('//div').size)
29
+ assert_tag_count(doc, 'img', full.search('//img').size)
30
+ assert_tag_count(doc, 'br', full.search('//br').size)
31
+ assert_tag_count(doc, 'script', 0)
32
+ end
33
+
34
+ def test_string_scrub
35
+ formatted = MARKUP
36
+ assert formatted.scrub == @clean
37
+ assert formatted == MARKUP
38
+ end
39
+
40
+ def test_string_scrub!
41
+ formatted = MARKUP
42
+ assert formatted.scrub! == @clean
43
+ assert formatted == @clean
44
+ end
45
+ end
@@ -0,0 +1,14 @@
1
+ MARKUP = <<-EOS
2
+ <p>Some <b>bold junk</b> here...</p>
3
+ <p>Some more junk <i>here...</i><br></p>
4
+ <p>Still more junk <u>here</u>... </p>
5
+ <p><img title="nothing to see here" alt="nothing to see here" mce_src="http://example.com/imgtest.png" src="http://example.com/imgtest.png" align="middle" border="1" height="240" hspace="5" vspace="5" width="320">&nbsp;</p>
6
+ <p>&nbsp;And a <a title="Just a link" target="_blank" mce_href="http://example.com/nothing.html" href="http://example.com/nothing.html">link</a> just because</p>
7
+ <p><div>some stuff in here</div><img title="nothing to see here" alt="nothing to see here" mce_src="http://example.com/imgtest.png" src="http://example.com/imgtest.png" align="middle" border="1" height="240" hspace="5" vspace="5" width="320"></p>
8
+ <a name="junk"></a>
9
+ <p><script type="text/javascript">//nasty bits go here
10
+ alert("gotcha");</script><img src="http://content.example.com/content/3587a2f6ee641074fec4e7534c01655326c218ec">how about an <a href="javascript:alert('gotcha')">inline script</a>
11
+ </p>
12
+ <span>some random unclosed span
13
+ <style type="text/css">.foo {color:blue}</style>
14
+ EOS
@@ -0,0 +1,8 @@
1
+ require 'test/unit'
2
+ require File.dirname(__FILE__) + '/../lib/hpricot_scrub'
3
+
4
+ def assert_tag_count(doc, tag, expected)
5
+ found = doc.search("//#{tag}").size
6
+ assert found == expected,
7
+ "Expected to find #{expected} '#{tag}' tag(s), found #{found}"
8
+ end
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.1
3
+ specification_version: 1
4
+ name: hpricot-scrub
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.2.0
7
+ date: 2007-03-04 00:00:00 -08:00
8
+ summary: Scrub HTML with Hpricot
9
+ require_paths:
10
+ - lib
11
+ email: michael@underpantsgnome.com
12
+ homepage: http://trac.underpantsgnome.com/hpricot_scrub/
13
+ rubyforge_project: hpricot-scrub
14
+ description: Scrub HTML with Hpricot
15
+ autorequire:
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: true
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
24
+ version:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
29
+ authors:
30
+ - UnderpantsGnome
31
+ files:
32
+ - Rakefile
33
+ - README.txt
34
+ - CHANGELOG.txt
35
+ - Manifest.txt
36
+ - setup.rb
37
+ - lib/hpricot_scrub/version.rb
38
+ - lib/hpricot_scrub.rb
39
+ - test/test_helper.rb
40
+ - test/scrubber_data.rb
41
+ - test/hpricot_scrub_test.rb
42
+ - examples/config.yml
43
+ test_files:
44
+ - test/hpricot_scrub_test.rb
45
+ rdoc_options: []
46
+
47
+ extra_rdoc_files: []
48
+
49
+ executables: []
50
+
51
+ extensions: []
52
+
53
+ requirements: []
54
+
55
+ dependencies:
56
+ - !ruby/object:Gem::Dependency
57
+ name: hpricot
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Version::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0.5"
64
+ version: