feedtools 0.2.26 → 0.2.27

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 (166) hide show
  1. data/CHANGELOG +232 -216
  2. data/db/migration.rb +2 -0
  3. data/db/schema.mysql.sql +2 -0
  4. data/db/schema.postgresql.sql +3 -1
  5. data/db/schema.sqlite.sql +3 -1
  6. data/lib/feed_tools.rb +37 -14
  7. data/lib/feed_tools/database_feed_cache.rb +13 -2
  8. data/lib/feed_tools/feed.rb +430 -104
  9. data/lib/feed_tools/feed_item.rb +533 -268
  10. data/lib/feed_tools/helpers/generic_helper.rb +1 -1
  11. data/lib/feed_tools/helpers/html_helper.rb +78 -116
  12. data/lib/feed_tools/helpers/retrieval_helper.rb +33 -3
  13. data/lib/feed_tools/helpers/uri_helper.rb +46 -54
  14. data/lib/feed_tools/monkey_patch.rb +27 -1
  15. data/lib/feed_tools/vendor/html5/History.txt +10 -0
  16. data/lib/feed_tools/vendor/html5/Manifest.txt +117 -0
  17. data/lib/feed_tools/vendor/html5/README +45 -0
  18. data/lib/feed_tools/vendor/html5/Rakefile.rb +33 -0
  19. data/lib/feed_tools/vendor/html5/bin/html5 +217 -0
  20. data/lib/feed_tools/vendor/html5/lib/core_ext/string.rb +17 -0
  21. data/lib/feed_tools/vendor/html5/lib/html5.rb +13 -0
  22. data/lib/feed_tools/vendor/html5/lib/html5/constants.rb +1046 -0
  23. data/lib/feed_tools/vendor/html5/lib/html5/filters/base.rb +10 -0
  24. data/lib/feed_tools/vendor/html5/lib/html5/filters/inject_meta_charset.rb +82 -0
  25. data/lib/feed_tools/vendor/html5/lib/html5/filters/iso639codes.rb +752 -0
  26. data/lib/feed_tools/vendor/html5/lib/html5/filters/optionaltags.rb +198 -0
  27. data/lib/feed_tools/vendor/html5/lib/html5/filters/rfc2046.rb +30 -0
  28. data/lib/feed_tools/vendor/html5/lib/html5/filters/rfc3987.rb +89 -0
  29. data/lib/feed_tools/vendor/html5/lib/html5/filters/sanitizer.rb +15 -0
  30. data/lib/feed_tools/vendor/html5/lib/html5/filters/validator.rb +830 -0
  31. data/lib/feed_tools/vendor/html5/lib/html5/filters/whitespace.rb +36 -0
  32. data/lib/feed_tools/vendor/html5/lib/html5/html5parser.rb +248 -0
  33. data/lib/feed_tools/vendor/html5/lib/html5/html5parser/after_body_phase.rb +46 -0
  34. data/lib/feed_tools/vendor/html5/lib/html5/html5parser/after_frameset_phase.rb +33 -0
  35. data/lib/feed_tools/vendor/html5/lib/html5/html5parser/after_head_phase.rb +50 -0
  36. data/lib/feed_tools/vendor/html5/lib/html5/html5parser/before_head_phase.rb +41 -0
  37. data/lib/feed_tools/vendor/html5/lib/html5/html5parser/in_body_phase.rb +613 -0
  38. data/lib/feed_tools/vendor/html5/lib/html5/html5parser/in_caption_phase.rb +69 -0
  39. data/lib/feed_tools/vendor/html5/lib/html5/html5parser/in_cell_phase.rb +78 -0
  40. data/lib/feed_tools/vendor/html5/lib/html5/html5parser/in_column_group_phase.rb +55 -0
  41. data/lib/feed_tools/vendor/html5/lib/html5/html5parser/in_frameset_phase.rb +57 -0
  42. data/lib/feed_tools/vendor/html5/lib/html5/html5parser/in_head_phase.rb +138 -0
  43. data/lib/feed_tools/vendor/html5/lib/html5/html5parser/in_row_phase.rb +89 -0
  44. data/lib/feed_tools/vendor/html5/lib/html5/html5parser/in_select_phase.rb +85 -0
  45. data/lib/feed_tools/vendor/html5/lib/html5/html5parser/in_table_body_phase.rb +86 -0
  46. data/lib/feed_tools/vendor/html5/lib/html5/html5parser/in_table_phase.rb +115 -0
  47. data/lib/feed_tools/vendor/html5/lib/html5/html5parser/initial_phase.rb +133 -0
  48. data/lib/feed_tools/vendor/html5/lib/html5/html5parser/phase.rb +154 -0
  49. data/lib/feed_tools/vendor/html5/lib/html5/html5parser/root_element_phase.rb +41 -0
  50. data/lib/feed_tools/vendor/html5/lib/html5/html5parser/trailing_end_phase.rb +35 -0
  51. data/lib/feed_tools/vendor/html5/lib/html5/inputstream.rb +648 -0
  52. data/lib/feed_tools/vendor/html5/lib/html5/liberalxmlparser.rb +158 -0
  53. data/lib/feed_tools/vendor/html5/lib/html5/sanitizer.rb +188 -0
  54. data/lib/feed_tools/vendor/html5/lib/html5/serializer.rb +2 -0
  55. data/lib/feed_tools/vendor/html5/lib/html5/serializer/htmlserializer.rb +179 -0
  56. data/lib/feed_tools/vendor/html5/lib/html5/serializer/xhtmlserializer.rb +20 -0
  57. data/lib/feed_tools/vendor/html5/lib/html5/sniffer.rb +45 -0
  58. data/lib/feed_tools/vendor/html5/lib/html5/tokenizer.rb +966 -0
  59. data/lib/feed_tools/vendor/html5/lib/html5/treebuilders.rb +24 -0
  60. data/lib/feed_tools/vendor/html5/lib/html5/treebuilders/base.rb +334 -0
  61. data/lib/feed_tools/vendor/html5/lib/html5/treebuilders/hpricot.rb +231 -0
  62. data/lib/feed_tools/vendor/html5/lib/html5/treebuilders/rexml.rb +209 -0
  63. data/lib/feed_tools/vendor/html5/lib/html5/treebuilders/simpletree.rb +185 -0
  64. data/lib/feed_tools/vendor/html5/lib/html5/treewalkers.rb +26 -0
  65. data/lib/feed_tools/vendor/html5/lib/html5/treewalkers/base.rb +162 -0
  66. data/lib/feed_tools/vendor/html5/lib/html5/treewalkers/hpricot.rb +48 -0
  67. data/lib/feed_tools/vendor/html5/lib/html5/treewalkers/rexml.rb +48 -0
  68. data/lib/feed_tools/vendor/html5/lib/html5/treewalkers/simpletree.rb +48 -0
  69. data/lib/feed_tools/vendor/html5/lib/html5/version.rb +3 -0
  70. data/lib/feed_tools/vendor/html5/testdata/encoding/chardet/test_big5.txt +51 -0
  71. data/lib/feed_tools/vendor/html5/testdata/encoding/test-yahoo-jp.dat +10 -0
  72. data/lib/feed_tools/vendor/html5/testdata/encoding/tests1.dat +394 -0
  73. data/lib/feed_tools/vendor/html5/testdata/encoding/tests2.dat +81 -0
  74. data/lib/feed_tools/vendor/html5/testdata/sanitizer/tests1.dat +416 -0
  75. data/lib/feed_tools/vendor/html5/testdata/serializer/core.test +104 -0
  76. data/lib/feed_tools/vendor/html5/testdata/serializer/injectmeta.test +65 -0
  77. data/lib/feed_tools/vendor/html5/testdata/serializer/optionaltags.test +900 -0
  78. data/lib/feed_tools/vendor/html5/testdata/serializer/options.test +60 -0
  79. data/lib/feed_tools/vendor/html5/testdata/serializer/whitespace.test +51 -0
  80. data/lib/feed_tools/vendor/html5/testdata/sites/google-results.htm +1 -0
  81. data/lib/feed_tools/vendor/html5/testdata/sites/python-ref-import.htm +1 -0
  82. data/lib/feed_tools/vendor/html5/testdata/sites/web-apps-old.htm +1 -0
  83. data/lib/feed_tools/vendor/html5/testdata/sites/web-apps.htm +34275 -0
  84. data/lib/feed_tools/vendor/html5/testdata/sniffer/htmlOrFeed.json +43 -0
  85. data/lib/feed_tools/vendor/html5/testdata/tokenizer/contentModelFlags.test +48 -0
  86. data/lib/feed_tools/vendor/html5/testdata/tokenizer/entities.test +2339 -0
  87. data/lib/feed_tools/vendor/html5/testdata/tokenizer/escapeFlag.test +21 -0
  88. data/lib/feed_tools/vendor/html5/testdata/tokenizer/test1.test +172 -0
  89. data/lib/feed_tools/vendor/html5/testdata/tokenizer/test2.test +129 -0
  90. data/lib/feed_tools/vendor/html5/testdata/tokenizer/test3.test +367 -0
  91. data/lib/feed_tools/vendor/html5/testdata/tokenizer/test4.test +198 -0
  92. data/lib/feed_tools/vendor/html5/testdata/tree-construction/tests1.dat +1950 -0
  93. data/lib/feed_tools/vendor/html5/testdata/tree-construction/tests2.dat +773 -0
  94. data/lib/feed_tools/vendor/html5/testdata/tree-construction/tests3.dat +270 -0
  95. data/lib/feed_tools/vendor/html5/testdata/tree-construction/tests4.dat +60 -0
  96. data/lib/feed_tools/vendor/html5/testdata/tree-construction/tests5.dat +175 -0
  97. data/lib/feed_tools/vendor/html5/testdata/tree-construction/tests6.dat +196 -0
  98. data/lib/feed_tools/vendor/html5/testdata/validator/attributes.test +1035 -0
  99. data/lib/feed_tools/vendor/html5/testdata/validator/base-href-attribute.test +787 -0
  100. data/lib/feed_tools/vendor/html5/testdata/validator/base-target-attribute.test +35 -0
  101. data/lib/feed_tools/vendor/html5/testdata/validator/blockquote-cite-attribute.test +7 -0
  102. data/lib/feed_tools/vendor/html5/testdata/validator/classattribute.test +152 -0
  103. data/lib/feed_tools/vendor/html5/testdata/validator/contenteditableattribute.test +59 -0
  104. data/lib/feed_tools/vendor/html5/testdata/validator/contextmenuattribute.test +115 -0
  105. data/lib/feed_tools/vendor/html5/testdata/validator/dirattribute.test +59 -0
  106. data/lib/feed_tools/vendor/html5/testdata/validator/draggableattribute.test +63 -0
  107. data/lib/feed_tools/vendor/html5/testdata/validator/html-xmlns-attribute.test +23 -0
  108. data/lib/feed_tools/vendor/html5/testdata/validator/idattribute.test +115 -0
  109. data/lib/feed_tools/vendor/html5/testdata/validator/inputattributes.test +2795 -0
  110. data/lib/feed_tools/vendor/html5/testdata/validator/irrelevantattribute.test +63 -0
  111. data/lib/feed_tools/vendor/html5/testdata/validator/langattribute.test +5579 -0
  112. data/lib/feed_tools/vendor/html5/testdata/validator/li-value-attribute.test +7 -0
  113. data/lib/feed_tools/vendor/html5/testdata/validator/link-href-attribute.test +7 -0
  114. data/lib/feed_tools/vendor/html5/testdata/validator/link-hreflang-attribute.test +7 -0
  115. data/lib/feed_tools/vendor/html5/testdata/validator/link-rel-attribute.test +271 -0
  116. data/lib/feed_tools/vendor/html5/testdata/validator/ol-start-attribute.test +7 -0
  117. data/lib/feed_tools/vendor/html5/testdata/validator/starttags.test +375 -0
  118. data/lib/feed_tools/vendor/html5/testdata/validator/style-scoped-attribute.test +7 -0
  119. data/lib/feed_tools/vendor/html5/testdata/validator/tabindexattribute.test +79 -0
  120. data/lib/feed_tools/vendor/html5/tests/preamble.rb +72 -0
  121. data/lib/feed_tools/vendor/html5/tests/test_encoding.rb +35 -0
  122. data/lib/feed_tools/vendor/html5/tests/test_lxp.rb +279 -0
  123. data/lib/feed_tools/vendor/html5/tests/test_parser.rb +68 -0
  124. data/lib/feed_tools/vendor/html5/tests/test_sanitizer.rb +142 -0
  125. data/lib/feed_tools/vendor/html5/tests/test_serializer.rb +68 -0
  126. data/lib/feed_tools/vendor/html5/tests/test_sniffer.rb +27 -0
  127. data/lib/feed_tools/vendor/html5/tests/test_stream.rb +62 -0
  128. data/lib/feed_tools/vendor/html5/tests/test_tokenizer.rb +94 -0
  129. data/lib/feed_tools/vendor/html5/tests/test_treewalkers.rb +135 -0
  130. data/lib/feed_tools/vendor/html5/tests/test_validator.rb +31 -0
  131. data/lib/feed_tools/vendor/html5/tests/tokenizer_test_parser.rb +63 -0
  132. data/lib/feed_tools/vendor/uri.rb +781 -0
  133. data/lib/feed_tools/version.rb +1 -1
  134. data/rakefile +27 -6
  135. data/test/unit/atom_test.rb +298 -210
  136. data/test/unit/helper_test.rb +7 -12
  137. data/test/unit/rdf_test.rb +51 -1
  138. data/test/unit/rss_test.rb +13 -3
  139. metadata +239 -116
  140. data/lib/feed_tools/vendor/htree.rb +0 -97
  141. data/lib/feed_tools/vendor/htree/container.rb +0 -10
  142. data/lib/feed_tools/vendor/htree/context.rb +0 -67
  143. data/lib/feed_tools/vendor/htree/display.rb +0 -27
  144. data/lib/feed_tools/vendor/htree/doc.rb +0 -149
  145. data/lib/feed_tools/vendor/htree/elem.rb +0 -262
  146. data/lib/feed_tools/vendor/htree/encoder.rb +0 -163
  147. data/lib/feed_tools/vendor/htree/equality.rb +0 -218
  148. data/lib/feed_tools/vendor/htree/extract_text.rb +0 -37
  149. data/lib/feed_tools/vendor/htree/fstr.rb +0 -33
  150. data/lib/feed_tools/vendor/htree/gencode.rb +0 -97
  151. data/lib/feed_tools/vendor/htree/htmlinfo.rb +0 -672
  152. data/lib/feed_tools/vendor/htree/inspect.rb +0 -108
  153. data/lib/feed_tools/vendor/htree/leaf.rb +0 -94
  154. data/lib/feed_tools/vendor/htree/loc.rb +0 -367
  155. data/lib/feed_tools/vendor/htree/modules.rb +0 -48
  156. data/lib/feed_tools/vendor/htree/name.rb +0 -124
  157. data/lib/feed_tools/vendor/htree/output.rb +0 -207
  158. data/lib/feed_tools/vendor/htree/parse.rb +0 -409
  159. data/lib/feed_tools/vendor/htree/raw_string.rb +0 -124
  160. data/lib/feed_tools/vendor/htree/regexp-util.rb +0 -15
  161. data/lib/feed_tools/vendor/htree/rexml.rb +0 -130
  162. data/lib/feed_tools/vendor/htree/scan.rb +0 -166
  163. data/lib/feed_tools/vendor/htree/tag.rb +0 -111
  164. data/lib/feed_tools/vendor/htree/template.rb +0 -909
  165. data/lib/feed_tools/vendor/htree/text.rb +0 -115
  166. data/lib/feed_tools/vendor/htree/traverse.rb +0 -465
@@ -0,0 +1,787 @@
1
+ {"tests": [
2
+
3
+ {"description": "base href contains invalid URI due to leading space",
4
+ "input": "<base href=' http://www.example.com/'",
5
+ "fail-unless": "invalid-uri-char"},
6
+
7
+ {"description": "base href contains invalid URI due to trailing space",
8
+ "input": "<base href='http://www.example.com/ '",
9
+ "fail-unless": "invalid-uri-char"},
10
+
11
+ {"description": "base href contains invalid URI due to space in scheme",
12
+ "input": "<base href='ht tp://www.example.com/'",
13
+ "fail-unless": "invalid-uri-char"},
14
+
15
+ {"description": "base href contains invalid URI due to space in domain",
16
+ "input": "<base href='http://www.example. com/'",
17
+ "fail-unless": "invalid-uri-char"},
18
+
19
+ {"description": "base href contains invalid URI due to space in path",
20
+ "input": "<base href='http://www.example.com/a b'",
21
+ "fail-unless": "invalid-uri-char"},
22
+
23
+ {"description": "base href contains invalid URI due to space in fragment",
24
+ "input": "<base href='http://www.example.com/a#b c'",
25
+ "fail-unless": "invalid-uri-char"},
26
+
27
+ {"description": "base href contains invalid URI due to space in query",
28
+ "input": "<base href='http://www.example.com/a?b c'",
29
+ "fail-unless": "invalid-uri-char"},
30
+
31
+ {"description": "base href contains invalid URI due to leading tab",
32
+ "input": "<base href='\thttp://www.example.com/'",
33
+ "fail-unless": "invalid-uri-char"},
34
+
35
+ {"description": "base href contains invalid URI due to trailing tab",
36
+ "input": "<base href='http://www.example.com/\t'",
37
+ "fail-unless": "invalid-uri-char"},
38
+
39
+ {"description": "base href contains invalid URI due to tab in scheme",
40
+ "input": "<base href='ht\ttp://www.example.com/'",
41
+ "fail-unless": "invalid-uri-char"},
42
+
43
+ {"description": "base href contains invalid URI due to tab in domain",
44
+ "input": "<base href='http://www.example.\tcom/'",
45
+ "fail-unless": "invalid-uri-char"},
46
+
47
+ {"description": "base href contains invalid URI due to tab in path",
48
+ "input": "<base href='http://www.example.com/a\tb'",
49
+ "fail-unless": "invalid-uri-char"},
50
+
51
+ {"description": "base href contains invalid URI due to tab in fragment",
52
+ "input": "<base href='http://www.example.com/a#b\tc'",
53
+ "fail-unless": "invalid-uri-char"},
54
+
55
+ {"description": "base href contains invalid URI due to tab in query",
56
+ "input": "<base href='http://www.example.com/a?b\tc'",
57
+ "fail-unless": "invalid-uri-char"},
58
+
59
+ {"description": "base href contains invalid URI due to leading LF",
60
+ "input": "<base href='\nhttp://www.example.com/'",
61
+ "fail-unless": "invalid-uri-char"},
62
+
63
+ {"description": "base href contains invalid URI due to LF in scheme",
64
+ "input": "<base href='ht\ntp://www.example.com/'",
65
+ "fail-unless": "invalid-uri-char"},
66
+
67
+ {"description": "base href contains invalid URI due to LF in domain",
68
+ "input": "<base href='http://www.example.\ncom/'",
69
+ "fail-unless": "invalid-uri-char"},
70
+
71
+ {"description": "base href contains invalid URI due to LF in path",
72
+ "input": "<base href='http://www.example.com/a\nb'",
73
+ "fail-unless": "invalid-uri-char"},
74
+
75
+ {"description": "base href contains invalid URI due to LF in fragment",
76
+ "input": "<base href='http://www.example.com/a#b\nc'",
77
+ "fail-unless": "invalid-uri-char"},
78
+
79
+ {"description": "base href contains invalid URI due to LF in query",
80
+ "input": "<base href='http://www.example.com/a?b\nc'",
81
+ "fail-unless": "invalid-uri-char"},
82
+
83
+ {"description": "base href contains invalid URI due to leading LT",
84
+ "input": "<base href='\u000Bhttp://www.example.com/'",
85
+ "fail-unless": "invalid-uri-char"},
86
+
87
+ {"description": "base href contains invalid URI due to trailing LT",
88
+ "input": "<base href='http://www.example.com/\u000B'",
89
+ "fail-unless": "invalid-uri-char"},
90
+
91
+ {"description": "base href contains invalid URI due to LT in scheme",
92
+ "input": "<base href='ht\u000Btp://www.example.com/'",
93
+ "fail-unless": "invalid-uri-char"},
94
+
95
+ {"description": "base href contains invalid URI due to LT in domain",
96
+ "input": "<base href='http://www.example.\u000Bcom/'",
97
+ "fail-unless": "invalid-uri-char"},
98
+
99
+ {"description": "base href contains invalid URI due to LT in path",
100
+ "input": "<base href='http://www.example.com/a\u000Bb'",
101
+ "fail-unless": "invalid-uri-char"},
102
+
103
+ {"description": "base href contains invalid URI due to LT in fragment",
104
+ "input": "<base href='http://www.example.com/a#b\u000Bc'",
105
+ "fail-unless": "invalid-uri-char"},
106
+
107
+ {"description": "base href contains invalid URI due to LT in query",
108
+ "input": "<base href='http://www.example.com/a?b\u000Bc'",
109
+ "fail-unless": "invalid-uri-char"},
110
+
111
+ {"description": "base href contains invalid URI due to leading FF",
112
+ "input": "<base href='\u000Chttp://www.example.com/'",
113
+ "fail-unless": "invalid-uri-char"},
114
+
115
+ {"description": "base href contains invalid URI due to trailing FF",
116
+ "input": "<base href='http://www.example.com/\u000C'",
117
+ "fail-unless": "invalid-uri-char"},
118
+
119
+ {"description": "base href contains invalid URI due to FF in scheme",
120
+ "input": "<base href='ht\u000Ctp://www.example.com/'",
121
+ "fail-unless": "invalid-uri-char"},
122
+
123
+ {"description": "base href contains invalid URI due to FF in domain",
124
+ "input": "<base href='http://www.example.\u000Ccom/'",
125
+ "fail-unless": "invalid-uri-char"},
126
+
127
+ {"description": "base href contains invalid URI due to FF in path",
128
+ "input": "<base href='http://www.example.com/a\u000Cb'",
129
+ "fail-unless": "invalid-uri-char"},
130
+
131
+ {"description": "base href contains invalid URI due to FF in fragment",
132
+ "input": "<base href='http://www.example.com/a#b\u000Cc'",
133
+ "fail-unless": "invalid-uri-char"},
134
+
135
+ {"description": "base href contains invalid URI due to FF in query",
136
+ "input": "<base href='http://www.example.com/a?b\u000Cc'",
137
+ "fail-unless": "invalid-uri-char"},
138
+
139
+ {"description": "base href contains invalid URI due to leading CR",
140
+ "input": "<base href='\rhttp://www.example.com/'",
141
+ "fail-unless": "invalid-uri-char"},
142
+
143
+ {"description": "base href contains invalid URI due to CR in scheme",
144
+ "input": "<base href='ht\rtp://www.example.com/'",
145
+ "fail-unless": "invalid-uri-char"},
146
+
147
+ {"description": "base href contains invalid URI due to CR in domain",
148
+ "input": "<base href='http://www.example.\rcom/'",
149
+ "fail-unless": "invalid-uri-char"},
150
+
151
+ {"description": "base href contains invalid URI due to CR in path",
152
+ "input": "<base href='http://www.example.com/a\rb'",
153
+ "fail-unless": "invalid-uri-char"},
154
+
155
+ {"description": "base href contains invalid URI due to CR in fragment",
156
+ "input": "<base href='http://www.example.com/a#b\rc'",
157
+ "fail-unless": "invalid-uri-char"},
158
+
159
+ {"description": "base href contains invalid URI due to CR in query",
160
+ "input": "<base href='http://www.example.com/a?b\rc'",
161
+ "fail-unless": "invalid-uri-char"},
162
+
163
+ {"description": "base href contains valid URI scheme 'ftp'",
164
+ "input": "<base href='ftp://foo'",
165
+ "fail-if": "invalid-scheme"},
166
+
167
+ {"description": "base href contains valid URI scheme 'http'",
168
+ "input": "<base href='http://foo'",
169
+ "fail-if": "invalid-scheme"},
170
+
171
+ {"description": "base href contains valid URI scheme 'gopher'",
172
+ "input": "<base href='gopher://foo'",
173
+ "fail-if": "invalid-scheme"},
174
+
175
+ {"description": "base href contains valid URI scheme 'mailto'",
176
+ "input": "<base href='mailto://foo'",
177
+ "fail-if": "invalid-scheme"},
178
+
179
+ {"description": "base href contains valid URI scheme 'news'",
180
+ "input": "<base href='news://foo'",
181
+ "fail-if": "invalid-scheme"},
182
+
183
+ {"description": "base href contains valid URI scheme 'nntp'",
184
+ "input": "<base href='nntp://foo'",
185
+ "fail-if": "invalid-scheme"},
186
+
187
+ {"description": "base href contains valid URI scheme 'telnet'",
188
+ "input": "<base href='telnet://foo'",
189
+ "fail-if": "invalid-scheme"},
190
+
191
+ {"description": "base href contains valid URI scheme 'wais'",
192
+ "input": "<base href='wais://foo'",
193
+ "fail-if": "invalid-scheme"},
194
+
195
+ {"description": "base href contains valid URI scheme 'file'",
196
+ "input": "<base href='file://foo'",
197
+ "fail-if": "invalid-scheme"},
198
+
199
+ {"description": "base href contains valid URI scheme 'prospero'",
200
+ "input": "<base href='prospero://foo'",
201
+ "fail-if": "invalid-scheme"},
202
+
203
+ {"description": "base href contains valid URI scheme 'z39.50s'",
204
+ "input": "<base href='z39.50s://foo'",
205
+ "fail-if": "invalid-scheme"},
206
+
207
+ {"description": "base href contains valid URI scheme 'z39.50r'",
208
+ "input": "<base href='z39.50r://foo'",
209
+ "fail-if": "invalid-scheme"},
210
+
211
+ {"description": "base href contains valid URI scheme 'cid'",
212
+ "input": "<base href='cid://foo'",
213
+ "fail-if": "invalid-scheme"},
214
+
215
+ {"description": "base href contains valid URI scheme 'mid'",
216
+ "input": "<base href='mid://foo'",
217
+ "fail-if": "invalid-scheme"},
218
+
219
+ {"description": "base href contains valid URI scheme 'vemmi'",
220
+ "input": "<base href='vemmi://foo'",
221
+ "fail-if": "invalid-scheme"},
222
+
223
+ {"description": "base href contains valid URI scheme 'service'",
224
+ "input": "<base href='service://foo'",
225
+ "fail-if": "invalid-scheme"},
226
+
227
+ {"description": "base href contains valid URI scheme 'imap'",
228
+ "input": "<base href='imap://foo'",
229
+ "fail-if": "invalid-scheme"},
230
+
231
+ {"description": "base href contains valid URI scheme 'nfs'",
232
+ "input": "<base href='nfs://foo'",
233
+ "fail-if": "invalid-scheme"},
234
+
235
+ {"description": "base href contains valid URI scheme 'acap'",
236
+ "input": "<base href='acap://foo'",
237
+ "fail-if": "invalid-scheme"},
238
+
239
+ {"description": "base href contains valid URI scheme 'rtsp'",
240
+ "input": "<base href='rtsp://foo'",
241
+ "fail-if": "invalid-scheme"},
242
+
243
+ {"description": "base href contains valid URI scheme 'tip'",
244
+ "input": "<base href='tip://foo'",
245
+ "fail-if": "invalid-scheme"},
246
+
247
+ {"description": "base href contains valid URI scheme 'pop'",
248
+ "input": "<base href='pop://foo'",
249
+ "fail-if": "invalid-scheme"},
250
+
251
+ {"description": "base href contains valid URI scheme 'data'",
252
+ "input": "<base href='data://foo'",
253
+ "fail-if": "invalid-scheme"},
254
+
255
+ {"description": "base href contains valid URI scheme 'dav'",
256
+ "input": "<base href='dav://foo'",
257
+ "fail-if": "invalid-scheme"},
258
+
259
+ {"description": "base href contains valid URI scheme 'opaquelocktoken'",
260
+ "input": "<base href='opaquelocktoken://foo'",
261
+ "fail-if": "invalid-scheme"},
262
+
263
+ {"description": "base href contains valid URI scheme 'sip'",
264
+ "input": "<base href='sip://foo'",
265
+ "fail-if": "invalid-scheme"},
266
+
267
+ {"description": "base href contains valid URI scheme 'sips'",
268
+ "input": "<base href='sips://foo'",
269
+ "fail-if": "invalid-scheme"},
270
+
271
+ {"description": "base href contains valid URI scheme 'tel'",
272
+ "input": "<base href='tel://foo'",
273
+ "fail-if": "invalid-scheme"},
274
+
275
+ {"description": "base href contains valid URI scheme 'fax'",
276
+ "input": "<base href='fax://foo'",
277
+ "fail-if": "invalid-scheme"},
278
+
279
+ {"description": "base href contains valid URI scheme 'modem'",
280
+ "input": "<base href='modem://foo'",
281
+ "fail-if": "invalid-scheme"},
282
+
283
+ {"description": "base href contains valid URI scheme 'ldap'",
284
+ "input": "<base href='ldap://foo'",
285
+ "fail-if": "invalid-scheme"},
286
+
287
+ {"description": "base href contains valid URI scheme 'https'",
288
+ "input": "<base href='https://foo'",
289
+ "fail-if": "invalid-scheme"},
290
+
291
+ {"description": "base href contains valid URI scheme 'soap.beep'",
292
+ "input": "<base href='soap.beep://foo'",
293
+ "fail-if": "invalid-scheme"},
294
+
295
+ {"description": "base href contains valid URI scheme 'soap.beeps'",
296
+ "input": "<base href='soap.beeps://foo'",
297
+ "fail-if": "invalid-scheme"},
298
+
299
+ {"description": "base href contains valid URI scheme 'xmlrpc.beep'",
300
+ "input": "<base href='xmlrpc.beep://foo'",
301
+ "fail-if": "invalid-scheme"},
302
+
303
+ {"description": "base href contains valid URI scheme 'xmlrpc.beeps'",
304
+ "input": "<base href='xmlrpc.beeps://foo'",
305
+ "fail-if": "invalid-scheme"},
306
+
307
+ {"description": "base href contains valid URI scheme 'urn'",
308
+ "input": "<base href='urn://foo'",
309
+ "fail-if": "invalid-scheme"},
310
+
311
+ {"description": "base href contains valid URI scheme 'go'",
312
+ "input": "<base href='go://foo'",
313
+ "fail-if": "invalid-scheme"},
314
+
315
+ {"description": "base href contains valid URI scheme 'h323'",
316
+ "input": "<base href='h323://foo'",
317
+ "fail-if": "invalid-scheme"},
318
+
319
+ {"description": "base href contains valid URI scheme 'ipp'",
320
+ "input": "<base href='ipp://foo'",
321
+ "fail-if": "invalid-scheme"},
322
+
323
+ {"description": "base href contains valid URI scheme 'tftp'",
324
+ "input": "<base href='tftp://foo'",
325
+ "fail-if": "invalid-scheme"},
326
+
327
+ {"description": "base href contains valid URI scheme 'mupdate'",
328
+ "input": "<base href='mupdate://foo'",
329
+ "fail-if": "invalid-scheme"},
330
+
331
+ {"description": "base href contains valid URI scheme 'pres'",
332
+ "input": "<base href='pres://foo'",
333
+ "fail-if": "invalid-scheme"},
334
+
335
+ {"description": "base href contains valid URI scheme 'im'",
336
+ "input": "<base href='im://foo'",
337
+ "fail-if": "invalid-scheme"},
338
+
339
+ {"description": "base href contains valid URI scheme 'mtqp'",
340
+ "input": "<base href='mtqp://foo'",
341
+ "fail-if": "invalid-scheme"},
342
+
343
+ {"description": "base href contains valid URI scheme 'iris.beep'",
344
+ "input": "<base href='iris.beep://foo'",
345
+ "fail-if": "invalid-scheme"},
346
+
347
+ {"description": "base href contains valid URI scheme 'dict'",
348
+ "input": "<base href='dict://foo'",
349
+ "fail-if": "invalid-scheme"},
350
+
351
+ {"description": "base href contains valid URI scheme 'snmp'",
352
+ "input": "<base href='snmp://foo'",
353
+ "fail-if": "invalid-scheme"},
354
+
355
+ {"description": "base href contains valid URI scheme 'crid'",
356
+ "input": "<base href='crid://foo'",
357
+ "fail-if": "invalid-scheme"},
358
+
359
+ {"description": "base href contains valid URI scheme 'tag'",
360
+ "input": "<base href='tag://foo'",
361
+ "fail-if": "invalid-scheme"},
362
+
363
+ {"description": "base href contains valid URI scheme 'dns'",
364
+ "input": "<base href='dns://foo'",
365
+ "fail-if": "invalid-scheme"},
366
+
367
+ {"description": "base href contains valid URI scheme 'info'",
368
+ "input": "<base href='info://foo'",
369
+ "fail-if": "invalid-scheme"},
370
+
371
+ {"description": "base href contains valid URI scheme 'javascript'",
372
+ "input": "<base href='javascript:foo'",
373
+ "fail-if": "invalid-scheme"},
374
+
375
+ {"description": "base href contains valid URI scheme 'FTP'",
376
+ "input": "<base href='FTP://foo'",
377
+ "fail-if": "invalid-scheme"},
378
+
379
+ {"description": "base href contains valid URI scheme 'HTTP'",
380
+ "input": "<base href='HTTP://foo'",
381
+ "fail-if": "invalid-scheme"},
382
+
383
+ {"description": "base href contains valid URI scheme 'GOPHER'",
384
+ "input": "<base href='GOPHER://foo'",
385
+ "fail-if": "invalid-scheme"},
386
+
387
+ {"description": "base href contains valid URI scheme 'MAILTO'",
388
+ "input": "<base href='MAILTO://foo'",
389
+ "fail-if": "invalid-scheme"},
390
+
391
+ {"description": "base href contains valid URI scheme 'NEWS'",
392
+ "input": "<base href='NEWS://foo'",
393
+ "fail-if": "invalid-scheme"},
394
+
395
+ {"description": "base href contains valid URI scheme 'NNTP'",
396
+ "input": "<base href='NNTP://foo'",
397
+ "fail-if": "invalid-scheme"},
398
+
399
+ {"description": "base href contains valid URI scheme 'TELNET'",
400
+ "input": "<base href='TELNET://foo'",
401
+ "fail-if": "invalid-scheme"},
402
+
403
+ {"description": "base href contains valid URI scheme 'WAIS'",
404
+ "input": "<base href='WAIS://foo'",
405
+ "fail-if": "invalid-scheme"},
406
+
407
+ {"description": "base href contains valid URI scheme 'FILE'",
408
+ "input": "<base href='FILE://foo'",
409
+ "fail-if": "invalid-scheme"},
410
+
411
+ {"description": "base href contains valid URI scheme 'PROSPERO'",
412
+ "input": "<base href='PROSPERO://foo'",
413
+ "fail-if": "invalid-scheme"},
414
+
415
+ {"description": "base href contains valid URI scheme 'Z39.50S'",
416
+ "input": "<base href='Z39.50S://foo'",
417
+ "fail-if": "invalid-scheme"},
418
+
419
+ {"description": "base href contains valid URI scheme 'Z39.50R'",
420
+ "input": "<base href='Z39.50R://foo'",
421
+ "fail-if": "invalid-scheme"},
422
+
423
+ {"description": "base href contains valid URI scheme 'CID'",
424
+ "input": "<base href='CID://foo'",
425
+ "fail-if": "invalid-scheme"},
426
+
427
+ {"description": "base href contains valid URI scheme 'MID'",
428
+ "input": "<base href='MID://foo'",
429
+ "fail-if": "invalid-scheme"},
430
+
431
+ {"description": "base href contains valid URI scheme 'VEMMI'",
432
+ "input": "<base href='VEMMI://foo'",
433
+ "fail-if": "invalid-scheme"},
434
+
435
+ {"description": "base href contains valid URI scheme 'SERVICE'",
436
+ "input": "<base href='SERVICE://foo'",
437
+ "fail-if": "invalid-scheme"},
438
+
439
+ {"description": "base href contains valid URI scheme 'IMAP'",
440
+ "input": "<base href='IMAP://foo'",
441
+ "fail-if": "invalid-scheme"},
442
+
443
+ {"description": "base href contains valid URI scheme 'NFS'",
444
+ "input": "<base href='NFS://foo'",
445
+ "fail-if": "invalid-scheme"},
446
+
447
+ {"description": "base href contains valid URI scheme 'ACAP'",
448
+ "input": "<base href='ACAP://foo'",
449
+ "fail-if": "invalid-scheme"},
450
+
451
+ {"description": "base href contains valid URI scheme 'RTSP'",
452
+ "input": "<base href='RTSP://foo'",
453
+ "fail-if": "invalid-scheme"},
454
+
455
+ {"description": "base href contains valid URI scheme 'TIP'",
456
+ "input": "<base href='TIP://foo'",
457
+ "fail-if": "invalid-scheme"},
458
+
459
+ {"description": "base href contains valid URI scheme 'POP'",
460
+ "input": "<base href='POP://foo'",
461
+ "fail-if": "invalid-scheme"},
462
+
463
+ {"description": "base href contains valid URI scheme 'DATA'",
464
+ "input": "<base href='DATA://foo'",
465
+ "fail-if": "invalid-scheme"},
466
+
467
+ {"description": "base href contains valid URI scheme 'DAV'",
468
+ "input": "<base href='DAV://foo'",
469
+ "fail-if": "invalid-scheme"},
470
+
471
+ {"description": "base href contains valid URI scheme 'OPAQUELOCKTOKEN'",
472
+ "input": "<base href='OPAQUELOCKTOKEN://foo'",
473
+ "fail-if": "invalid-scheme"},
474
+
475
+ {"description": "base href contains valid URI scheme 'SIP'",
476
+ "input": "<base href='SIP://foo'",
477
+ "fail-if": "invalid-scheme"},
478
+
479
+ {"description": "base href contains valid URI scheme 'SIPS'",
480
+ "input": "<base href='SIPS://foo'",
481
+ "fail-if": "invalid-scheme"},
482
+
483
+ {"description": "base href contains valid URI scheme 'TEL'",
484
+ "input": "<base href='TEL://foo'",
485
+ "fail-if": "invalid-scheme"},
486
+
487
+ {"description": "base href contains valid URI scheme 'FAX'",
488
+ "input": "<base href='FAX://foo'",
489
+ "fail-if": "invalid-scheme"},
490
+
491
+ {"description": "base href contains valid URI scheme 'MODEM'",
492
+ "input": "<base href='MODEM://foo'",
493
+ "fail-if": "invalid-scheme"},
494
+
495
+ {"description": "base href contains valid URI scheme 'LDAP'",
496
+ "input": "<base href='LDAP://foo'",
497
+ "fail-if": "invalid-scheme"},
498
+
499
+ {"description": "base href contains valid URI scheme 'HTTPS'",
500
+ "input": "<base href='HTTPS://foo'",
501
+ "fail-if": "invalid-scheme"},
502
+
503
+ {"description": "base href contains valid URI scheme 'SOAP.BEEP'",
504
+ "input": "<base href='SOAP.BEEP://foo'",
505
+ "fail-if": "invalid-scheme"},
506
+
507
+ {"description": "base href contains valid URI scheme 'SOAP.BEEPS'",
508
+ "input": "<base href='SOAP.BEEPS://foo'",
509
+ "fail-if": "invalid-scheme"},
510
+
511
+ {"description": "base href contains valid URI scheme 'XMLRPC.BEEP'",
512
+ "input": "<base href='XMLRPC.BEEP://foo'",
513
+ "fail-if": "invalid-scheme"},
514
+
515
+ {"description": "base href contains valid URI scheme 'XMLRPC.BEEPS'",
516
+ "input": "<base href='XMLRPC.BEEPS://foo'",
517
+ "fail-if": "invalid-scheme"},
518
+
519
+ {"description": "base href contains valid URI scheme 'URN'",
520
+ "input": "<base href='URN://foo'",
521
+ "fail-if": "invalid-scheme"},
522
+
523
+ {"description": "base href contains valid URI scheme 'GO'",
524
+ "input": "<base href='GO://foo'",
525
+ "fail-if": "invalid-scheme"},
526
+
527
+ {"description": "base href contains valid URI scheme 'H323'",
528
+ "input": "<base href='H323://foo'",
529
+ "fail-if": "invalid-scheme"},
530
+
531
+ {"description": "base href contains valid URI scheme 'IPP'",
532
+ "input": "<base href='IPP://foo'",
533
+ "fail-if": "invalid-scheme"},
534
+
535
+ {"description": "base href contains valid URI scheme 'TFTP'",
536
+ "input": "<base href='TFTP://foo'",
537
+ "fail-if": "invalid-scheme"},
538
+
539
+ {"description": "base href contains valid URI scheme 'MUPDATE'",
540
+ "input": "<base href='MUPDATE://foo'",
541
+ "fail-if": "invalid-scheme"},
542
+
543
+ {"description": "base href contains valid URI scheme 'PRES'",
544
+ "input": "<base href='PRES://foo'",
545
+ "fail-if": "invalid-scheme"},
546
+
547
+ {"description": "base href contains valid URI scheme 'IM'",
548
+ "input": "<base href='IM://foo'",
549
+ "fail-if": "invalid-scheme"},
550
+
551
+ {"description": "base href contains valid URI scheme 'MTQP'",
552
+ "input": "<base href='MTQP://foo'",
553
+ "fail-if": "invalid-scheme"},
554
+
555
+ {"description": "base href contains valid URI scheme 'IRIS.BEEP'",
556
+ "input": "<base href='IRIS.BEEP://foo'",
557
+ "fail-if": "invalid-scheme"},
558
+
559
+ {"description": "base href contains valid URI scheme 'DICT'",
560
+ "input": "<base href='DICT://foo'",
561
+ "fail-if": "invalid-scheme"},
562
+
563
+ {"description": "base href contains valid URI scheme 'SNMP'",
564
+ "input": "<base href='SNMP://foo'",
565
+ "fail-if": "invalid-scheme"},
566
+
567
+ {"description": "base href contains valid URI scheme 'CRID'",
568
+ "input": "<base href='CRID://foo'",
569
+ "fail-if": "invalid-scheme"},
570
+
571
+ {"description": "base href contains valid URI scheme 'TAG'",
572
+ "input": "<base href='TAG://foo'",
573
+ "fail-if": "invalid-scheme"},
574
+
575
+ {"description": "base href contains valid URI scheme 'DNS'",
576
+ "input": "<base href='DNS://foo'",
577
+ "fail-if": "invalid-scheme"},
578
+
579
+ {"description": "base href contains valid URI scheme 'INFO'",
580
+ "input": "<base href='INFO://foo'",
581
+ "fail-if": "invalid-scheme"},
582
+
583
+ {"description": "base href contains valid URI scheme 'JAVASCRIPT'",
584
+ "input": "<base href='JAVASCRIPT:foo'",
585
+ "fail-if": "invalid-scheme"},
586
+
587
+ {"description": "base href contains valid URI scheme 'foo'",
588
+ "input": "<base href='foo:bar'",
589
+ "fail-unless": "invalid-scheme"},
590
+
591
+ {"description": "base href contains valid URI 'g'",
592
+ "input": "<base href='g'",
593
+ "fail-if": "invalid-attribute-value"},
594
+
595
+ {"description": "base href contains valid URI './g'",
596
+ "input": "<base href='./g'",
597
+ "fail-if": "invalid-attribute-value"},
598
+
599
+ {"description": "base href contains valid URI 'g/'",
600
+ "input": "<base href='g/'",
601
+ "fail-if": "invalid-attribute-value"},
602
+
603
+ {"description": "base href contains valid URI '/g'",
604
+ "input": "<base href='/g'",
605
+ "fail-if": "invalid-attribute-value"},
606
+
607
+ {"description": "base href contains valid URI '//g'",
608
+ "input": "<base href='//g'",
609
+ "fail-if": "invalid-attribute-value"},
610
+
611
+ {"description": "base href contains valid URI '?y'",
612
+ "input": "<base href='?y'",
613
+ "fail-if": "invalid-attribute-value"},
614
+
615
+ {"description": "base href contains valid URI 'g?y'",
616
+ "input": "<base href='g?y'",
617
+ "fail-if": "invalid-attribute-value"},
618
+
619
+ {"description": "base href contains valid URI '#s'",
620
+ "input": "<base href='#s'",
621
+ "fail-if": "invalid-attribute-value"},
622
+
623
+ {"description": "base href contains valid URI 'g#s'",
624
+ "input": "<base href='g#s'",
625
+ "fail-if": "invalid-attribute-value"},
626
+
627
+ {"description": "base href contains valid URI 'g?y#s'",
628
+ "input": "<base href='g?y#s'",
629
+ "fail-if": "invalid-attribute-value"},
630
+
631
+ {"description": "base href contains valid URI ';x'",
632
+ "input": "<base href=';x'",
633
+ "fail-if": "invalid-attribute-value"},
634
+
635
+ {"description": "base href contains valid URI 'g;x'",
636
+ "input": "<base href='g;x'",
637
+ "fail-if": "invalid-attribute-value"},
638
+
639
+ {"description": "base href contains valid URI 'g;x?y#s'",
640
+ "input": "<base href='g;x?y#s'",
641
+ "fail-if": "invalid-attribute-value"},
642
+
643
+ {"description": "base href contains valid URI '.'",
644
+ "input": "<base href='.'",
645
+ "fail-if": "invalid-attribute-value"},
646
+
647
+ {"description": "base href contains valid URI './'",
648
+ "input": "<base href='./'",
649
+ "fail-if": "invalid-attribute-value"},
650
+
651
+ {"description": "base href contains valid URI '..'",
652
+ "input": "<base href='..'",
653
+ "fail-if": "invalid-attribute-value"},
654
+
655
+ {"description": "base href contains valid URI '../'",
656
+ "input": "<base href='../'",
657
+ "fail-if": "invalid-attribute-value"},
658
+
659
+ {"description": "base href contains valid URI '../g'",
660
+ "input": "<base href='../g'",
661
+ "fail-if": "invalid-attribute-value"},
662
+
663
+ {"description": "base href contains valid URI '../..'",
664
+ "input": "<base href='../..'",
665
+ "fail-if": "invalid-attribute-value"},
666
+
667
+ {"description": "base href contains valid URI '../../'",
668
+ "input": "<base href='../../'",
669
+ "fail-if": "invalid-attribute-value"},
670
+
671
+ {"description": "base href contains valid URI '../../g'",
672
+ "input": "<base href='../../g'",
673
+ "fail-if": "invalid-attribute-value"},
674
+
675
+ {"description": "base href contains valid URI '../../../g'",
676
+ "input": "<base href='../../../g'",
677
+ "fail-if": "invalid-attribute-value"},
678
+
679
+ {"description": "base href contains valid URI '../../../../g'",
680
+ "input": "<base href='../../../../g'",
681
+ "fail-if": "invalid-attribute-value"},
682
+
683
+ {"description": "base href contains valid URI '/./g'",
684
+ "input": "<base href='/./g'",
685
+ "fail-if": "invalid-attribute-value"},
686
+
687
+ {"description": "base href contains valid URI '/../g'",
688
+ "input": "<base href='/../g'",
689
+ "fail-if": "invalid-attribute-value"},
690
+
691
+ {"description": "base href contains valid URI 'g.'",
692
+ "input": "<base href='g.'",
693
+ "fail-if": "invalid-attribute-value"},
694
+
695
+ {"description": "base href contains valid URI '.g'",
696
+ "input": "<base href='.g'",
697
+ "fail-if": "invalid-attribute-value"},
698
+
699
+ {"description": "base href contains valid URI 'g..'",
700
+ "input": "<base href='g..'",
701
+ "fail-if": "invalid-attribute-value"},
702
+
703
+ {"description": "base href contains valid URI '..g'",
704
+ "input": "<base href='..g'",
705
+ "fail-if": "invalid-attribute-value"},
706
+
707
+ {"description": "base href contains valid URI './../g'",
708
+ "input": "<base href='./../g'",
709
+ "fail-if": "invalid-attribute-value"},
710
+
711
+ {"description": "base href contains valid URI './g/.'",
712
+ "input": "<base href='./g/.'",
713
+ "fail-if": "invalid-attribute-value"},
714
+
715
+ {"description": "base href contains valid URI 'g/./h'",
716
+ "input": "<base href='g/./h'",
717
+ "fail-if": "invalid-attribute-value"},
718
+
719
+ {"description": "base href contains valid URI 'g/../h'",
720
+ "input": "<base href='g/../h'",
721
+ "fail-if": "invalid-attribute-value"},
722
+
723
+ {"description": "base href contains valid URI 'g;x=1/./y'",
724
+ "input": "<base href='g;x=1/./y'",
725
+ "fail-if": "invalid-attribute-value"},
726
+
727
+ {"description": "base href contains valid URI 'g;x=1/../y'",
728
+ "input": "<base href='g;x=1/../y'",
729
+ "fail-if": "invalid-attribute-value"},
730
+
731
+ {"description": "base href contains valid URI 'g?y/./x'",
732
+ "input": "<base href='g?y/./x'",
733
+ "fail-if": "invalid-attribute-value"},
734
+
735
+ {"description": "base href contains valid URI 'g?y/../x'",
736
+ "input": "<base href='g?y/../x'",
737
+ "fail-if": "invalid-attribute-value"},
738
+
739
+ {"description": "base href contains valid URI 'g#s/./x'",
740
+ "input": "<base href='g#s/./x'",
741
+ "fail-if": "invalid-attribute-value"},
742
+
743
+ {"description": "base href contains valid URI 'g#s/../x'",
744
+ "input": "<base href='g#s/../x'",
745
+ "fail-if": "invalid-attribute-value"},
746
+
747
+ {"description": "base href contains valid URI './g:h'",
748
+ "input": "<base href='./g:h'",
749
+ "fail-if": "invalid-attribute-value"},
750
+
751
+ {"description": "base href contains valid URI 'http://www.w%33.org'",
752
+ "input": "<base href='http://www.w%33.org'",
753
+ "fail-if": "invalid-attribute-value"},
754
+
755
+ {"description": "base href contains valid URI 'http://r%C3%A4ksm%C3%B6rg%C3%A5s.josefsson.org'",
756
+ "input": "<base href='http://r%C3%A4ksm%C3%B6rg%C3%A5s.josefsson.org'",
757
+ "fail-if": "invalid-attribute-value"},
758
+
759
+ {"description": "base href contains valid URI 'http://xn--rksmrgs-5wao1o.josefsson.org'",
760
+ "input": "<base href='http://xn--rksmrgs-5wao1o.josefsson.org'",
761
+ "fail-if": "invalid-attribute-value"},
762
+
763
+ {"description": "base href contains valid URI 'http://%E7%B4%8D%E8%B1%86.w3.mag.keio.ac.jp'",
764
+ "input": "<base href='http://%E7%B4%8D%E8%B1%86.w3.mag.keio.ac.jp'",
765
+ "fail-if": "invalid-attribute-value"},
766
+
767
+ {"description": "base href contains valid URI 'http://xn--99zt52a.w3.mag.keio.ac.jp'",
768
+ "input": "<base href='http://xn--99zt52a.w3.mag.keio.ac.jp'",
769
+ "fail-if": "invalid-attribute-value"},
770
+
771
+ {"description": "base href contains valid URI 'http://www.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'",
772
+ "input": "<base href='http://www.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'",
773
+ "fail-if": "invalid-attribute-value"},
774
+
775
+ {"description": "base href contains valid URI 'http://www.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'",
776
+ "input": "<base href='http://www.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'",
777
+ "fail-if": "invalid-attribute-value"},
778
+
779
+ {"description": "base href contains valid URI 'http://%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'",
780
+ "input": "<base href='http://%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'",
781
+ "fail-if": "invalid-attribute-value"},
782
+
783
+ {"description": "base href contains valid URI 'http://xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'",
784
+ "input": "<base href='http://xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'",
785
+ "fail-if": "invalid-attribute-value"}
786
+
787
+ ]}