htmlcompressor 0.0.2

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 (130) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +13 -0
  4. data/README.md +83 -0
  5. data/Rakefile +2 -0
  6. data/htmlcompressor.gemspec +21 -0
  7. data/lib/htmlcompressor.rb +6 -0
  8. data/lib/htmlcompressor/compressor.rb +785 -0
  9. data/lib/htmlcompressor/rack.rb +54 -0
  10. data/lib/htmlcompressor/version.rb +3 -0
  11. data/test/compressor_test.rb +254 -0
  12. data/test/resources/html/.svn/all-wcprops +275 -0
  13. data/test/resources/html/.svn/entries +1558 -0
  14. data/test/resources/html/.svn/prop-base/testRemoveHttpProtocol.html.svn-base +5 -0
  15. data/test/resources/html/.svn/prop-base/testRemoveHttpProtocolResult.html.svn-base +5 -0
  16. data/test/resources/html/.svn/prop-base/testRemoveHttpsProtocol.html.svn-base +5 -0
  17. data/test/resources/html/.svn/prop-base/testRemoveHttpsProtocolResult.html.svn-base +5 -0
  18. data/test/resources/html/.svn/prop-base/testRemoveSpacesInsideTags.html.svn-base +5 -0
  19. data/test/resources/html/.svn/prop-base/testRemoveSpacesInsideTagsResult.html.svn-base +5 -0
  20. data/test/resources/html/.svn/prop-base/testSurroundingSpaces.html.svn-base +5 -0
  21. data/test/resources/html/.svn/prop-base/testSurroundingSpacesResult.html.svn-base +5 -0
  22. data/test/resources/html/.svn/text-base/testCompress.html.svn-base +10 -0
  23. data/test/resources/html/.svn/text-base/testCompressCss.html.svn-base +11 -0
  24. data/test/resources/html/.svn/text-base/testCompressCssResult.html.svn-base +6 -0
  25. data/test/resources/html/.svn/text-base/testCompressJavaScript.html.svn-base +24 -0
  26. data/test/resources/html/.svn/text-base/testCompressJavaScriptClosureResult.html.svn-base +7 -0
  27. data/test/resources/html/.svn/text-base/testCompressJavaScriptYuiResult.html.svn-base +7 -0
  28. data/test/resources/html/.svn/text-base/testCompressResult.html.svn-base +1 -0
  29. data/test/resources/html/.svn/text-base/testEnabled.html.svn-base +1 -0
  30. data/test/resources/html/.svn/text-base/testEnabledResult.html.svn-base +1 -0
  31. data/test/resources/html/.svn/text-base/testPreserveLineBreaks.html.svn-base +11 -0
  32. data/test/resources/html/.svn/text-base/testPreserveLineBreaksResult.html.svn-base +5 -0
  33. data/test/resources/html/.svn/text-base/testPreservePatterns.html.svn-base +7 -0
  34. data/test/resources/html/.svn/text-base/testPreservePatternsResult.html.svn-base +1 -0
  35. data/test/resources/html/.svn/text-base/testRemoveComments.html.svn-base +17 -0
  36. data/test/resources/html/.svn/text-base/testRemoveCommentsResult.html.svn-base +4 -0
  37. data/test/resources/html/.svn/text-base/testRemoveFormAttributes.html.svn-base +1 -0
  38. data/test/resources/html/.svn/text-base/testRemoveFormAttributesResult.html.svn-base +1 -0
  39. data/test/resources/html/.svn/text-base/testRemoveHttpProtocol.html.svn-base +1 -0
  40. data/test/resources/html/.svn/text-base/testRemoveHttpProtocolResult.html.svn-base +1 -0
  41. data/test/resources/html/.svn/text-base/testRemoveHttpsProtocol.html.svn-base +1 -0
  42. data/test/resources/html/.svn/text-base/testRemoveHttpsProtocolResult.html.svn-base +1 -0
  43. data/test/resources/html/.svn/text-base/testRemoveInputAttributes.html.svn-base +1 -0
  44. data/test/resources/html/.svn/text-base/testRemoveInputAttributesResult.html.svn-base +1 -0
  45. data/test/resources/html/.svn/text-base/testRemoveIntertagSpaces.html.svn-base +5 -0
  46. data/test/resources/html/.svn/text-base/testRemoveIntertagSpacesResult.html.svn-base +1 -0
  47. data/test/resources/html/.svn/text-base/testRemoveJavaScriptProtocol.html.svn-base +1 -0
  48. data/test/resources/html/.svn/text-base/testRemoveJavaScriptProtocolResult.html.svn-base +1 -0
  49. data/test/resources/html/.svn/text-base/testRemoveLinkAttributes.html.svn-base +5 -0
  50. data/test/resources/html/.svn/text-base/testRemoveLinkAttributesResult.html.svn-base +1 -0
  51. data/test/resources/html/.svn/text-base/testRemoveMultiSpaces.html.svn-base +1 -0
  52. data/test/resources/html/.svn/text-base/testRemoveMultiSpacesResult.html.svn-base +1 -0
  53. data/test/resources/html/.svn/text-base/testRemoveQuotes.html.svn-base +7 -0
  54. data/test/resources/html/.svn/text-base/testRemoveQuotesResult.html.svn-base +1 -0
  55. data/test/resources/html/.svn/text-base/testRemoveScriptAttributes.html.svn-base +6 -0
  56. data/test/resources/html/.svn/text-base/testRemoveScriptAttributesResult.html.svn-base +1 -0
  57. data/test/resources/html/.svn/text-base/testRemoveSpacesInsideTags.html.svn-base +1 -0
  58. data/test/resources/html/.svn/text-base/testRemoveSpacesInsideTagsResult.html.svn-base +1 -0
  59. data/test/resources/html/.svn/text-base/testRemoveStyleAttributes.html.svn-base +3 -0
  60. data/test/resources/html/.svn/text-base/testRemoveStyleAttributesResult.html.svn-base +1 -0
  61. data/test/resources/html/.svn/text-base/testSimpleBooleanAttributes.html.svn-base +1 -0
  62. data/test/resources/html/.svn/text-base/testSimpleBooleanAttributesResult.html.svn-base +1 -0
  63. data/test/resources/html/.svn/text-base/testSimpleDoctype.html.svn-base +2 -0
  64. data/test/resources/html/.svn/text-base/testSimpleDoctypeResult.html.svn-base +1 -0
  65. data/test/resources/html/.svn/text-base/testSurroundingSpaces.html.svn-base +1 -0
  66. data/test/resources/html/.svn/text-base/testSurroundingSpacesResult.html.svn-base +1 -0
  67. data/test/resources/html/testCompress.html +10 -0
  68. data/test/resources/html/testCompressCss.html +11 -0
  69. data/test/resources/html/testCompressCssResult.html +6 -0
  70. data/test/resources/html/testCompressJavaScript.html +24 -0
  71. data/test/resources/html/testCompressJavaScriptClosureResult.html +7 -0
  72. data/test/resources/html/testCompressJavaScriptYuiResult.html +7 -0
  73. data/test/resources/html/testCompressResult.html +1 -0
  74. data/test/resources/html/testEnabled.html +1 -0
  75. data/test/resources/html/testEnabledResult.html +1 -0
  76. data/test/resources/html/testPreserveLineBreaks.html +11 -0
  77. data/test/resources/html/testPreserveLineBreaksResult.html +5 -0
  78. data/test/resources/html/testPreservePatterns.html +7 -0
  79. data/test/resources/html/testPreservePatternsResult.html +1 -0
  80. data/test/resources/html/testRemoveComments.html +17 -0
  81. data/test/resources/html/testRemoveCommentsResult.html +4 -0
  82. data/test/resources/html/testRemoveFormAttributes.html +1 -0
  83. data/test/resources/html/testRemoveFormAttributesResult.html +1 -0
  84. data/test/resources/html/testRemoveHttpProtocol.html +1 -0
  85. data/test/resources/html/testRemoveHttpProtocolResult.html +1 -0
  86. data/test/resources/html/testRemoveHttpsProtocol.html +1 -0
  87. data/test/resources/html/testRemoveHttpsProtocolResult.html +1 -0
  88. data/test/resources/html/testRemoveInputAttributes.html +1 -0
  89. data/test/resources/html/testRemoveInputAttributesResult.html +1 -0
  90. data/test/resources/html/testRemoveIntertagSpaces.html +5 -0
  91. data/test/resources/html/testRemoveIntertagSpacesResult.html +1 -0
  92. data/test/resources/html/testRemoveJavaScriptProtocol.html +1 -0
  93. data/test/resources/html/testRemoveJavaScriptProtocolResult.html +1 -0
  94. data/test/resources/html/testRemoveLinkAttributes.html +5 -0
  95. data/test/resources/html/testRemoveLinkAttributesResult.html +1 -0
  96. data/test/resources/html/testRemoveMultiSpaces.html +1 -0
  97. data/test/resources/html/testRemoveMultiSpacesResult.html +1 -0
  98. data/test/resources/html/testRemoveQuotes.html +7 -0
  99. data/test/resources/html/testRemoveQuotesResult.html +1 -0
  100. data/test/resources/html/testRemoveScriptAttributes.html +6 -0
  101. data/test/resources/html/testRemoveScriptAttributesResult.html +1 -0
  102. data/test/resources/html/testRemoveSpacesInsideTags.html +1 -0
  103. data/test/resources/html/testRemoveSpacesInsideTagsResult.html +1 -0
  104. data/test/resources/html/testRemoveStyleAttributes.html +3 -0
  105. data/test/resources/html/testRemoveStyleAttributesResult.html +1 -0
  106. data/test/resources/html/testSimpleBooleanAttributes.html +1 -0
  107. data/test/resources/html/testSimpleBooleanAttributesResult.html +1 -0
  108. data/test/resources/html/testSimpleDoctype.html +2 -0
  109. data/test/resources/html/testSimpleDoctypeResult.html +1 -0
  110. data/test/resources/html/testSurroundingSpaces.html +1 -0
  111. data/test/resources/html/testSurroundingSpacesResult.html +1 -0
  112. data/test/resources/xml/.svn/all-wcprops +53 -0
  113. data/test/resources/xml/.svn/entries +300 -0
  114. data/test/resources/xml/.svn/text-base/testCompress.xml.svn-base +11 -0
  115. data/test/resources/xml/.svn/text-base/testCompressResult.xml.svn-base +5 -0
  116. data/test/resources/xml/.svn/text-base/testEnabled.xml.svn-base +1 -0
  117. data/test/resources/xml/.svn/text-base/testEnabledResult.xml.svn-base +1 -0
  118. data/test/resources/xml/.svn/text-base/testRemoveComments.xml.svn-base +5 -0
  119. data/test/resources/xml/.svn/text-base/testRemoveCommentsResult.xml.svn-base +4 -0
  120. data/test/resources/xml/.svn/text-base/testRemoveIntertagSpaces.xml.svn-base +11 -0
  121. data/test/resources/xml/.svn/text-base/testRemoveIntertagSpacesResult.xml.svn-base +5 -0
  122. data/test/resources/xml/testCompress.xml +11 -0
  123. data/test/resources/xml/testCompressResult.xml +5 -0
  124. data/test/resources/xml/testEnabled.xml +1 -0
  125. data/test/resources/xml/testEnabledResult.xml +1 -0
  126. data/test/resources/xml/testRemoveComments.xml +5 -0
  127. data/test/resources/xml/testRemoveCommentsResult.xml +4 -0
  128. data/test/resources/xml/testRemoveIntertagSpaces.xml +11 -0
  129. data/test/resources/xml/testRemoveIntertagSpacesResult.xml +5 -0
  130. metadata +332 -0
@@ -0,0 +1,54 @@
1
+ module HtmlCompressor
2
+
3
+ class Rack
4
+
5
+ def initialize app
6
+ @app = app
7
+
8
+ @compressor = HtmlCompressor::Compressor.new(
9
+ :enabled => true,
10
+ :remove_multi_spaces => true,
11
+ :remove_comments => true,
12
+ :remove_intertag_spaces => true,
13
+ :remove_quotes => true,
14
+ :compress_css => false,
15
+ :compress_javascript => false,
16
+ :simple_doctype => false,
17
+ :remove_script_attributes => true,
18
+ :remove_style_attributes => true,
19
+ :remove_link_attributes => true,
20
+ :remove_form_attributes => false,
21
+ :remove_input_attributes => true,
22
+ :remove_javascript_protocol => true,
23
+ :remove_http_protocol => true,
24
+ :remove_https_protocol => false,
25
+ :preserve_line_breaks => false,
26
+ :simple_boolean_attributes => true
27
+ )
28
+
29
+ end
30
+
31
+ def call env
32
+ status, headers, body = @app.call(env)
33
+
34
+ if headers.key? 'Content-Type' and headers['Content-Type'] =~ /html/
35
+ content = ''
36
+
37
+ body.each do |part|
38
+ content << part
39
+ end
40
+
41
+ content = @compressor.compress(content)
42
+ headers['Content-Length'] = content.length.to_s if headers['Content-Length']
43
+
44
+ [status, headers, [content]]
45
+ else
46
+ [status, headers, body]
47
+ end
48
+ ensure
49
+ body.close if body.respond_to?(:close)
50
+ end
51
+
52
+ end
53
+
54
+ end
@@ -0,0 +1,3 @@
1
+ module HtmlCompressor
2
+ VERSION = "0.0.2"
3
+ end
@@ -0,0 +1,254 @@
1
+ require 'htmlcompressor/compressor'
2
+ require 'minitest/autorun'
3
+ require 'closure-compiler'
4
+
5
+ module HtmlCompressor
6
+
7
+ class TestCompressor < MiniTest::Unit::TestCase
8
+
9
+ def test_enabled
10
+ source = read_resource("testEnabled.html")
11
+ result = read_resource("testEnabledResult.html")
12
+
13
+ compressor = Compressor.new(:enabled => false)
14
+
15
+ assert_equal result, compressor.compress(source)
16
+ end
17
+
18
+ def test_remove_spaces_inside_tags
19
+ source = read_resource("testRemoveSpacesInsideTags.html")
20
+ result = read_resource("testRemoveSpacesInsideTagsResult.html")
21
+
22
+ compressor = Compressor.new(:remove_multi_spaces => false)
23
+
24
+ assert_equal result, compressor.compress(source)
25
+ end
26
+
27
+ def test_remove_comments
28
+ source = read_resource("testRemoveComments.html")
29
+ result = read_resource("testRemoveCommentsResult.html")
30
+
31
+ compressor = Compressor.new(:remove_comments => true, :remove_intertag_spaces => true)
32
+
33
+ assert_equal result, compressor.compress(source)
34
+ end
35
+
36
+ def test_remove_quotes
37
+ source = read_resource("testRemoveQuotes.html")
38
+ result = read_resource("testRemoveQuotesResult.html")
39
+
40
+ compressor = Compressor.new(:remove_quotes => true)
41
+
42
+ assert_equal result, compressor.compress(source)
43
+ end
44
+
45
+ def test_remove_multi_spaces
46
+ source = read_resource("testRemoveMultiSpaces.html")
47
+ result = read_resource("testRemoveMultiSpacesResult.html")
48
+
49
+ compressor = Compressor.new(:remove_multi_spaces => true)
50
+
51
+ assert_equal result, compressor.compress(source)
52
+ end
53
+
54
+ def test_remove_intertag_spaces
55
+ source = read_resource("testRemoveIntertagSpaces.html")
56
+ result = read_resource("testRemoveIntertagSpacesResult.html")
57
+
58
+ compressor = Compressor.new(:remove_intertag_spaces => true)
59
+
60
+ assert_equal result, compressor.compress(source)
61
+ end
62
+
63
+ def test_preserve_patterns
64
+ source = read_resource("testPreservePatterns.html")
65
+ result = read_resource("testPreservePatternsResult.html")
66
+
67
+ preservePatterns = [
68
+ Compressor::PHP_TAG_PATTERN, # <?php ... ?> blocks
69
+ Compressor::SERVER_SCRIPT_TAG_PATTERN, # <% ... %> blocks
70
+ Compressor::SERVER_SIDE_INCLUDE_PATTERN, # <!--# ... --> blocks
71
+ Regexp.new("<jsp:.*?>", Regexp::MULTILINE | Regexp::IGNORECASE) # <jsp: ... > tags
72
+ ]
73
+
74
+ compressor = Compressor.new(
75
+ :preserve_patterns => preservePatterns,
76
+ :remove_comments => true,
77
+ :remove_intertag_spaces => true
78
+ )
79
+
80
+ assert_equal result, compressor.compress(source)
81
+ end
82
+
83
+ def test_compress_javascript_yui
84
+ source = read_resource("testCompressJavaScript.html");
85
+ result = read_resource("testCompressJavaScriptYuiResult.html");
86
+
87
+ compressor = Compressor.new(
88
+ :compress_javascript => true,
89
+ :remove_intertag_spaces => true
90
+ )
91
+
92
+ assert_equal result, compressor.compress(source)
93
+ end
94
+
95
+ def test_compress_java_script_closure
96
+ source = read_resource("testCompressJavaScript.html")
97
+ result = read_resource("testCompressJavaScriptClosureResult.html")
98
+
99
+ compressor = Compressor.new(
100
+ :compress_javascript => true,
101
+ :javascript_compressor => Closure::Compiler.new(:compilation_level => 'ADVANCED_OPTIMIZATIONS'),
102
+ :remove_intertag_spaces => true
103
+ )
104
+
105
+ assert_equal result, compressor.compress(source)
106
+ end
107
+
108
+ def test_compress_css
109
+ source = read_resource("testCompressCss.html")
110
+ result = read_resource("testCompressCssResult.html")
111
+
112
+ compressor = Compressor.new(
113
+ :compress_css => true,
114
+ :remove_intertag_spaces => true
115
+ )
116
+
117
+ assert_equal result, compressor.compress(source)
118
+ end
119
+
120
+ def test_compress
121
+ source = read_resource("testCompress.html")
122
+ result = read_resource("testCompressResult.html")
123
+
124
+ compressor = Compressor.new
125
+
126
+ assert_equal result, compressor.compress(source)
127
+ end
128
+
129
+ def test_simple_doctype
130
+ source = read_resource("testSimpleDoctype.html")
131
+ result = read_resource("testSimpleDoctypeResult.html")
132
+
133
+ compressor = Compressor.new(:simple_doctype => true)
134
+
135
+ assert_equal result, compressor.compress(source)
136
+ end
137
+
138
+ def test_remove_script_attributes
139
+ source = read_resource("testRemoveScriptAttributes.html")
140
+ result = read_resource("testRemoveScriptAttributesResult.html")
141
+
142
+ compressor = Compressor.new(:remove_script_attributes => true)
143
+
144
+ assert_equal result, compressor.compress(source)
145
+ end
146
+
147
+ def test_remove_style_attributes
148
+ source = read_resource("testRemoveStyleAttributes.html")
149
+ result = read_resource("testRemoveStyleAttributesResult.html")
150
+
151
+ compressor = Compressor.new(:remove_style_attributes => true)
152
+
153
+ assert_equal result, compressor.compress(source)
154
+ end
155
+
156
+ def test_remove_link_attributes
157
+ source = read_resource("testRemoveLinkAttributes.html")
158
+ result = read_resource("testRemoveLinkAttributesResult.html")
159
+
160
+ compressor = Compressor.new(:remove_link_attributes => true)
161
+
162
+ assert_equal result, compressor.compress(source)
163
+ end
164
+
165
+ def test_remove_form_attributes
166
+ source = read_resource("testRemoveFormAttributes.html")
167
+ result = read_resource("testRemoveFormAttributesResult.html")
168
+
169
+ compressor = Compressor.new(:remove_form_attributes => true)
170
+
171
+ assert_equal result, compressor.compress(source)
172
+ end
173
+
174
+ def test_remove_input_attributes
175
+ source = read_resource("testRemoveInputAttributes.html")
176
+ result = read_resource("testRemoveInputAttributesResult.html")
177
+
178
+ compressor = Compressor.new(:remove_input_attributes => true)
179
+
180
+ assert_equal result, compressor.compress(source)
181
+ end
182
+
183
+ def test_remove_javascript_protocol
184
+ source = read_resource("testRemoveJavaScriptProtocol.html")
185
+ result = read_resource("testRemoveJavaScriptProtocolResult.html")
186
+
187
+ compressor = Compressor.new(:remove_javascript_protocol => true)
188
+
189
+ assert_equal result, compressor.compress(source)
190
+ end
191
+
192
+ def test_remove_http_protocol
193
+ source = read_resource("testRemoveHttpProtocol.html")
194
+ result = read_resource("testRemoveHttpProtocolResult.html")
195
+
196
+ compressor = Compressor.new(:remove_http_protocol => true)
197
+
198
+ assert_equal result, compressor.compress(source)
199
+ end
200
+
201
+ def test_remove_https_protocol
202
+ source = read_resource("testRemoveHttpsProtocol.html")
203
+ result = read_resource("testRemoveHttpsProtocolResult.html")
204
+
205
+ compressor = Compressor.new(:remove_https_protocol => true)
206
+
207
+ assert_equal result, compressor.compress(source)
208
+ end
209
+
210
+ def test_preserve_line_breaks
211
+ source = read_resource("testPreserveLineBreaks.html")
212
+ result = read_resource("testPreserveLineBreaksResult.html")
213
+
214
+ compressor = Compressor.new(:preserve_line_breaks => true)
215
+
216
+ assert_equal result, compressor.compress(source)
217
+ end
218
+
219
+ def test_remove_surrounding_spaces
220
+ source = read_resource("testSurroundingSpaces.html")
221
+ result = read_resource("testSurroundingSpacesResult.html")
222
+
223
+ compressor = Compressor.new(
224
+ :remove_intertag_spaces => true,
225
+ :remove_surrounding_spaces => "p,br"
226
+ )
227
+
228
+ assert_equal result, compressor.compress(source)
229
+ end
230
+
231
+ def test_simple_boolean_attributes
232
+ source = read_resource("testSimpleBooleanAttributes.html")
233
+ result = read_resource("testSimpleBooleanAttributesResult.html")
234
+
235
+ compressor = Compressor.new(:simple_boolean_attributes => true)
236
+
237
+ assert_equal result, compressor.compress(source)
238
+ end
239
+
240
+ private
241
+
242
+ def resource_path
243
+ File.join File.expand_path(File.dirname(__FILE__)), 'resources', 'html'
244
+ end
245
+
246
+ def read_resource file
247
+ File.open File.join(resource_path, file), 'r' do |f|
248
+ return f.readlines.join('')
249
+ end
250
+ end
251
+
252
+ end
253
+
254
+ end
@@ -0,0 +1,275 @@
1
+ K 25
2
+ svn:wc:ra_dav:version-url
3
+ V 47
4
+ /svn/!svn/ver/182/trunk/src/test/resources/html
5
+ END
6
+ testPreservePatterns.html
7
+ K 25
8
+ svn:wc:ra_dav:version-url
9
+ V 73
10
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testPreservePatterns.html
11
+ END
12
+ testRemoveHttpProtocolResult.html
13
+ K 25
14
+ svn:wc:ra_dav:version-url
15
+ V 81
16
+ /svn/!svn/ver/167/trunk/src/test/resources/html/testRemoveHttpProtocolResult.html
17
+ END
18
+ testCompressJavaScriptClosureResult.html
19
+ K 25
20
+ svn:wc:ra_dav:version-url
21
+ V 88
22
+ /svn/!svn/ver/182/trunk/src/test/resources/html/testCompressJavaScriptClosureResult.html
23
+ END
24
+ testRemoveHttpProtocol.html
25
+ K 25
26
+ svn:wc:ra_dav:version-url
27
+ V 75
28
+ /svn/!svn/ver/167/trunk/src/test/resources/html/testRemoveHttpProtocol.html
29
+ END
30
+ testSimpleDoctypeResult.html
31
+ K 25
32
+ svn:wc:ra_dav:version-url
33
+ V 76
34
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testSimpleDoctypeResult.html
35
+ END
36
+ testSimpleDoctype.html
37
+ K 25
38
+ svn:wc:ra_dav:version-url
39
+ V 70
40
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testSimpleDoctype.html
41
+ END
42
+ testRemoveLinkAttributesResult.html
43
+ K 25
44
+ svn:wc:ra_dav:version-url
45
+ V 83
46
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveLinkAttributesResult.html
47
+ END
48
+ testCompressJavaScript.html
49
+ K 25
50
+ svn:wc:ra_dav:version-url
51
+ V 75
52
+ /svn/!svn/ver/182/trunk/src/test/resources/html/testCompressJavaScript.html
53
+ END
54
+ testRemoveLinkAttributes.html
55
+ K 25
56
+ svn:wc:ra_dav:version-url
57
+ V 77
58
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveLinkAttributes.html
59
+ END
60
+ testRemoveFormAttributesResult.html
61
+ K 25
62
+ svn:wc:ra_dav:version-url
63
+ V 83
64
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveFormAttributesResult.html
65
+ END
66
+ testRemoveFormAttributes.html
67
+ K 25
68
+ svn:wc:ra_dav:version-url
69
+ V 77
70
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveFormAttributes.html
71
+ END
72
+ testRemoveIntertagSpacesResult.html
73
+ K 25
74
+ svn:wc:ra_dav:version-url
75
+ V 83
76
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveIntertagSpacesResult.html
77
+ END
78
+ testEnabledResult.html
79
+ K 25
80
+ svn:wc:ra_dav:version-url
81
+ V 70
82
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testEnabledResult.html
83
+ END
84
+ testEnabled.html
85
+ K 25
86
+ svn:wc:ra_dav:version-url
87
+ V 64
88
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testEnabled.html
89
+ END
90
+ testRemoveIntertagSpaces.html
91
+ K 25
92
+ svn:wc:ra_dav:version-url
93
+ V 77
94
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveIntertagSpaces.html
95
+ END
96
+ testCompressResult.html
97
+ K 25
98
+ svn:wc:ra_dav:version-url
99
+ V 71
100
+ /svn/!svn/ver/160/trunk/src/test/resources/html/testCompressResult.html
101
+ END
102
+ testPreserveLineBreaksResult.html
103
+ K 25
104
+ svn:wc:ra_dav:version-url
105
+ V 81
106
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testPreserveLineBreaksResult.html
107
+ END
108
+ testCompress.html
109
+ K 25
110
+ svn:wc:ra_dav:version-url
111
+ V 65
112
+ /svn/!svn/ver/160/trunk/src/test/resources/html/testCompress.html
113
+ END
114
+ testPreserveLineBreaks.html
115
+ K 25
116
+ svn:wc:ra_dav:version-url
117
+ V 75
118
+ /svn/!svn/ver/162/trunk/src/test/resources/html/testPreserveLineBreaks.html
119
+ END
120
+ testSimpleBooleanAttributesResult.html
121
+ K 25
122
+ svn:wc:ra_dav:version-url
123
+ V 86
124
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testSimpleBooleanAttributesResult.html
125
+ END
126
+ testSimpleBooleanAttributes.html
127
+ K 25
128
+ svn:wc:ra_dav:version-url
129
+ V 80
130
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testSimpleBooleanAttributes.html
131
+ END
132
+ testRemoveHttpsProtocolResult.html
133
+ K 25
134
+ svn:wc:ra_dav:version-url
135
+ V 82
136
+ /svn/!svn/ver/167/trunk/src/test/resources/html/testRemoveHttpsProtocolResult.html
137
+ END
138
+ testRemoveCommentsResult.html
139
+ K 25
140
+ svn:wc:ra_dav:version-url
141
+ V 77
142
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveCommentsResult.html
143
+ END
144
+ testRemoveHttpsProtocol.html
145
+ K 25
146
+ svn:wc:ra_dav:version-url
147
+ V 76
148
+ /svn/!svn/ver/167/trunk/src/test/resources/html/testRemoveHttpsProtocol.html
149
+ END
150
+ testRemoveComments.html
151
+ K 25
152
+ svn:wc:ra_dav:version-url
153
+ V 71
154
+ /svn/!svn/ver/171/trunk/src/test/resources/html/testRemoveComments.html
155
+ END
156
+ testRemoveJavaScriptProtocolResult.html
157
+ K 25
158
+ svn:wc:ra_dav:version-url
159
+ V 87
160
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveJavaScriptProtocolResult.html
161
+ END
162
+ testRemoveJavaScriptProtocol.html
163
+ K 25
164
+ svn:wc:ra_dav:version-url
165
+ V 81
166
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveJavaScriptProtocol.html
167
+ END
168
+ testRemoveMultiSpacesResult.html
169
+ K 25
170
+ svn:wc:ra_dav:version-url
171
+ V 80
172
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveMultiSpacesResult.html
173
+ END
174
+ testRemoveMultiSpaces.html
175
+ K 25
176
+ svn:wc:ra_dav:version-url
177
+ V 74
178
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveMultiSpaces.html
179
+ END
180
+ testCompressJavaScriptYuiResult.html
181
+ K 25
182
+ svn:wc:ra_dav:version-url
183
+ V 84
184
+ /svn/!svn/ver/182/trunk/src/test/resources/html/testCompressJavaScriptYuiResult.html
185
+ END
186
+ testSurroundingSpacesResult.html
187
+ K 25
188
+ svn:wc:ra_dav:version-url
189
+ V 80
190
+ /svn/!svn/ver/175/trunk/src/test/resources/html/testSurroundingSpacesResult.html
191
+ END
192
+ testSurroundingSpaces.html
193
+ K 25
194
+ svn:wc:ra_dav:version-url
195
+ V 74
196
+ /svn/!svn/ver/175/trunk/src/test/resources/html/testSurroundingSpaces.html
197
+ END
198
+ testRemoveInputAttributesResult.html
199
+ K 25
200
+ svn:wc:ra_dav:version-url
201
+ V 84
202
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveInputAttributesResult.html
203
+ END
204
+ testRemoveInputAttributes.html
205
+ K 25
206
+ svn:wc:ra_dav:version-url
207
+ V 78
208
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveInputAttributes.html
209
+ END
210
+ testRemoveStyleAttributesResult.html
211
+ K 25
212
+ svn:wc:ra_dav:version-url
213
+ V 84
214
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveStyleAttributesResult.html
215
+ END
216
+ testRemoveStyleAttributes.html
217
+ K 25
218
+ svn:wc:ra_dav:version-url
219
+ V 78
220
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveStyleAttributes.html
221
+ END
222
+ testRemoveScriptAttributesResult.html
223
+ K 25
224
+ svn:wc:ra_dav:version-url
225
+ V 85
226
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveScriptAttributesResult.html
227
+ END
228
+ testRemoveScriptAttributes.html
229
+ K 25
230
+ svn:wc:ra_dav:version-url
231
+ V 79
232
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveScriptAttributes.html
233
+ END
234
+ testRemoveQuotesResult.html
235
+ K 25
236
+ svn:wc:ra_dav:version-url
237
+ V 75
238
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveQuotesResult.html
239
+ END
240
+ testRemoveQuotes.html
241
+ K 25
242
+ svn:wc:ra_dav:version-url
243
+ V 69
244
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testRemoveQuotes.html
245
+ END
246
+ testCompressCssResult.html
247
+ K 25
248
+ svn:wc:ra_dav:version-url
249
+ V 74
250
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testCompressCssResult.html
251
+ END
252
+ testCompressCss.html
253
+ K 25
254
+ svn:wc:ra_dav:version-url
255
+ V 68
256
+ /svn/!svn/ver/127/trunk/src/test/resources/html/testCompressCss.html
257
+ END
258
+ testRemoveSpacesInsideTagsResult.html
259
+ K 25
260
+ svn:wc:ra_dav:version-url
261
+ V 85
262
+ /svn/!svn/ver/182/trunk/src/test/resources/html/testRemoveSpacesInsideTagsResult.html
263
+ END
264
+ testRemoveSpacesInsideTags.html
265
+ K 25
266
+ svn:wc:ra_dav:version-url
267
+ V 79
268
+ /svn/!svn/ver/182/trunk/src/test/resources/html/testRemoveSpacesInsideTags.html
269
+ END
270
+ testPreservePatternsResult.html
271
+ K 25
272
+ svn:wc:ra_dav:version-url
273
+ V 79
274
+ /svn/!svn/ver/167/trunk/src/test/resources/html/testPreservePatternsResult.html
275
+ END