regru-premailer 1.7.4

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,277 @@
1
+ # encoding: UTF-8
2
+ require File.expand_path(File.dirname(__FILE__)) + '/helper'
3
+
4
+ class TestPremailer < Premailer::TestCase
5
+ def test_special_characters_nokogiri
6
+ html = '<p>cédille c&eacute; & garçon gar&#231;on à &agrave; &nbsp; &amp; &copy;</p>'
7
+ premailer = Premailer.new(html, :with_html_string => true, :adapter => :nokogiri)
8
+ premailer.to_inline_css
9
+ assert_equal 'c&eacute;dille c&eacute; &amp; gar&ccedil;on gar&ccedil;on &agrave; &agrave; &nbsp; &amp; &copy;', premailer.processed_doc.at('p').inner_html
10
+ end
11
+
12
+ def test_special_characters_nokogiri_remote
13
+ remote_setup('chars.html', :adapter => :nokogiri)
14
+ @premailer.to_inline_css
15
+ assert_equal 'c&eacute;dille c&eacute; &amp; gar&ccedil;on gar&ccedil;on &agrave; &agrave; &nbsp; &amp; &copy;', @premailer.processed_doc.at('p').inner_html
16
+ end
17
+
18
+ #def test_cyrillic_nokogiri_remote
19
+ # if RUBY_VERSION =~ /1.9/
20
+ # remote_setup('iso-8859-5.html', :adapter => :nokogiri) #, :encoding => 'iso-8859-5')
21
+ # @premailer.to_inline_css
22
+ # assert_equal Encoding.find('ISO-8859-5'), @premailer.processed_doc.at('p').inner_html.encoding
23
+ # end
24
+ #end
25
+
26
+ # TODO: this passes when run from rake but not when run from:
27
+ # ruby -Itest test/test_premailer.rb -n test_special_characters_hpricot
28
+ def test_special_characters_hpricot
29
+ html = '<p>cédille c&eacute; & garçon gar&#231;on à &agrave; &nbsp; &amp;</p>'
30
+ premailer = Premailer.new(html, :with_html_string => true, :adapter => :hpricot)
31
+ premailer.to_inline_css
32
+ assert_equal 'c&eacute;dille c&eacute; &amp; gar&ccedil;on gar&ccedil;on &agrave; &agrave; &nbsp; &amp;', premailer.processed_doc.at('p').inner_html
33
+ end
34
+
35
+ def test_detecting_html
36
+ [:nokogiri, :hpricot].each do |adapter|
37
+ remote_setup('base.html', :adapter => adapter)
38
+ assert !@premailer.is_xhtml?
39
+ end
40
+ end
41
+
42
+ def test_detecting_xhtml
43
+ [:nokogiri, :hpricot].each do |adapter|
44
+ remote_setup('xhtml.html', :adapter => adapter)
45
+ assert @premailer.is_xhtml?
46
+ end
47
+ end
48
+
49
+ def test_self_closing_xhtml_tags
50
+ [:nokogiri, :hpricot].each do |adapter|
51
+ remote_setup('xhtml.html', :adapter => adapter)
52
+ assert_match /<br[\s]*\/>/, @premailer.to_s
53
+ assert_match /<br[\s]*\/>/, @premailer.to_inline_css
54
+ end
55
+ end
56
+
57
+ def test_non_self_closing_html_tags
58
+ [:nokogiri, :hpricot].each do |adapter|
59
+ remote_setup('html4.html', :adapter => adapter)
60
+ assert_match /<br>/, @premailer.to_s
61
+ assert_match /<br>/, @premailer.to_inline_css
62
+ end
63
+ end
64
+
65
+ def test_mailtos_with_query_strings
66
+ html = <<END_HTML
67
+ <html>
68
+ <a href="mailto:info@example.com?subject=Programmübersicht&amp;body=Lorem ipsum dolor sit amet.">Test</a>
69
+ </html>
70
+ END_HTML
71
+
72
+ qs = 'testing=123'
73
+
74
+ [:nokogiri, :hpricot].each do |adapter|
75
+ premailer = Premailer.new(html, :with_html_string => true, :link_query_string => qs, :adapter => adapter)
76
+ premailer.to_inline_css
77
+ assert_no_match /testing=123/, premailer.processed_doc.search('a').first.attributes['href'].to_s
78
+ end
79
+ end
80
+
81
+ def test_escaping_strings
82
+ local_setup
83
+
84
+ str = %q{url("/images/test.png");}
85
+ assert_equal("url(\'/images/test.png\');", Premailer.escape_string(str))
86
+ end
87
+
88
+ def test_importing_local_css
89
+ # , :hpricot
90
+ [:nokogiri].each do |adapter|
91
+ local_setup('base.html', :adapter => adapter)
92
+
93
+ # noimport.css (print stylesheet) sets body { background } to red
94
+ assert_no_match /red/, @doc.at('body').attributes['style'].to_s
95
+
96
+ # import.css sets .hide to { display: none }
97
+ assert_match /display: none/, @doc.at('#hide01').attributes['style'].to_s
98
+ end
99
+ end
100
+
101
+ def test_importing_remote_css
102
+ [:nokogiri, :hpricot].each do |adapter|
103
+ remote_setup('base.html', :adapter => adapter)
104
+
105
+ # noimport.css (print stylesheet) sets body { background } to red
106
+ assert_no_match /red/, @doc.at('body')['style']
107
+
108
+ # import.css sets .hide to { display: none }
109
+ assert_match /display: none/, @doc.at('#hide01')['style']
110
+ end
111
+ end
112
+
113
+ def test_importing_css_as_string
114
+ files_base = File.expand_path(File.dirname(__FILE__)) + '/files/'
115
+
116
+ css_string = IO.read(File.join(files_base, 'import.css'))
117
+
118
+ [:nokogiri, :hpricot].each do |adapter|
119
+ premailer = Premailer.new(File.join(files_base, 'no_css.html'), {:css_string => css_string, :adapter => adapter})
120
+ premailer.to_inline_css
121
+ @doc = premailer.processed_doc
122
+
123
+ # import.css sets .hide to { display: none }
124
+ assert_match /display: none/, @doc.at('#hide01')['style']
125
+ end
126
+ end
127
+
128
+ def test_local_remote_check
129
+ assert Premailer.local_data?( StringIO.new('a') )
130
+ assert Premailer.local_data?( '/path/' )
131
+ assert !Premailer.local_data?( 'http://example.com/path/' )
132
+
133
+ # the old way is deprecated but should still work
134
+ premailer = Premailer.new( StringIO.new('a') )
135
+ assert premailer.local_uri?( '/path/' )
136
+ end
137
+
138
+ def test_initialize_can_accept_io_object
139
+ [:nokogiri, :hpricot].each do |adapter|
140
+ io = StringIO.new('hi mom')
141
+ premailer = Premailer.new(io, :adapter => adapter)
142
+ assert_match /hi mom/, premailer.to_inline_css
143
+ end
144
+ end
145
+
146
+ def test_initialize_can_accept_html_string
147
+ [:nokogiri, :hpricot].each do |adapter|
148
+ premailer = Premailer.new('<p>test</p>', :with_html_string => true, :adapter => adapter)
149
+ assert_match /test/, premailer.to_inline_css
150
+ end
151
+ end
152
+
153
+ def test_remove_ids
154
+ html = <<END_HTML
155
+ <html> <head> <style type="text/css"> #remove { color:blue; } </style> </head>
156
+ <body>
157
+ <p id="remove"><a href="#keep">Test</a></p>
158
+ <p id="keep">Test</p>
159
+ </body> </html>
160
+ END_HTML
161
+
162
+ [:nokogiri, :hpricot].each do |adapter|
163
+ pm = Premailer.new(html, :with_html_string => true, :remove_ids => true, :adapter => adapter)
164
+ pm.to_inline_css
165
+ doc = pm.processed_doc
166
+ assert_nil doc.at('#remove')
167
+ assert_nil doc.at('#keep')
168
+ hashed_id = doc.at('a')['href'][1..-1]
169
+ assert_not_nil doc.at("\##{hashed_id}")
170
+ end
171
+ end
172
+
173
+ def test_carriage_returns_as_entities
174
+ html = <<-html
175
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
176
+ <html>
177
+ <body>\n\r<p>test</p>\n\r<p>test</p>
178
+ </body></html>
179
+ html
180
+
181
+ [:nokogiri, :hpricot].each do |adapter|
182
+ pm = Premailer.new(html, :with_html_string => true, :adapter => adapter)
183
+ assert_match /\r/, pm.to_inline_css
184
+ end
185
+ end
186
+
187
+
188
+ def test_advanced_selectors
189
+ remote_setup('base.html', :adapter => :nokogiri)
190
+ assert_match /italic/, @doc.at('h2 + h3')['style']
191
+ assert_match /italic/, @doc.at('p[attr~=quote]')['style']
192
+ assert_match /italic/, @doc.at('ul li:first-of-type')['style']
193
+
194
+ remote_setup('base.html', :adapter => :hpricot)
195
+ assert_match /italic/, @doc.at('p[@attr~="quote"]')['style']
196
+ assert_match /italic/, @doc.at('ul li:first-of-type')['style']
197
+ end
198
+
199
+ def test_premailer_related_attributes
200
+ html = <<END_HTML
201
+ <html> <head> <style>table { -premailer-width: 500; } td { -premailer-height: 20}; </style>
202
+ <body>
203
+ <table> <tr> <td> Test </td> </tr> </table>
204
+ </body> </html>
205
+ END_HTML
206
+
207
+ [:nokogiri, :hpricot].each do |adapter|
208
+ pm = Premailer.new(html, :with_html_string => true, :adapter => adapter)
209
+ pm.to_inline_css
210
+ doc = pm.processed_doc
211
+ assert_equal '500', doc.at('table')['width']
212
+ assert_equal '20', doc.at('td')['height']
213
+ end
214
+ end
215
+
216
+ def test_include_link_tags_option
217
+ local_setup('base.html', :adapter => :nokogiri, :include_link_tags => true)
218
+ assert_match /1\.231/, @doc.at('body').attributes['style'].to_s
219
+ assert_match /display: none/, @doc.at('.hide').attributes['style'].to_s
220
+
221
+ local_setup('base.html', :adapter => :nokogiri, :include_link_tags => false)
222
+ assert_no_match /1\.231/, @doc.at('body').attributes['style'].to_s
223
+ assert_match /display: none/, @doc.at('.hide').attributes['style'].to_s
224
+ end
225
+
226
+ def test_include_style_tags_option
227
+ local_setup('base.html', :adapter => :nokogiri, :include_style_tags => true)
228
+ assert_match /1\.231/, @doc.at('body').attributes['style'].to_s
229
+ assert_match /display: block/, @doc.at('#iphone').attributes['style'].to_s
230
+
231
+ local_setup('base.html', :adapter => :nokogiri, :include_style_tags => false)
232
+ assert_match /1\.231/, @doc.at('body').attributes['style'].to_s
233
+ assert_no_match /display: block/, @doc.at('#iphone').attributes['style'].to_s
234
+ end
235
+
236
+ def test_input_encoding
237
+ html_special_characters = "Ää, Öö, Üü".encode("UTF-8")
238
+ expected_html = "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html><body><p>" + html_special_characters + "</p></body></html>\n"
239
+ pm = Premailer.new(html_special_characters, :with_html_string => true, :adapter => :nokogiri, :input_encoding => "UTF-8")
240
+ assert_equal expected_html, pm.to_inline_css
241
+ end
242
+
243
+ def test_meta_encoding_downcase
244
+ meta_encoding = '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'
245
+ expected_html = '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'
246
+ pm = Premailer.new(meta_encoding, :with_html_string => true, :adapter => :nokogiri, :input_encoding => "utf-8")
247
+ assert_match expected_html, pm.to_inline_css
248
+ end
249
+
250
+ def test_meta_encoding_upcase
251
+ meta_encoding = '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'
252
+ expected_html = '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'
253
+ pm = Premailer.new(meta_encoding, :with_html_string => true, :adapter => :nokogiri, :input_encoding => "UTF-8")
254
+ assert_match expected_html, pm.to_inline_css
255
+ end
256
+
257
+ def test_htmlentities
258
+ html_entities = "&#8217;"
259
+ expected_html = "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html><body><p>'</p></body></html>\n"
260
+ pm = Premailer.new(html_entities, :with_html_string => true, :adapter => :nokogiri, :replace_html_entities => true)
261
+ assert_equal expected_html, pm.to_inline_css
262
+ end
263
+
264
+ # If a line other than the first line in the html string begins with a URI
265
+ # Premailer should not identify the html string as a URI. Otherwise the following
266
+ # exception would be raised: ActionView::Template::Error: bad URI(is not URI?)
267
+ def test_line_starting_with_uri_in_html_with_linked_css
268
+ files_base = File.expand_path(File.dirname(__FILE__)) + '/files/'
269
+ html_string = IO.read(File.join(files_base, 'html_with_uri.html'))
270
+
271
+ assert_nothing_raised do
272
+ premailer = Premailer.new(html_string, :with_html_string => true)
273
+ premailer.to_inline_css
274
+ end
275
+ end
276
+
277
+ end
@@ -0,0 +1,95 @@
1
+ # encoding: UTF-8
2
+ require File.expand_path(File.dirname(__FILE__)) + '/helper'
3
+
4
+ class TestWarnings < Premailer::TestCase
5
+ def test_element_warnings
6
+ html = <<END_HTML
7
+ <!DOCTYPE html>
8
+ <html>
9
+ <head><link rel="alternate" href="http://example.com/"></head>
10
+ <body>
11
+ <form method="post"> Test </form>
12
+ </body>
13
+ </html>
14
+ END_HTML
15
+
16
+ [:nokogiri, :hpricot].each do |adapter|
17
+ warnings = get_warnings(html, adapter)
18
+ assert_equal 2, warnings.length
19
+ assert warnings.any? { |w| w[:message] == 'form HTML element'}
20
+ assert warnings.any? { |w| w[:message] == 'link HTML element'}
21
+ end
22
+ end
23
+
24
+ def test_css_warnings
25
+ html = <<END_HTML
26
+ <!DOCTYPE html>
27
+ <html><body>
28
+ <div style="margin: 5px; height: 100px;">Test</div>
29
+ </body></html>
30
+ END_HTML
31
+
32
+ [:nokogiri, :hpricot].each do |adapter|
33
+ warnings = get_warnings(html, adapter)
34
+ assert_equal 2, warnings.length
35
+ assert warnings.any? { |w| w[:message] == 'height CSS property'}
36
+ assert warnings.any? { |w| w[:message] == 'margin CSS property'}
37
+ end
38
+ end
39
+
40
+ def test_css_aliased_warnings
41
+ html = <<END_HTML
42
+ <!DOCTYPE html>
43
+ <html><body>
44
+ <div style="margin-top: 5px;">Test</div>
45
+ </body></html>
46
+ END_HTML
47
+
48
+ [:nokogiri, :hpricot].each do |adapter|
49
+ warnings = get_warnings(html, adapter)
50
+ assert_equal 1, warnings.length
51
+ assert warnings.any? { |w| w[:message] == 'margin-top CSS property'}
52
+ end
53
+ end
54
+
55
+ def test_attribute_warnings
56
+ html = <<END_HTML
57
+ <!DOCTYPE html>
58
+ <html><body>
59
+ <img src="#" ismap>
60
+ </body></html>
61
+ END_HTML
62
+
63
+ [:nokogiri, :hpricot].each do |adapter|
64
+ warnings = get_warnings(html, adapter)
65
+ assert_equal 1, warnings.length
66
+ assert warnings.any? { |w| w[:message] == 'ismap HTML attribute'}
67
+ end
68
+ end
69
+
70
+ def test_warn_level
71
+ html = <<END_HTML
72
+ <!DOCTYPE html>
73
+ <html><body>
74
+ <div style="color: red; font-family: sans-serif;">Test</div>
75
+ </body></html>
76
+ END_HTML
77
+
78
+ [:nokogiri, :hpricot].each do |adapter|
79
+ warnings = get_warnings(html, adapter, Premailer::Warnings::SAFE)
80
+ assert_equal 2, warnings.length
81
+ end
82
+
83
+ [:nokogiri, :hpricot].each do |adapter|
84
+ warnings = get_warnings(html, adapter, Premailer::Warnings::POOR)
85
+ assert_equal 1, warnings.length
86
+ end
87
+ end
88
+
89
+ protected
90
+ def get_warnings(html, adapter = :nokogiri, warn_level = Premailer::Warnings::SAFE)
91
+ pm = Premailer.new(html, {:adpater => adapter, :with_html_string => true, :warn_level => warn_level})
92
+ pm.to_inline_css
93
+ pm.check_client_support
94
+ end
95
+ end
metadata ADDED
@@ -0,0 +1,231 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: regru-premailer
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.7.4
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Alex Dunae
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-04-23 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: css_parser
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 1.1.9
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 1.1.9
30
+ - !ruby/object:Gem::Dependency
31
+ name: htmlentities
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 4.0.0
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 4.0.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: hpricot
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 0.8.3
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.8.3
62
+ - !ruby/object:Gem::Dependency
63
+ name: nokogiri
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: 1.4.4
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 1.4.4
78
+ - !ruby/object:Gem::Dependency
79
+ name: rake
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: '0.8'
86
+ - - ! '!='
87
+ - !ruby/object:Gem::Version
88
+ version: 0.9.0
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ none: false
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '0.8'
97
+ - - ! '!='
98
+ - !ruby/object:Gem::Version
99
+ version: 0.9.0
100
+ - !ruby/object:Gem::Dependency
101
+ name: yard
102
+ requirement: !ruby/object:Gem::Requirement
103
+ none: false
104
+ requirements:
105
+ - - ~>
106
+ - !ruby/object:Gem::Version
107
+ version: 0.7.3
108
+ type: :development
109
+ prerelease: false
110
+ version_requirements: !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ~>
114
+ - !ruby/object:Gem::Version
115
+ version: 0.7.3
116
+ - !ruby/object:Gem::Dependency
117
+ name: redcarpet
118
+ requirement: !ruby/object:Gem::Requirement
119
+ none: false
120
+ requirements:
121
+ - - ~>
122
+ - !ruby/object:Gem::Version
123
+ version: 1.17.2
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: 1.17.2
132
+ description: Improve the rendering of HTML emails by making CSS inline, converting
133
+ links and warning about unsupported code.
134
+ email: code@dunae.ca
135
+ executables:
136
+ - premailer
137
+ extensions: []
138
+ extra_rdoc_files: []
139
+ files:
140
+ - .gitignore
141
+ - .travis.yml
142
+ - .yardopts
143
+ - Gemfile
144
+ - LICENSE.md
145
+ - README.md
146
+ - bin/premailer
147
+ - init.rb
148
+ - lib/premailer.rb
149
+ - lib/premailer/adapter.rb
150
+ - lib/premailer/adapter/hpricot.rb
151
+ - lib/premailer/adapter/nokogiri.rb
152
+ - lib/premailer/executor.rb
153
+ - lib/premailer/html_to_plain_text.rb
154
+ - lib/premailer/premailer.rb
155
+ - local-premailer
156
+ - misc/client_support.yaml
157
+ - premailer.gemspec
158
+ - rakefile.rb
159
+ - test/files/base.html
160
+ - test/files/chars.html
161
+ - test/files/contact_bg.png
162
+ - test/files/dialect.png
163
+ - test/files/dots_end.png
164
+ - test/files/dots_h.gif
165
+ - test/files/html4.html
166
+ - test/files/html_with_uri.html
167
+ - test/files/import.css
168
+ - test/files/inc/2009-placeholder.png
169
+ - test/files/iso-8859-2.html
170
+ - test/files/iso-8859-5.html
171
+ - test/files/no_css.html
172
+ - test/files/noimport.css
173
+ - test/files/styles.css
174
+ - test/files/xhtml.html
175
+ - test/future_tests.rb
176
+ - test/helper.rb
177
+ - test/test_adapter.rb
178
+ - test/test_html_to_plain_text.rb
179
+ - test/test_links.rb
180
+ - test/test_misc.rb
181
+ - test/test_premailer.rb
182
+ - test/test_warnings.rb
183
+ homepage: http://premailer.dialect.ca/
184
+ licenses: []
185
+ post_install_message:
186
+ rdoc_options: []
187
+ require_paths:
188
+ - lib
189
+ required_ruby_version: !ruby/object:Gem::Requirement
190
+ none: false
191
+ requirements:
192
+ - - ! '>='
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ required_rubygems_version: !ruby/object:Gem::Requirement
196
+ none: false
197
+ requirements:
198
+ - - ! '>='
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ requirements: []
202
+ rubyforge_project:
203
+ rubygems_version: 1.8.24
204
+ signing_key:
205
+ specification_version: 3
206
+ summary: Preflight for HTML e-mail.
207
+ test_files:
208
+ - test/files/base.html
209
+ - test/files/chars.html
210
+ - test/files/contact_bg.png
211
+ - test/files/dialect.png
212
+ - test/files/dots_end.png
213
+ - test/files/dots_h.gif
214
+ - test/files/html4.html
215
+ - test/files/html_with_uri.html
216
+ - test/files/import.css
217
+ - test/files/inc/2009-placeholder.png
218
+ - test/files/iso-8859-2.html
219
+ - test/files/iso-8859-5.html
220
+ - test/files/no_css.html
221
+ - test/files/noimport.css
222
+ - test/files/styles.css
223
+ - test/files/xhtml.html
224
+ - test/future_tests.rb
225
+ - test/helper.rb
226
+ - test/test_adapter.rb
227
+ - test/test_html_to_plain_text.rb
228
+ - test/test_links.rb
229
+ - test/test_misc.rb
230
+ - test/test_premailer.rb
231
+ - test/test_warnings.rb