loofah-activerecord 1.0.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (573) hide show
  1. data/CHANGELOG.rdoc +9 -0
  2. data/Gemfile +14 -0
  3. data/MIT-LICENSE.txt +21 -0
  4. data/Manifest.txt +572 -0
  5. data/README.rdoc +110 -0
  6. data/Rakefile +56 -0
  7. data/lib/loofah-activerecord.rb +19 -0
  8. data/lib/loofah-activerecord/active_record.rb +60 -0
  9. data/lib/loofah-activerecord/railtie.rb +12 -0
  10. data/lib/loofah-activerecord/xss_foliate.rb +207 -0
  11. data/rails_test/Rakefile +72 -0
  12. data/rails_test/common/active_record/app/models/post.rb +3 -0
  13. data/rails_test/common/active_record/test/unit/posts_test.rb +15 -0
  14. data/rails_test/common/all/config/database.yml +22 -0
  15. data/rails_test/common/all/db/migrate/1_create_posts.rb +11 -0
  16. data/rails_test/common/xss_foliate/app/models/post.rb +2 -0
  17. data/rails_test/common/xss_foliate/test/unit/posts_test.rb +14 -0
  18. data/rails_test/generate_test_directory +51 -0
  19. data/rails_test/rails-1.2.6-active_record/README +211 -0
  20. data/rails_test/rails-1.2.6-active_record/Rakefile +10 -0
  21. data/rails_test/rails-1.2.6-active_record/app/controllers/application.rb +7 -0
  22. data/rails_test/rails-1.2.6-active_record/app/helpers/application_helper.rb +3 -0
  23. data/rails_test/rails-1.2.6-active_record/app/models/post.rb +3 -0
  24. data/rails_test/rails-1.2.6-active_record/config/boot.rb +39 -0
  25. data/rails_test/rails-1.2.6-active_record/config/database.yml +22 -0
  26. data/rails_test/rails-1.2.6-active_record/config/environment.rb +61 -0
  27. data/rails_test/rails-1.2.6-active_record/config/environments/development.rb +21 -0
  28. data/rails_test/rails-1.2.6-active_record/config/environments/production.rb +18 -0
  29. data/rails_test/rails-1.2.6-active_record/config/environments/test.rb +19 -0
  30. data/rails_test/rails-1.2.6-active_record/config/routes.rb +23 -0
  31. data/rails_test/rails-1.2.6-active_record/db/migrate/1_create_posts.rb +11 -0
  32. data/rails_test/rails-1.2.6-active_record/public/.htaccess +40 -0
  33. data/rails_test/rails-1.2.6-active_record/public/404.html +30 -0
  34. data/rails_test/rails-1.2.6-active_record/public/500.html +30 -0
  35. data/rails_test/rails-1.2.6-active_record/public/dispatch.cgi +10 -0
  36. data/rails_test/rails-1.2.6-active_record/public/dispatch.fcgi +24 -0
  37. data/rails_test/rails-1.2.6-active_record/public/dispatch.rb +10 -0
  38. data/rails_test/rails-1.2.6-active_record/public/favicon.ico +0 -0
  39. data/rails_test/rails-1.2.6-active_record/public/images/rails.png +0 -0
  40. data/rails_test/rails-1.2.6-active_record/public/index.html +277 -0
  41. data/rails_test/rails-1.2.6-active_record/public/javascripts/application.js +2 -0
  42. data/rails_test/rails-1.2.6-active_record/public/javascripts/controls.js +833 -0
  43. data/rails_test/rails-1.2.6-active_record/public/javascripts/dragdrop.js +942 -0
  44. data/rails_test/rails-1.2.6-active_record/public/javascripts/effects.js +1088 -0
  45. data/rails_test/rails-1.2.6-active_record/public/javascripts/prototype.js +2515 -0
  46. data/rails_test/rails-1.2.6-active_record/public/robots.txt +1 -0
  47. data/rails_test/rails-1.2.6-active_record/script/about +3 -0
  48. data/rails_test/rails-1.2.6-active_record/script/breakpointer +3 -0
  49. data/rails_test/rails-1.2.6-active_record/script/console +3 -0
  50. data/rails_test/rails-1.2.6-active_record/script/destroy +3 -0
  51. data/rails_test/rails-1.2.6-active_record/script/generate +3 -0
  52. data/rails_test/rails-1.2.6-active_record/script/performance/benchmarker +3 -0
  53. data/rails_test/rails-1.2.6-active_record/script/performance/profiler +3 -0
  54. data/rails_test/rails-1.2.6-active_record/script/plugin +3 -0
  55. data/rails_test/rails-1.2.6-active_record/script/process/inspector +3 -0
  56. data/rails_test/rails-1.2.6-active_record/script/process/reaper +3 -0
  57. data/rails_test/rails-1.2.6-active_record/script/process/spawner +3 -0
  58. data/rails_test/rails-1.2.6-active_record/script/runner +3 -0
  59. data/rails_test/rails-1.2.6-active_record/script/server +3 -0
  60. data/rails_test/rails-1.2.6-active_record/test/test_helper.rb +28 -0
  61. data/rails_test/rails-1.2.6-active_record/test/unit/posts_test.rb +15 -0
  62. data/rails_test/rails-1.2.6-xss_foliate/README +211 -0
  63. data/rails_test/rails-1.2.6-xss_foliate/Rakefile +10 -0
  64. data/rails_test/rails-1.2.6-xss_foliate/app/controllers/application.rb +7 -0
  65. data/rails_test/rails-1.2.6-xss_foliate/app/helpers/application_helper.rb +3 -0
  66. data/rails_test/rails-1.2.6-xss_foliate/app/models/post.rb +2 -0
  67. data/rails_test/rails-1.2.6-xss_foliate/config/boot.rb +39 -0
  68. data/rails_test/rails-1.2.6-xss_foliate/config/database.yml +22 -0
  69. data/rails_test/rails-1.2.6-xss_foliate/config/environment.rb +63 -0
  70. data/rails_test/rails-1.2.6-xss_foliate/config/environments/development.rb +21 -0
  71. data/rails_test/rails-1.2.6-xss_foliate/config/environments/production.rb +18 -0
  72. data/rails_test/rails-1.2.6-xss_foliate/config/environments/test.rb +19 -0
  73. data/rails_test/rails-1.2.6-xss_foliate/config/routes.rb +23 -0
  74. data/rails_test/rails-1.2.6-xss_foliate/db/migrate/1_create_posts.rb +11 -0
  75. data/rails_test/rails-1.2.6-xss_foliate/public/.htaccess +40 -0
  76. data/rails_test/rails-1.2.6-xss_foliate/public/404.html +30 -0
  77. data/rails_test/rails-1.2.6-xss_foliate/public/500.html +30 -0
  78. data/rails_test/rails-1.2.6-xss_foliate/public/dispatch.cgi +10 -0
  79. data/rails_test/rails-1.2.6-xss_foliate/public/dispatch.fcgi +24 -0
  80. data/rails_test/rails-1.2.6-xss_foliate/public/dispatch.rb +10 -0
  81. data/rails_test/rails-1.2.6-xss_foliate/public/favicon.ico +0 -0
  82. data/rails_test/rails-1.2.6-xss_foliate/public/images/rails.png +0 -0
  83. data/rails_test/rails-1.2.6-xss_foliate/public/index.html +277 -0
  84. data/rails_test/rails-1.2.6-xss_foliate/public/javascripts/application.js +2 -0
  85. data/rails_test/rails-1.2.6-xss_foliate/public/javascripts/controls.js +833 -0
  86. data/rails_test/rails-1.2.6-xss_foliate/public/javascripts/dragdrop.js +942 -0
  87. data/rails_test/rails-1.2.6-xss_foliate/public/javascripts/effects.js +1088 -0
  88. data/rails_test/rails-1.2.6-xss_foliate/public/javascripts/prototype.js +2515 -0
  89. data/rails_test/rails-1.2.6-xss_foliate/public/robots.txt +1 -0
  90. data/rails_test/rails-1.2.6-xss_foliate/script/about +3 -0
  91. data/rails_test/rails-1.2.6-xss_foliate/script/breakpointer +3 -0
  92. data/rails_test/rails-1.2.6-xss_foliate/script/console +3 -0
  93. data/rails_test/rails-1.2.6-xss_foliate/script/destroy +3 -0
  94. data/rails_test/rails-1.2.6-xss_foliate/script/generate +3 -0
  95. data/rails_test/rails-1.2.6-xss_foliate/script/performance/benchmarker +3 -0
  96. data/rails_test/rails-1.2.6-xss_foliate/script/performance/profiler +3 -0
  97. data/rails_test/rails-1.2.6-xss_foliate/script/plugin +3 -0
  98. data/rails_test/rails-1.2.6-xss_foliate/script/process/inspector +3 -0
  99. data/rails_test/rails-1.2.6-xss_foliate/script/process/reaper +3 -0
  100. data/rails_test/rails-1.2.6-xss_foliate/script/process/spawner +3 -0
  101. data/rails_test/rails-1.2.6-xss_foliate/script/runner +3 -0
  102. data/rails_test/rails-1.2.6-xss_foliate/script/server +3 -0
  103. data/rails_test/rails-1.2.6-xss_foliate/test/test_helper.rb +28 -0
  104. data/rails_test/rails-1.2.6-xss_foliate/test/unit/posts_test.rb +14 -0
  105. data/rails_test/rails-2.0.5-active_record/README +203 -0
  106. data/rails_test/rails-2.0.5-active_record/Rakefile +10 -0
  107. data/rails_test/rails-2.0.5-active_record/app/controllers/application.rb +10 -0
  108. data/rails_test/rails-2.0.5-active_record/app/helpers/application_helper.rb +3 -0
  109. data/rails_test/rails-2.0.5-active_record/app/models/post.rb +3 -0
  110. data/rails_test/rails-2.0.5-active_record/config/boot.rb +108 -0
  111. data/rails_test/rails-2.0.5-active_record/config/database.yml +22 -0
  112. data/rails_test/rails-2.0.5-active_record/config/environment.rb +59 -0
  113. data/rails_test/rails-2.0.5-active_record/config/environments/development.rb +18 -0
  114. data/rails_test/rails-2.0.5-active_record/config/environments/production.rb +19 -0
  115. data/rails_test/rails-2.0.5-active_record/config/environments/test.rb +22 -0
  116. data/rails_test/rails-2.0.5-active_record/config/initializers/inflections.rb +10 -0
  117. data/rails_test/rails-2.0.5-active_record/config/initializers/loofah.rb +1 -0
  118. data/rails_test/rails-2.0.5-active_record/config/initializers/mime_types.rb +5 -0
  119. data/rails_test/rails-2.0.5-active_record/config/routes.rb +35 -0
  120. data/rails_test/rails-2.0.5-active_record/db/migrate/1_create_posts.rb +11 -0
  121. data/rails_test/rails-2.0.5-active_record/public/.htaccess +40 -0
  122. data/rails_test/rails-2.0.5-active_record/public/404.html +30 -0
  123. data/rails_test/rails-2.0.5-active_record/public/422.html +30 -0
  124. data/rails_test/rails-2.0.5-active_record/public/500.html +30 -0
  125. data/rails_test/rails-2.0.5-active_record/public/dispatch.cgi +10 -0
  126. data/rails_test/rails-2.0.5-active_record/public/dispatch.fcgi +24 -0
  127. data/rails_test/rails-2.0.5-active_record/public/dispatch.rb +10 -0
  128. data/rails_test/rails-2.0.5-active_record/public/favicon.ico +0 -0
  129. data/rails_test/rails-2.0.5-active_record/public/images/rails.png +0 -0
  130. data/rails_test/rails-2.0.5-active_record/public/index.html +277 -0
  131. data/rails_test/rails-2.0.5-active_record/public/javascripts/application.js +2 -0
  132. data/rails_test/rails-2.0.5-active_record/public/javascripts/controls.js +963 -0
  133. data/rails_test/rails-2.0.5-active_record/public/javascripts/dragdrop.js +972 -0
  134. data/rails_test/rails-2.0.5-active_record/public/javascripts/effects.js +1120 -0
  135. data/rails_test/rails-2.0.5-active_record/public/javascripts/prototype.js +4225 -0
  136. data/rails_test/rails-2.0.5-active_record/public/robots.txt +5 -0
  137. data/rails_test/rails-2.0.5-active_record/script/about +3 -0
  138. data/rails_test/rails-2.0.5-active_record/script/console +3 -0
  139. data/rails_test/rails-2.0.5-active_record/script/destroy +3 -0
  140. data/rails_test/rails-2.0.5-active_record/script/generate +3 -0
  141. data/rails_test/rails-2.0.5-active_record/script/performance/benchmarker +3 -0
  142. data/rails_test/rails-2.0.5-active_record/script/performance/profiler +3 -0
  143. data/rails_test/rails-2.0.5-active_record/script/performance/request +3 -0
  144. data/rails_test/rails-2.0.5-active_record/script/plugin +3 -0
  145. data/rails_test/rails-2.0.5-active_record/script/process/inspector +3 -0
  146. data/rails_test/rails-2.0.5-active_record/script/process/reaper +3 -0
  147. data/rails_test/rails-2.0.5-active_record/script/process/spawner +3 -0
  148. data/rails_test/rails-2.0.5-active_record/script/runner +3 -0
  149. data/rails_test/rails-2.0.5-active_record/script/server +3 -0
  150. data/rails_test/rails-2.0.5-active_record/test/test_helper.rb +38 -0
  151. data/rails_test/rails-2.0.5-active_record/test/unit/posts_test.rb +15 -0
  152. data/rails_test/rails-2.0.5-xss_foliate/README +203 -0
  153. data/rails_test/rails-2.0.5-xss_foliate/Rakefile +10 -0
  154. data/rails_test/rails-2.0.5-xss_foliate/app/controllers/application.rb +10 -0
  155. data/rails_test/rails-2.0.5-xss_foliate/app/helpers/application_helper.rb +3 -0
  156. data/rails_test/rails-2.0.5-xss_foliate/app/models/post.rb +2 -0
  157. data/rails_test/rails-2.0.5-xss_foliate/config/boot.rb +108 -0
  158. data/rails_test/rails-2.0.5-xss_foliate/config/database.yml +22 -0
  159. data/rails_test/rails-2.0.5-xss_foliate/config/environment.rb +59 -0
  160. data/rails_test/rails-2.0.5-xss_foliate/config/environments/development.rb +18 -0
  161. data/rails_test/rails-2.0.5-xss_foliate/config/environments/production.rb +19 -0
  162. data/rails_test/rails-2.0.5-xss_foliate/config/environments/test.rb +22 -0
  163. data/rails_test/rails-2.0.5-xss_foliate/config/initializers/inflections.rb +10 -0
  164. data/rails_test/rails-2.0.5-xss_foliate/config/initializers/loofah.rb +2 -0
  165. data/rails_test/rails-2.0.5-xss_foliate/config/initializers/mime_types.rb +5 -0
  166. data/rails_test/rails-2.0.5-xss_foliate/config/routes.rb +35 -0
  167. data/rails_test/rails-2.0.5-xss_foliate/db/migrate/1_create_posts.rb +11 -0
  168. data/rails_test/rails-2.0.5-xss_foliate/public/.htaccess +40 -0
  169. data/rails_test/rails-2.0.5-xss_foliate/public/404.html +30 -0
  170. data/rails_test/rails-2.0.5-xss_foliate/public/422.html +30 -0
  171. data/rails_test/rails-2.0.5-xss_foliate/public/500.html +30 -0
  172. data/rails_test/rails-2.0.5-xss_foliate/public/dispatch.cgi +10 -0
  173. data/rails_test/rails-2.0.5-xss_foliate/public/dispatch.fcgi +24 -0
  174. data/rails_test/rails-2.0.5-xss_foliate/public/dispatch.rb +10 -0
  175. data/rails_test/rails-2.0.5-xss_foliate/public/favicon.ico +0 -0
  176. data/rails_test/rails-2.0.5-xss_foliate/public/images/rails.png +0 -0
  177. data/rails_test/rails-2.0.5-xss_foliate/public/index.html +277 -0
  178. data/rails_test/rails-2.0.5-xss_foliate/public/javascripts/application.js +2 -0
  179. data/rails_test/rails-2.0.5-xss_foliate/public/javascripts/controls.js +963 -0
  180. data/rails_test/rails-2.0.5-xss_foliate/public/javascripts/dragdrop.js +972 -0
  181. data/rails_test/rails-2.0.5-xss_foliate/public/javascripts/effects.js +1120 -0
  182. data/rails_test/rails-2.0.5-xss_foliate/public/javascripts/prototype.js +4225 -0
  183. data/rails_test/rails-2.0.5-xss_foliate/public/robots.txt +5 -0
  184. data/rails_test/rails-2.0.5-xss_foliate/script/about +3 -0
  185. data/rails_test/rails-2.0.5-xss_foliate/script/console +3 -0
  186. data/rails_test/rails-2.0.5-xss_foliate/script/destroy +3 -0
  187. data/rails_test/rails-2.0.5-xss_foliate/script/generate +3 -0
  188. data/rails_test/rails-2.0.5-xss_foliate/script/performance/benchmarker +3 -0
  189. data/rails_test/rails-2.0.5-xss_foliate/script/performance/profiler +3 -0
  190. data/rails_test/rails-2.0.5-xss_foliate/script/performance/request +3 -0
  191. data/rails_test/rails-2.0.5-xss_foliate/script/plugin +3 -0
  192. data/rails_test/rails-2.0.5-xss_foliate/script/process/inspector +3 -0
  193. data/rails_test/rails-2.0.5-xss_foliate/script/process/reaper +3 -0
  194. data/rails_test/rails-2.0.5-xss_foliate/script/process/spawner +3 -0
  195. data/rails_test/rails-2.0.5-xss_foliate/script/runner +3 -0
  196. data/rails_test/rails-2.0.5-xss_foliate/script/server +3 -0
  197. data/rails_test/rails-2.0.5-xss_foliate/test/test_helper.rb +38 -0
  198. data/rails_test/rails-2.0.5-xss_foliate/test/unit/posts_test.rb +14 -0
  199. data/rails_test/rails-2.1.2-active_record/README +256 -0
  200. data/rails_test/rails-2.1.2-active_record/Rakefile +10 -0
  201. data/rails_test/rails-2.1.2-active_record/app/controllers/application.rb +15 -0
  202. data/rails_test/rails-2.1.2-active_record/app/helpers/application_helper.rb +3 -0
  203. data/rails_test/rails-2.1.2-active_record/app/models/post.rb +3 -0
  204. data/rails_test/rails-2.1.2-active_record/config/boot.rb +109 -0
  205. data/rails_test/rails-2.1.2-active_record/config/database.yml +22 -0
  206. data/rails_test/rails-2.1.2-active_record/config/environment.rb +67 -0
  207. data/rails_test/rails-2.1.2-active_record/config/environments/development.rb +17 -0
  208. data/rails_test/rails-2.1.2-active_record/config/environments/production.rb +22 -0
  209. data/rails_test/rails-2.1.2-active_record/config/environments/test.rb +22 -0
  210. data/rails_test/rails-2.1.2-active_record/config/initializers/inflections.rb +10 -0
  211. data/rails_test/rails-2.1.2-active_record/config/initializers/loofah.rb +1 -0
  212. data/rails_test/rails-2.1.2-active_record/config/initializers/mime_types.rb +5 -0
  213. data/rails_test/rails-2.1.2-active_record/config/initializers/new_rails_defaults.rb +17 -0
  214. data/rails_test/rails-2.1.2-active_record/config/routes.rb +43 -0
  215. data/rails_test/rails-2.1.2-active_record/db/migrate/1_create_posts.rb +11 -0
  216. data/rails_test/rails-2.1.2-active_record/public/404.html +30 -0
  217. data/rails_test/rails-2.1.2-active_record/public/422.html +30 -0
  218. data/rails_test/rails-2.1.2-active_record/public/500.html +30 -0
  219. data/rails_test/rails-2.1.2-active_record/public/dispatch.cgi +10 -0
  220. data/rails_test/rails-2.1.2-active_record/public/dispatch.fcgi +24 -0
  221. data/rails_test/rails-2.1.2-active_record/public/dispatch.rb +10 -0
  222. data/rails_test/rails-2.1.2-active_record/public/favicon.ico +0 -0
  223. data/rails_test/rails-2.1.2-active_record/public/images/rails.png +0 -0
  224. data/rails_test/rails-2.1.2-active_record/public/index.html +274 -0
  225. data/rails_test/rails-2.1.2-active_record/public/javascripts/application.js +2 -0
  226. data/rails_test/rails-2.1.2-active_record/public/javascripts/controls.js +963 -0
  227. data/rails_test/rails-2.1.2-active_record/public/javascripts/dragdrop.js +972 -0
  228. data/rails_test/rails-2.1.2-active_record/public/javascripts/effects.js +1120 -0
  229. data/rails_test/rails-2.1.2-active_record/public/javascripts/prototype.js +4225 -0
  230. data/rails_test/rails-2.1.2-active_record/public/robots.txt +5 -0
  231. data/rails_test/rails-2.1.2-active_record/script/about +4 -0
  232. data/rails_test/rails-2.1.2-active_record/script/console +3 -0
  233. data/rails_test/rails-2.1.2-active_record/script/dbconsole +3 -0
  234. data/rails_test/rails-2.1.2-active_record/script/destroy +3 -0
  235. data/rails_test/rails-2.1.2-active_record/script/generate +3 -0
  236. data/rails_test/rails-2.1.2-active_record/script/performance/benchmarker +3 -0
  237. data/rails_test/rails-2.1.2-active_record/script/performance/profiler +3 -0
  238. data/rails_test/rails-2.1.2-active_record/script/performance/request +3 -0
  239. data/rails_test/rails-2.1.2-active_record/script/plugin +3 -0
  240. data/rails_test/rails-2.1.2-active_record/script/process/inspector +3 -0
  241. data/rails_test/rails-2.1.2-active_record/script/process/reaper +3 -0
  242. data/rails_test/rails-2.1.2-active_record/script/process/spawner +3 -0
  243. data/rails_test/rails-2.1.2-active_record/script/runner +3 -0
  244. data/rails_test/rails-2.1.2-active_record/script/server +3 -0
  245. data/rails_test/rails-2.1.2-active_record/test/test_helper.rb +38 -0
  246. data/rails_test/rails-2.1.2-active_record/test/unit/posts_test.rb +15 -0
  247. data/rails_test/rails-2.1.2-xss_foliate/README +256 -0
  248. data/rails_test/rails-2.1.2-xss_foliate/Rakefile +10 -0
  249. data/rails_test/rails-2.1.2-xss_foliate/app/controllers/application.rb +15 -0
  250. data/rails_test/rails-2.1.2-xss_foliate/app/helpers/application_helper.rb +3 -0
  251. data/rails_test/rails-2.1.2-xss_foliate/app/models/post.rb +2 -0
  252. data/rails_test/rails-2.1.2-xss_foliate/config/boot.rb +109 -0
  253. data/rails_test/rails-2.1.2-xss_foliate/config/database.yml +22 -0
  254. data/rails_test/rails-2.1.2-xss_foliate/config/environment.rb +67 -0
  255. data/rails_test/rails-2.1.2-xss_foliate/config/environments/development.rb +17 -0
  256. data/rails_test/rails-2.1.2-xss_foliate/config/environments/production.rb +22 -0
  257. data/rails_test/rails-2.1.2-xss_foliate/config/environments/test.rb +22 -0
  258. data/rails_test/rails-2.1.2-xss_foliate/config/initializers/inflections.rb +10 -0
  259. data/rails_test/rails-2.1.2-xss_foliate/config/initializers/loofah.rb +2 -0
  260. data/rails_test/rails-2.1.2-xss_foliate/config/initializers/mime_types.rb +5 -0
  261. data/rails_test/rails-2.1.2-xss_foliate/config/initializers/new_rails_defaults.rb +17 -0
  262. data/rails_test/rails-2.1.2-xss_foliate/config/routes.rb +43 -0
  263. data/rails_test/rails-2.1.2-xss_foliate/db/migrate/1_create_posts.rb +11 -0
  264. data/rails_test/rails-2.1.2-xss_foliate/public/404.html +30 -0
  265. data/rails_test/rails-2.1.2-xss_foliate/public/422.html +30 -0
  266. data/rails_test/rails-2.1.2-xss_foliate/public/500.html +30 -0
  267. data/rails_test/rails-2.1.2-xss_foliate/public/dispatch.cgi +10 -0
  268. data/rails_test/rails-2.1.2-xss_foliate/public/dispatch.fcgi +24 -0
  269. data/rails_test/rails-2.1.2-xss_foliate/public/dispatch.rb +10 -0
  270. data/rails_test/rails-2.1.2-xss_foliate/public/favicon.ico +0 -0
  271. data/rails_test/rails-2.1.2-xss_foliate/public/images/rails.png +0 -0
  272. data/rails_test/rails-2.1.2-xss_foliate/public/index.html +274 -0
  273. data/rails_test/rails-2.1.2-xss_foliate/public/javascripts/application.js +2 -0
  274. data/rails_test/rails-2.1.2-xss_foliate/public/javascripts/controls.js +963 -0
  275. data/rails_test/rails-2.1.2-xss_foliate/public/javascripts/dragdrop.js +972 -0
  276. data/rails_test/rails-2.1.2-xss_foliate/public/javascripts/effects.js +1120 -0
  277. data/rails_test/rails-2.1.2-xss_foliate/public/javascripts/prototype.js +4225 -0
  278. data/rails_test/rails-2.1.2-xss_foliate/public/robots.txt +5 -0
  279. data/rails_test/rails-2.1.2-xss_foliate/script/about +4 -0
  280. data/rails_test/rails-2.1.2-xss_foliate/script/console +3 -0
  281. data/rails_test/rails-2.1.2-xss_foliate/script/dbconsole +3 -0
  282. data/rails_test/rails-2.1.2-xss_foliate/script/destroy +3 -0
  283. data/rails_test/rails-2.1.2-xss_foliate/script/generate +3 -0
  284. data/rails_test/rails-2.1.2-xss_foliate/script/performance/benchmarker +3 -0
  285. data/rails_test/rails-2.1.2-xss_foliate/script/performance/profiler +3 -0
  286. data/rails_test/rails-2.1.2-xss_foliate/script/performance/request +3 -0
  287. data/rails_test/rails-2.1.2-xss_foliate/script/plugin +3 -0
  288. data/rails_test/rails-2.1.2-xss_foliate/script/process/inspector +3 -0
  289. data/rails_test/rails-2.1.2-xss_foliate/script/process/reaper +3 -0
  290. data/rails_test/rails-2.1.2-xss_foliate/script/process/spawner +3 -0
  291. data/rails_test/rails-2.1.2-xss_foliate/script/runner +3 -0
  292. data/rails_test/rails-2.1.2-xss_foliate/script/server +3 -0
  293. data/rails_test/rails-2.1.2-xss_foliate/test/test_helper.rb +38 -0
  294. data/rails_test/rails-2.1.2-xss_foliate/test/unit/posts_test.rb +14 -0
  295. data/rails_test/rails-2.2.2-active_record/README +256 -0
  296. data/rails_test/rails-2.2.2-active_record/Rakefile +10 -0
  297. data/rails_test/rails-2.2.2-active_record/app/controllers/application.rb +15 -0
  298. data/rails_test/rails-2.2.2-active_record/app/helpers/application_helper.rb +3 -0
  299. data/rails_test/rails-2.2.2-active_record/app/models/post.rb +3 -0
  300. data/rails_test/rails-2.2.2-active_record/config/boot.rb +109 -0
  301. data/rails_test/rails-2.2.2-active_record/config/database.yml +22 -0
  302. data/rails_test/rails-2.2.2-active_record/config/environment.rb +75 -0
  303. data/rails_test/rails-2.2.2-active_record/config/environments/development.rb +17 -0
  304. data/rails_test/rails-2.2.2-active_record/config/environments/production.rb +24 -0
  305. data/rails_test/rails-2.2.2-active_record/config/environments/test.rb +22 -0
  306. data/rails_test/rails-2.2.2-active_record/config/initializers/inflections.rb +10 -0
  307. data/rails_test/rails-2.2.2-active_record/config/initializers/loofah.rb +1 -0
  308. data/rails_test/rails-2.2.2-active_record/config/initializers/mime_types.rb +5 -0
  309. data/rails_test/rails-2.2.2-active_record/config/initializers/new_rails_defaults.rb +17 -0
  310. data/rails_test/rails-2.2.2-active_record/config/locales/en.yml +5 -0
  311. data/rails_test/rails-2.2.2-active_record/config/routes.rb +43 -0
  312. data/rails_test/rails-2.2.2-active_record/db/migrate/1_create_posts.rb +11 -0
  313. data/rails_test/rails-2.2.2-active_record/public/404.html +30 -0
  314. data/rails_test/rails-2.2.2-active_record/public/422.html +30 -0
  315. data/rails_test/rails-2.2.2-active_record/public/500.html +33 -0
  316. data/rails_test/rails-2.2.2-active_record/public/dispatch.cgi +10 -0
  317. data/rails_test/rails-2.2.2-active_record/public/dispatch.fcgi +24 -0
  318. data/rails_test/rails-2.2.2-active_record/public/dispatch.rb +10 -0
  319. data/rails_test/rails-2.2.2-active_record/public/favicon.ico +0 -0
  320. data/rails_test/rails-2.2.2-active_record/public/images/rails.png +0 -0
  321. data/rails_test/rails-2.2.2-active_record/public/index.html +274 -0
  322. data/rails_test/rails-2.2.2-active_record/public/javascripts/application.js +2 -0
  323. data/rails_test/rails-2.2.2-active_record/public/javascripts/controls.js +963 -0
  324. data/rails_test/rails-2.2.2-active_record/public/javascripts/dragdrop.js +973 -0
  325. data/rails_test/rails-2.2.2-active_record/public/javascripts/effects.js +1128 -0
  326. data/rails_test/rails-2.2.2-active_record/public/javascripts/prototype.js +4320 -0
  327. data/rails_test/rails-2.2.2-active_record/public/robots.txt +5 -0
  328. data/rails_test/rails-2.2.2-active_record/script/about +4 -0
  329. data/rails_test/rails-2.2.2-active_record/script/console +3 -0
  330. data/rails_test/rails-2.2.2-active_record/script/dbconsole +3 -0
  331. data/rails_test/rails-2.2.2-active_record/script/destroy +3 -0
  332. data/rails_test/rails-2.2.2-active_record/script/generate +3 -0
  333. data/rails_test/rails-2.2.2-active_record/script/performance/benchmarker +3 -0
  334. data/rails_test/rails-2.2.2-active_record/script/performance/profiler +3 -0
  335. data/rails_test/rails-2.2.2-active_record/script/performance/request +3 -0
  336. data/rails_test/rails-2.2.2-active_record/script/plugin +3 -0
  337. data/rails_test/rails-2.2.2-active_record/script/process/inspector +3 -0
  338. data/rails_test/rails-2.2.2-active_record/script/process/reaper +3 -0
  339. data/rails_test/rails-2.2.2-active_record/script/process/spawner +3 -0
  340. data/rails_test/rails-2.2.2-active_record/script/runner +3 -0
  341. data/rails_test/rails-2.2.2-active_record/script/server +3 -0
  342. data/rails_test/rails-2.2.2-active_record/test/performance/browsing_test.rb +9 -0
  343. data/rails_test/rails-2.2.2-active_record/test/test_helper.rb +38 -0
  344. data/rails_test/rails-2.2.2-active_record/test/unit/posts_test.rb +15 -0
  345. data/rails_test/rails-2.2.2-xss_foliate/README +256 -0
  346. data/rails_test/rails-2.2.2-xss_foliate/Rakefile +10 -0
  347. data/rails_test/rails-2.2.2-xss_foliate/app/controllers/application.rb +15 -0
  348. data/rails_test/rails-2.2.2-xss_foliate/app/helpers/application_helper.rb +3 -0
  349. data/rails_test/rails-2.2.2-xss_foliate/app/models/post.rb +2 -0
  350. data/rails_test/rails-2.2.2-xss_foliate/config/boot.rb +109 -0
  351. data/rails_test/rails-2.2.2-xss_foliate/config/database.yml +22 -0
  352. data/rails_test/rails-2.2.2-xss_foliate/config/environment.rb +75 -0
  353. data/rails_test/rails-2.2.2-xss_foliate/config/environments/development.rb +17 -0
  354. data/rails_test/rails-2.2.2-xss_foliate/config/environments/production.rb +24 -0
  355. data/rails_test/rails-2.2.2-xss_foliate/config/environments/test.rb +22 -0
  356. data/rails_test/rails-2.2.2-xss_foliate/config/initializers/inflections.rb +10 -0
  357. data/rails_test/rails-2.2.2-xss_foliate/config/initializers/loofah.rb +2 -0
  358. data/rails_test/rails-2.2.2-xss_foliate/config/initializers/mime_types.rb +5 -0
  359. data/rails_test/rails-2.2.2-xss_foliate/config/initializers/new_rails_defaults.rb +17 -0
  360. data/rails_test/rails-2.2.2-xss_foliate/config/locales/en.yml +5 -0
  361. data/rails_test/rails-2.2.2-xss_foliate/config/routes.rb +43 -0
  362. data/rails_test/rails-2.2.2-xss_foliate/db/migrate/1_create_posts.rb +11 -0
  363. data/rails_test/rails-2.2.2-xss_foliate/public/404.html +30 -0
  364. data/rails_test/rails-2.2.2-xss_foliate/public/422.html +30 -0
  365. data/rails_test/rails-2.2.2-xss_foliate/public/500.html +33 -0
  366. data/rails_test/rails-2.2.2-xss_foliate/public/dispatch.cgi +10 -0
  367. data/rails_test/rails-2.2.2-xss_foliate/public/dispatch.fcgi +24 -0
  368. data/rails_test/rails-2.2.2-xss_foliate/public/dispatch.rb +10 -0
  369. data/rails_test/rails-2.2.2-xss_foliate/public/favicon.ico +0 -0
  370. data/rails_test/rails-2.2.2-xss_foliate/public/images/rails.png +0 -0
  371. data/rails_test/rails-2.2.2-xss_foliate/public/index.html +274 -0
  372. data/rails_test/rails-2.2.2-xss_foliate/public/javascripts/application.js +2 -0
  373. data/rails_test/rails-2.2.2-xss_foliate/public/javascripts/controls.js +963 -0
  374. data/rails_test/rails-2.2.2-xss_foliate/public/javascripts/dragdrop.js +973 -0
  375. data/rails_test/rails-2.2.2-xss_foliate/public/javascripts/effects.js +1128 -0
  376. data/rails_test/rails-2.2.2-xss_foliate/public/javascripts/prototype.js +4320 -0
  377. data/rails_test/rails-2.2.2-xss_foliate/public/robots.txt +5 -0
  378. data/rails_test/rails-2.2.2-xss_foliate/script/about +4 -0
  379. data/rails_test/rails-2.2.2-xss_foliate/script/console +3 -0
  380. data/rails_test/rails-2.2.2-xss_foliate/script/dbconsole +3 -0
  381. data/rails_test/rails-2.2.2-xss_foliate/script/destroy +3 -0
  382. data/rails_test/rails-2.2.2-xss_foliate/script/generate +3 -0
  383. data/rails_test/rails-2.2.2-xss_foliate/script/performance/benchmarker +3 -0
  384. data/rails_test/rails-2.2.2-xss_foliate/script/performance/profiler +3 -0
  385. data/rails_test/rails-2.2.2-xss_foliate/script/performance/request +3 -0
  386. data/rails_test/rails-2.2.2-xss_foliate/script/plugin +3 -0
  387. data/rails_test/rails-2.2.2-xss_foliate/script/process/inspector +3 -0
  388. data/rails_test/rails-2.2.2-xss_foliate/script/process/reaper +3 -0
  389. data/rails_test/rails-2.2.2-xss_foliate/script/process/spawner +3 -0
  390. data/rails_test/rails-2.2.2-xss_foliate/script/runner +3 -0
  391. data/rails_test/rails-2.2.2-xss_foliate/script/server +3 -0
  392. data/rails_test/rails-2.2.2-xss_foliate/test/performance/browsing_test.rb +9 -0
  393. data/rails_test/rails-2.2.2-xss_foliate/test/test_helper.rb +38 -0
  394. data/rails_test/rails-2.2.2-xss_foliate/test/unit/posts_test.rb +14 -0
  395. data/rails_test/rails-2.3.8-active_record/README +243 -0
  396. data/rails_test/rails-2.3.8-active_record/Rakefile +10 -0
  397. data/rails_test/rails-2.3.8-active_record/app/controllers/application_controller.rb +10 -0
  398. data/rails_test/rails-2.3.8-active_record/app/helpers/application_helper.rb +3 -0
  399. data/rails_test/rails-2.3.8-active_record/app/models/post.rb +3 -0
  400. data/rails_test/rails-2.3.8-active_record/config/boot.rb +110 -0
  401. data/rails_test/rails-2.3.8-active_record/config/database.yml +22 -0
  402. data/rails_test/rails-2.3.8-active_record/config/environment.rb +41 -0
  403. data/rails_test/rails-2.3.8-active_record/config/environments/development.rb +17 -0
  404. data/rails_test/rails-2.3.8-active_record/config/environments/production.rb +28 -0
  405. data/rails_test/rails-2.3.8-active_record/config/environments/test.rb +28 -0
  406. data/rails_test/rails-2.3.8-active_record/config/initializers/backtrace_silencers.rb +7 -0
  407. data/rails_test/rails-2.3.8-active_record/config/initializers/cookie_verification_secret.rb +7 -0
  408. data/rails_test/rails-2.3.8-active_record/config/initializers/inflections.rb +10 -0
  409. data/rails_test/rails-2.3.8-active_record/config/initializers/loofah.rb +1 -0
  410. data/rails_test/rails-2.3.8-active_record/config/initializers/mime_types.rb +5 -0
  411. data/rails_test/rails-2.3.8-active_record/config/initializers/new_rails_defaults.rb +21 -0
  412. data/rails_test/rails-2.3.8-active_record/config/initializers/session_store.rb +15 -0
  413. data/rails_test/rails-2.3.8-active_record/config/locales/en.yml +5 -0
  414. data/rails_test/rails-2.3.8-active_record/config/routes.rb +43 -0
  415. data/rails_test/rails-2.3.8-active_record/db/migrate/1_create_posts.rb +11 -0
  416. data/rails_test/rails-2.3.8-active_record/db/seeds.rb +7 -0
  417. data/rails_test/rails-2.3.8-active_record/public/404.html +30 -0
  418. data/rails_test/rails-2.3.8-active_record/public/422.html +30 -0
  419. data/rails_test/rails-2.3.8-active_record/public/500.html +30 -0
  420. data/rails_test/rails-2.3.8-active_record/public/favicon.ico +0 -0
  421. data/rails_test/rails-2.3.8-active_record/public/images/rails.png +0 -0
  422. data/rails_test/rails-2.3.8-active_record/public/index.html +275 -0
  423. data/rails_test/rails-2.3.8-active_record/public/javascripts/application.js +2 -0
  424. data/rails_test/rails-2.3.8-active_record/public/javascripts/controls.js +963 -0
  425. data/rails_test/rails-2.3.8-active_record/public/javascripts/dragdrop.js +973 -0
  426. data/rails_test/rails-2.3.8-active_record/public/javascripts/effects.js +1128 -0
  427. data/rails_test/rails-2.3.8-active_record/public/javascripts/prototype.js +4320 -0
  428. data/rails_test/rails-2.3.8-active_record/public/robots.txt +5 -0
  429. data/rails_test/rails-2.3.8-active_record/script/about +4 -0
  430. data/rails_test/rails-2.3.8-active_record/script/console +3 -0
  431. data/rails_test/rails-2.3.8-active_record/script/dbconsole +3 -0
  432. data/rails_test/rails-2.3.8-active_record/script/destroy +3 -0
  433. data/rails_test/rails-2.3.8-active_record/script/generate +3 -0
  434. data/rails_test/rails-2.3.8-active_record/script/performance/benchmarker +3 -0
  435. data/rails_test/rails-2.3.8-active_record/script/performance/profiler +3 -0
  436. data/rails_test/rails-2.3.8-active_record/script/plugin +3 -0
  437. data/rails_test/rails-2.3.8-active_record/script/runner +3 -0
  438. data/rails_test/rails-2.3.8-active_record/script/server +3 -0
  439. data/rails_test/rails-2.3.8-active_record/test/performance/browsing_test.rb +9 -0
  440. data/rails_test/rails-2.3.8-active_record/test/test_helper.rb +38 -0
  441. data/rails_test/rails-2.3.8-active_record/test/unit/posts_test.rb +15 -0
  442. data/rails_test/rails-2.3.8-xss_foliate/README +243 -0
  443. data/rails_test/rails-2.3.8-xss_foliate/Rakefile +10 -0
  444. data/rails_test/rails-2.3.8-xss_foliate/app/controllers/application_controller.rb +10 -0
  445. data/rails_test/rails-2.3.8-xss_foliate/app/helpers/application_helper.rb +3 -0
  446. data/rails_test/rails-2.3.8-xss_foliate/app/models/post.rb +2 -0
  447. data/rails_test/rails-2.3.8-xss_foliate/config/boot.rb +110 -0
  448. data/rails_test/rails-2.3.8-xss_foliate/config/database.yml +22 -0
  449. data/rails_test/rails-2.3.8-xss_foliate/config/environment.rb +41 -0
  450. data/rails_test/rails-2.3.8-xss_foliate/config/environments/development.rb +17 -0
  451. data/rails_test/rails-2.3.8-xss_foliate/config/environments/production.rb +28 -0
  452. data/rails_test/rails-2.3.8-xss_foliate/config/environments/test.rb +28 -0
  453. data/rails_test/rails-2.3.8-xss_foliate/config/initializers/backtrace_silencers.rb +7 -0
  454. data/rails_test/rails-2.3.8-xss_foliate/config/initializers/cookie_verification_secret.rb +7 -0
  455. data/rails_test/rails-2.3.8-xss_foliate/config/initializers/inflections.rb +10 -0
  456. data/rails_test/rails-2.3.8-xss_foliate/config/initializers/loofah.rb +2 -0
  457. data/rails_test/rails-2.3.8-xss_foliate/config/initializers/mime_types.rb +5 -0
  458. data/rails_test/rails-2.3.8-xss_foliate/config/initializers/new_rails_defaults.rb +21 -0
  459. data/rails_test/rails-2.3.8-xss_foliate/config/initializers/session_store.rb +15 -0
  460. data/rails_test/rails-2.3.8-xss_foliate/config/locales/en.yml +5 -0
  461. data/rails_test/rails-2.3.8-xss_foliate/config/routes.rb +43 -0
  462. data/rails_test/rails-2.3.8-xss_foliate/db/migrate/1_create_posts.rb +11 -0
  463. data/rails_test/rails-2.3.8-xss_foliate/db/seeds.rb +7 -0
  464. data/rails_test/rails-2.3.8-xss_foliate/public/404.html +30 -0
  465. data/rails_test/rails-2.3.8-xss_foliate/public/422.html +30 -0
  466. data/rails_test/rails-2.3.8-xss_foliate/public/500.html +30 -0
  467. data/rails_test/rails-2.3.8-xss_foliate/public/favicon.ico +0 -0
  468. data/rails_test/rails-2.3.8-xss_foliate/public/images/rails.png +0 -0
  469. data/rails_test/rails-2.3.8-xss_foliate/public/index.html +275 -0
  470. data/rails_test/rails-2.3.8-xss_foliate/public/javascripts/application.js +2 -0
  471. data/rails_test/rails-2.3.8-xss_foliate/public/javascripts/controls.js +963 -0
  472. data/rails_test/rails-2.3.8-xss_foliate/public/javascripts/dragdrop.js +973 -0
  473. data/rails_test/rails-2.3.8-xss_foliate/public/javascripts/effects.js +1128 -0
  474. data/rails_test/rails-2.3.8-xss_foliate/public/javascripts/prototype.js +4320 -0
  475. data/rails_test/rails-2.3.8-xss_foliate/public/robots.txt +5 -0
  476. data/rails_test/rails-2.3.8-xss_foliate/script/about +4 -0
  477. data/rails_test/rails-2.3.8-xss_foliate/script/console +3 -0
  478. data/rails_test/rails-2.3.8-xss_foliate/script/dbconsole +3 -0
  479. data/rails_test/rails-2.3.8-xss_foliate/script/destroy +3 -0
  480. data/rails_test/rails-2.3.8-xss_foliate/script/generate +3 -0
  481. data/rails_test/rails-2.3.8-xss_foliate/script/performance/benchmarker +3 -0
  482. data/rails_test/rails-2.3.8-xss_foliate/script/performance/profiler +3 -0
  483. data/rails_test/rails-2.3.8-xss_foliate/script/plugin +3 -0
  484. data/rails_test/rails-2.3.8-xss_foliate/script/runner +3 -0
  485. data/rails_test/rails-2.3.8-xss_foliate/script/server +3 -0
  486. data/rails_test/rails-2.3.8-xss_foliate/test/performance/browsing_test.rb +9 -0
  487. data/rails_test/rails-2.3.8-xss_foliate/test/test_helper.rb +38 -0
  488. data/rails_test/rails-2.3.8-xss_foliate/test/unit/posts_test.rb +14 -0
  489. data/rails_test/rails-3.0.0.beta4-active_record/README +281 -0
  490. data/rails_test/rails-3.0.0.beta4-active_record/Rakefile +7 -0
  491. data/rails_test/rails-3.0.0.beta4-active_record/app/controllers/application_controller.rb +4 -0
  492. data/rails_test/rails-3.0.0.beta4-active_record/app/helpers/application_helper.rb +2 -0
  493. data/rails_test/rails-3.0.0.beta4-active_record/app/models/post.rb +3 -0
  494. data/rails_test/rails-3.0.0.beta4-active_record/app/views/layouts/application.html.erb +14 -0
  495. data/rails_test/rails-3.0.0.beta4-active_record/config.ru +4 -0
  496. data/rails_test/rails-3.0.0.beta4-active_record/config/application.rb +46 -0
  497. data/rails_test/rails-3.0.0.beta4-active_record/config/boot.rb +13 -0
  498. data/rails_test/rails-3.0.0.beta4-active_record/config/database.yml +22 -0
  499. data/rails_test/rails-3.0.0.beta4-active_record/config/environment.rb +5 -0
  500. data/rails_test/rails-3.0.0.beta4-active_record/config/environments/development.rb +19 -0
  501. data/rails_test/rails-3.0.0.beta4-active_record/config/environments/production.rb +46 -0
  502. data/rails_test/rails-3.0.0.beta4-active_record/config/environments/test.rb +32 -0
  503. data/rails_test/rails-3.0.0.beta4-active_record/config/initializers/backtrace_silencers.rb +7 -0
  504. data/rails_test/rails-3.0.0.beta4-active_record/config/initializers/inflections.rb +10 -0
  505. data/rails_test/rails-3.0.0.beta4-active_record/config/initializers/mime_types.rb +5 -0
  506. data/rails_test/rails-3.0.0.beta4-active_record/config/initializers/secret_token.rb +7 -0
  507. data/rails_test/rails-3.0.0.beta4-active_record/config/initializers/session_store.rb +8 -0
  508. data/rails_test/rails-3.0.0.beta4-active_record/config/locales/en.yml +5 -0
  509. data/rails_test/rails-3.0.0.beta4-active_record/config/routes.rb +58 -0
  510. data/rails_test/rails-3.0.0.beta4-active_record/db/migrate/1_create_posts.rb +11 -0
  511. data/rails_test/rails-3.0.0.beta4-active_record/db/seeds.rb +7 -0
  512. data/rails_test/rails-3.0.0.beta4-active_record/public/404.html +26 -0
  513. data/rails_test/rails-3.0.0.beta4-active_record/public/422.html +26 -0
  514. data/rails_test/rails-3.0.0.beta4-active_record/public/500.html +26 -0
  515. data/rails_test/rails-3.0.0.beta4-active_record/public/favicon.ico +0 -0
  516. data/rails_test/rails-3.0.0.beta4-active_record/public/images/rails.png +0 -0
  517. data/rails_test/rails-3.0.0.beta4-active_record/public/index.html +279 -0
  518. data/rails_test/rails-3.0.0.beta4-active_record/public/javascripts/application.js +2 -0
  519. data/rails_test/rails-3.0.0.beta4-active_record/public/javascripts/controls.js +965 -0
  520. data/rails_test/rails-3.0.0.beta4-active_record/public/javascripts/dragdrop.js +974 -0
  521. data/rails_test/rails-3.0.0.beta4-active_record/public/javascripts/effects.js +1123 -0
  522. data/rails_test/rails-3.0.0.beta4-active_record/public/javascripts/prototype.js +4874 -0
  523. data/rails_test/rails-3.0.0.beta4-active_record/public/javascripts/rails.js +118 -0
  524. data/rails_test/rails-3.0.0.beta4-active_record/public/robots.txt +5 -0
  525. data/rails_test/rails-3.0.0.beta4-active_record/script/rails +6 -0
  526. data/rails_test/rails-3.0.0.beta4-active_record/test/performance/browsing_test.rb +9 -0
  527. data/rails_test/rails-3.0.0.beta4-active_record/test/test_helper.rb +13 -0
  528. data/rails_test/rails-3.0.0.beta4-active_record/test/unit/posts_test.rb +15 -0
  529. data/rails_test/rails-3.0.0.beta4-xss_foliate/README +281 -0
  530. data/rails_test/rails-3.0.0.beta4-xss_foliate/Rakefile +7 -0
  531. data/rails_test/rails-3.0.0.beta4-xss_foliate/app/controllers/application_controller.rb +4 -0
  532. data/rails_test/rails-3.0.0.beta4-xss_foliate/app/helpers/application_helper.rb +2 -0
  533. data/rails_test/rails-3.0.0.beta4-xss_foliate/app/models/post.rb +2 -0
  534. data/rails_test/rails-3.0.0.beta4-xss_foliate/app/views/layouts/application.html.erb +14 -0
  535. data/rails_test/rails-3.0.0.beta4-xss_foliate/config.ru +4 -0
  536. data/rails_test/rails-3.0.0.beta4-xss_foliate/config/application.rb +46 -0
  537. data/rails_test/rails-3.0.0.beta4-xss_foliate/config/boot.rb +13 -0
  538. data/rails_test/rails-3.0.0.beta4-xss_foliate/config/database.yml +22 -0
  539. data/rails_test/rails-3.0.0.beta4-xss_foliate/config/environment.rb +5 -0
  540. data/rails_test/rails-3.0.0.beta4-xss_foliate/config/environments/development.rb +19 -0
  541. data/rails_test/rails-3.0.0.beta4-xss_foliate/config/environments/production.rb +46 -0
  542. data/rails_test/rails-3.0.0.beta4-xss_foliate/config/environments/test.rb +32 -0
  543. data/rails_test/rails-3.0.0.beta4-xss_foliate/config/initializers/backtrace_silencers.rb +7 -0
  544. data/rails_test/rails-3.0.0.beta4-xss_foliate/config/initializers/inflections.rb +10 -0
  545. data/rails_test/rails-3.0.0.beta4-xss_foliate/config/initializers/loofah.rb +2 -0
  546. data/rails_test/rails-3.0.0.beta4-xss_foliate/config/initializers/mime_types.rb +5 -0
  547. data/rails_test/rails-3.0.0.beta4-xss_foliate/config/initializers/secret_token.rb +7 -0
  548. data/rails_test/rails-3.0.0.beta4-xss_foliate/config/initializers/session_store.rb +8 -0
  549. data/rails_test/rails-3.0.0.beta4-xss_foliate/config/locales/en.yml +5 -0
  550. data/rails_test/rails-3.0.0.beta4-xss_foliate/config/routes.rb +58 -0
  551. data/rails_test/rails-3.0.0.beta4-xss_foliate/db/migrate/1_create_posts.rb +11 -0
  552. data/rails_test/rails-3.0.0.beta4-xss_foliate/db/seeds.rb +7 -0
  553. data/rails_test/rails-3.0.0.beta4-xss_foliate/public/404.html +26 -0
  554. data/rails_test/rails-3.0.0.beta4-xss_foliate/public/422.html +26 -0
  555. data/rails_test/rails-3.0.0.beta4-xss_foliate/public/500.html +26 -0
  556. data/rails_test/rails-3.0.0.beta4-xss_foliate/public/favicon.ico +0 -0
  557. data/rails_test/rails-3.0.0.beta4-xss_foliate/public/images/rails.png +0 -0
  558. data/rails_test/rails-3.0.0.beta4-xss_foliate/public/index.html +279 -0
  559. data/rails_test/rails-3.0.0.beta4-xss_foliate/public/javascripts/application.js +2 -0
  560. data/rails_test/rails-3.0.0.beta4-xss_foliate/public/javascripts/controls.js +965 -0
  561. data/rails_test/rails-3.0.0.beta4-xss_foliate/public/javascripts/dragdrop.js +974 -0
  562. data/rails_test/rails-3.0.0.beta4-xss_foliate/public/javascripts/effects.js +1123 -0
  563. data/rails_test/rails-3.0.0.beta4-xss_foliate/public/javascripts/prototype.js +4874 -0
  564. data/rails_test/rails-3.0.0.beta4-xss_foliate/public/javascripts/rails.js +118 -0
  565. data/rails_test/rails-3.0.0.beta4-xss_foliate/public/robots.txt +5 -0
  566. data/rails_test/rails-3.0.0.beta4-xss_foliate/script/rails +6 -0
  567. data/rails_test/rails-3.0.0.beta4-xss_foliate/test/performance/browsing_test.rb +9 -0
  568. data/rails_test/rails-3.0.0.beta4-xss_foliate/test/test_helper.rb +13 -0
  569. data/rails_test/rails-3.0.0.beta4-xss_foliate/test/unit/posts_test.rb +14 -0
  570. data/test/helper.rb +9 -0
  571. data/test/unit/test_active_record.rb +141 -0
  572. data/test/unit/test_xss_foliate.rb +215 -0
  573. metadata +772 -0
@@ -0,0 +1,118 @@
1
+ document.observe("dom:loaded", function() {
2
+ function handleRemote(element) {
3
+ var method, url, params;
4
+
5
+ if (element.tagName.toLowerCase() === 'form') {
6
+ method = element.readAttribute('method') || 'post';
7
+ url = element.readAttribute('action');
8
+ params = element.serialize(true);
9
+ } else {
10
+ method = element.readAttribute('data-method') || 'get';
11
+ url = element.readAttribute('href');
12
+ params = {};
13
+ }
14
+
15
+ var event = element.fire("ajax:before");
16
+ if (event.stopped) return false;
17
+
18
+ new Ajax.Request(url, {
19
+ method: method,
20
+ parameters: params,
21
+ asynchronous: true,
22
+ evalScripts: true,
23
+
24
+ onLoading: function(request) { element.fire("ajax:loading", {request: request}); },
25
+ onLoaded: function(request) { element.fire("ajax:loaded", {request: request}); },
26
+ onInteractive: function(request) { element.fire("ajax:interactive", {request: request}); },
27
+ onComplete: function(request) { element.fire("ajax:complete", {request: request}); },
28
+ onSuccess: function(request) { element.fire("ajax:success", {request: request}); },
29
+ onFailure: function(request) { element.fire("ajax:failure", {request: request}); }
30
+ });
31
+
32
+ element.fire("ajax:after");
33
+ }
34
+
35
+ function handleMethod(element) {
36
+ var method, url, token_name, token;
37
+
38
+ method = element.readAttribute('data-method');
39
+ url = element.readAttribute('href');
40
+ csrf_param = $$('meta[name=csrf-param]').first();
41
+ csrf_token = $$('meta[name=csrf-token]').first();
42
+
43
+ var form = new Element('form', { method: "POST", action: url, style: "display: none;" });
44
+ element.parentNode.appendChild(form);
45
+
46
+ if (method != 'post') {
47
+ var field = new Element('input', { type: 'hidden', name: '_method', value: method });
48
+ form.appendChild(field);
49
+ }
50
+
51
+ if (csrf_param) {
52
+ var param = csrf_param.readAttribute('content');
53
+ var token = csrf_token.readAttribute('content');
54
+ var field = new Element('input', { type: 'hidden', name: param, value: token });
55
+ form.appendChild(field);
56
+ }
57
+
58
+ form.submit();
59
+ }
60
+
61
+ $(document.body).observe("click", function(event) {
62
+ var message = event.findElement().readAttribute('data-confirm');
63
+ if (message && !confirm(message)) {
64
+ event.stop();
65
+ return false;
66
+ }
67
+
68
+ var element = event.findElement("a[data-remote]");
69
+ if (element) {
70
+ handleRemote(element);
71
+ event.stop();
72
+ return true;
73
+ }
74
+
75
+ var element = event.findElement("a[data-method]");
76
+ if (element) {
77
+ handleMethod(element);
78
+ event.stop();
79
+ return true;
80
+ }
81
+ });
82
+
83
+ // TODO: I don't think submit bubbles in IE
84
+ $(document.body).observe("submit", function(event) {
85
+ var element = event.findElement(),
86
+ message = element.readAttribute('data-confirm');
87
+ if (message && !confirm(message)) {
88
+ event.stop();
89
+ return false;
90
+ }
91
+
92
+ var inputs = element.select("input[type=submit][data-disable-with]");
93
+ inputs.each(function(input) {
94
+ input.disabled = true;
95
+ input.writeAttribute('data-original-value', input.value);
96
+ input.value = input.readAttribute('data-disable-with');
97
+ });
98
+
99
+ var element = event.findElement("form[data-remote]");
100
+ if (element) {
101
+ handleRemote(element);
102
+ event.stop();
103
+ }
104
+ });
105
+
106
+ $(document.body).observe("ajax:after", function(event) {
107
+ var element = event.findElement();
108
+
109
+ if (element.tagName.toLowerCase() === 'form') {
110
+ var inputs = element.select("input[type=submit][disabled=true][data-disable-with]");
111
+ inputs.each(function(input) {
112
+ input.value = input.readAttribute('data-original-value');
113
+ input.writeAttribute('data-original-value', null);
114
+ input.disabled = false;
115
+ });
116
+ }
117
+ });
118
+ });
@@ -0,0 +1,5 @@
1
+ # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2
+ #
3
+ # To ban all spiders from the entire site uncomment the next two lines:
4
+ # User-Agent: *
5
+ # Disallow: /
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby1.8
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+ require 'rails/performance_test_help'
3
+
4
+ # Profiling results for each test method are written to tmp/performance.
5
+ class BrowsingTest < ActionDispatch::PerformanceTest
6
+ def test_homepage
7
+ get '/'
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ ENV["RAILS_ENV"] = "test"
2
+ require File.expand_path('../../config/environment', __FILE__)
3
+ require 'rails/test_help'
4
+
5
+ class ActiveSupport::TestCase
6
+ # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
7
+ #
8
+ # Note: You'll currently still have to declare fixtures explicitly in integration tests
9
+ # -- they do not yet inherit this setting
10
+ fixtures :all
11
+
12
+ # Add more helper methods to be used by all tests here...
13
+ end
@@ -0,0 +1,14 @@
1
+ require File.join(File.dirname(__FILE__), "../test_helper")
2
+
3
+ class PostsTest < Test::Unit::TestCase
4
+ def test_loofah_scrubbing
5
+ post = Post.new :title => "<script>yo dawg</script>", :body => "<script>omgwtfbbq</script>"
6
+ post.valid?
7
+ assert_equal "yo dawg", post.title
8
+ assert_equal "omgwtfbbq", post.body
9
+ end
10
+
11
+ def test_xss_foliation
12
+ assert Post.xss_foliated?
13
+ end
14
+ end
@@ -0,0 +1,9 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require 'shoulda'
4
+ require 'mocha'
5
+ require 'acts_as_fu'
6
+ require File.expand_path(File.join(File.dirname(__FILE__), "..", "lib", "loofah-activerecord"))
7
+
8
+ puts "=> testing with Nokogiri #{Nokogiri::VERSION_INFO.inspect}"
9
+ puts "=> testing with Loofah #{Loofah::VERSION}"
@@ -0,0 +1,141 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'helper'))
2
+
3
+ class TestActiveRecord < Test::Unit::TestCase
4
+
5
+ HTML_STRING = "<div>omgwtfbbq</div>"
6
+ PLAIN_TEXT = "vanilla text"
7
+
8
+ context "with a Post model" do
9
+ setup do
10
+ ActsAsFu.build_model(:posts) do
11
+ string :plain_text
12
+ string :html_string
13
+ end
14
+ end
15
+
16
+ context "scrubbing a single field as a fragment" do
17
+ context "using a symbol to indicate the attribute" do
18
+ setup do
19
+ Post.html_fragment :html_string, :scrub => :prune
20
+ assert ! Post.xss_foliated?
21
+ @post = Post.new :html_string => HTML_STRING, :plain_text => PLAIN_TEXT
22
+ end
23
+
24
+ should "scrub the specified field" do
25
+ Loofah.expects(:scrub_fragment).with(HTML_STRING, :prune).once
26
+ Loofah.expects(:scrub_fragment).with(PLAIN_TEXT, :prune).never
27
+ @post.valid?
28
+ end
29
+
30
+ should "only call scrub_fragment once" do
31
+ Loofah.expects(:scrub_fragment).once
32
+ @post.valid?
33
+ end
34
+
35
+ should "generate strings" do
36
+ @post.valid?
37
+ assert_equal String, @post.html_string.class
38
+ assert_equal HTML_STRING, @post.html_string
39
+ end
40
+ end
41
+
42
+ context "using a string to indicate the attribute" do
43
+ setup do
44
+ Post.html_fragment 'html_string', :scrub => :prune
45
+ assert ! Post.xss_foliated?
46
+ @post = Post.new :html_string => HTML_STRING, :plain_text => PLAIN_TEXT
47
+ end
48
+
49
+ should "scrub the specified field" do
50
+ Loofah.expects(:scrub_fragment).with(HTML_STRING, :prune).once
51
+ Loofah.expects(:scrub_fragment).with(PLAIN_TEXT, :prune).never
52
+ @post.valid?
53
+ end
54
+ end
55
+ end
56
+
57
+ context "scrubbing a single field as a document" do
58
+ context "using a symbol to indicate the attribute" do
59
+ setup do
60
+ Post.html_document :html_string, :scrub => :strip
61
+ @post = Post.new :html_string => HTML_STRING, :plain_text => PLAIN_TEXT
62
+ end
63
+
64
+ should "scrub the specified field, but not other fields" do
65
+ Loofah.expects(:scrub_document).with(HTML_STRING, :strip).once
66
+ Loofah.expects(:scrub_document).with(PLAIN_TEXT, :strip).never
67
+ @post.valid?
68
+ end
69
+
70
+ should "only call scrub_document once" do
71
+ Loofah.expects(:scrub_document).once
72
+ @post.valid?
73
+ end
74
+
75
+ should "generate strings" do
76
+ @post.valid?
77
+ assert_equal String, @post.html_string.class
78
+ end
79
+ end
80
+
81
+ context "using a string to indicate the attribute" do
82
+ setup do
83
+ Post.html_document 'html_string', :scrub => :strip
84
+ @post = Post.new :html_string => HTML_STRING, :plain_text => PLAIN_TEXT
85
+ end
86
+
87
+ should "scrub the specified field, but not other fields" do
88
+ Loofah.expects(:scrub_document).with(HTML_STRING, :strip).once
89
+ Loofah.expects(:scrub_document).with(PLAIN_TEXT, :strip).never
90
+ @post.valid?
91
+ end
92
+ end
93
+ end
94
+
95
+ context "not passing any options" do
96
+ should "raise ArgumentError" do
97
+ assert_raises(ArgumentError) {
98
+ Post.html_fragment :foo
99
+ }
100
+ end
101
+ end
102
+
103
+ context "not passing :scrub option" do
104
+ should "raise ArgumentError" do
105
+ assert_raise(ArgumentError) {
106
+ Post.html_fragment :foo, :bar => :quux
107
+ }
108
+ end
109
+ end
110
+
111
+ context "passing a :scrub option" do
112
+ should "not raise ArgumentError" do
113
+ assert_nothing_raised {
114
+ Post.html_fragment :foo, :scrub => :quux
115
+ }
116
+ end
117
+ end
118
+
119
+ context "passing a Scrubber" do
120
+ setup do
121
+ @called = false
122
+ @scrubber = Loofah::Scrubber.new do |node|
123
+ @called = true
124
+ end
125
+ end
126
+
127
+ should "not raise ArgumentError" do
128
+ assert_nothing_raised {
129
+ Post.html_fragment :html_string, :scrub => @scrubber
130
+ }
131
+ end
132
+
133
+ should "scrub properly" do
134
+ Post.html_fragment :html_string, :scrub => @scrubber
135
+ post = Post.new :html_string => HTML_STRING, :plain_text => PLAIN_TEXT
136
+ post.valid?
137
+ assert @called
138
+ end
139
+ end
140
+ end
141
+ end
@@ -0,0 +1,215 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'helper'))
2
+
3
+ class TestXssFoliate < Test::Unit::TestCase
4
+
5
+ HTML_STRING = "<div>omgwtfbbq</div>"
6
+ PLAIN_TEXT = "vanilla text"
7
+ INTEGER_VALUE = "1234"
8
+ WHITESPACEY = " <br> "
9
+
10
+ def new_post(overrides={})
11
+ Post.new({:html_string => HTML_STRING, :plain_text => PLAIN_TEXT, :not_a_string => INTEGER_VALUE}.merge(overrides))
12
+ end
13
+
14
+ context "with a Post model" do
15
+ setup do
16
+ ActsAsFu.build_model(:posts) do
17
+ string :plain_text
18
+ string :html_string
19
+ integer :not_a_string
20
+ end
21
+ end
22
+
23
+ context "#xss_foliated?" do
24
+ context "when xss_foliate has not been called" do
25
+ should "return false" do
26
+ assert ! Post.xss_foliated?
27
+ end
28
+ end
29
+
30
+ context "when xss_foliate has been called with no options" do
31
+ setup do
32
+ Post.xss_foliate
33
+ end
34
+
35
+ should "return true" do
36
+ assert Post.xss_foliated?
37
+ end
38
+ end
39
+
40
+ context "when xss_foliate has been called with options" do
41
+ setup do
42
+ Post.xss_foliate :prune => :plain_text
43
+ end
44
+
45
+ should "return true" do
46
+ assert Post.xss_foliated?
47
+ end
48
+ end
49
+ end
50
+
51
+ context "#xss_foliate" do
52
+ context "when passed invalid option" do
53
+ should "raise ArgumentError" do
54
+ assert_raise(ArgumentError) { Post.xss_foliate :quux => [:foo] }
55
+ end
56
+ end
57
+
58
+ context "when passed a symbol" do
59
+ should "calls the right scrubber" do
60
+ assert_nothing_raised(ArgumentError) { Post.xss_foliate :prune => :plain_text }
61
+ Loofah.expects(:scrub_fragment).with(HTML_STRING, :strip).once
62
+ Loofah.expects(:scrub_fragment).with(PLAIN_TEXT, :prune).once
63
+ new_post.valid?
64
+ end
65
+ end
66
+
67
+ context "when passed an array of symbols" do
68
+ should "calls the right scrubbers" do
69
+ assert_nothing_raised(ArgumentError) {
70
+ Post.xss_foliate :prune => [:plain_text, :html_string]
71
+ }
72
+ Loofah.expects(:scrub_fragment).with(HTML_STRING, :prune).once
73
+ Loofah.expects(:scrub_fragment).with(PLAIN_TEXT, :prune).once
74
+ new_post.valid?
75
+ end
76
+ end
77
+
78
+ context "when passed a string" do
79
+ should "calls the right scrubber" do
80
+ assert_nothing_raised(ArgumentError) { Post.xss_foliate :prune => 'plain_text' }
81
+ Loofah.expects(:scrub_fragment).with(HTML_STRING, :strip).once
82
+ Loofah.expects(:scrub_fragment).with(PLAIN_TEXT, :prune).once
83
+ new_post.valid?
84
+ end
85
+ end
86
+
87
+ context "when passed an array of strings" do
88
+ should "calls the right scrubbers" do
89
+ assert_nothing_raised(ArgumentError) {
90
+ Post.xss_foliate :prune => ['plain_text', 'html_string']
91
+ }
92
+ Loofah.expects(:scrub_fragment).with(HTML_STRING, :prune).once
93
+ Loofah.expects(:scrub_fragment).with(PLAIN_TEXT, :prune).once
94
+ new_post.valid?
95
+ end
96
+ end
97
+ end
98
+
99
+ context "declaring scrubbed fields" do
100
+ context "on all fields" do
101
+ setup do
102
+ Post.xss_foliate
103
+ end
104
+
105
+ should "scrub all fields" do
106
+ mock_doc = mock
107
+ Loofah.expects(:scrub_fragment).with(HTML_STRING, :strip).once.returns(mock_doc)
108
+ Loofah.expects(:scrub_fragment).with(PLAIN_TEXT, :strip).once.returns(mock_doc)
109
+ Loofah.expects(:scrub_fragment).with(INTEGER_VALUE, :strip).never
110
+ mock_doc.expects(:text).twice
111
+ assert new_post.valid?
112
+ end
113
+ end
114
+
115
+ context "omitting one field" do
116
+ setup do
117
+ Post.xss_foliate :except => [:plain_text]
118
+ end
119
+
120
+ should "not scrub omitted field" do
121
+ mock_doc = mock
122
+ Loofah.expects(:scrub_fragment).with(HTML_STRING, :strip).once.returns(mock_doc)
123
+ Loofah.expects(:scrub_fragment).with(PLAIN_TEXT, :strip).never
124
+ Loofah.expects(:scrub_fragment).with(INTEGER_VALUE, :strip).never
125
+ mock_doc.expects(:text).once
126
+ new_post.valid?
127
+ end
128
+ end
129
+
130
+ Loofah::Scrubbers.scrubber_symbols.each do |method|
131
+ context "declaring one field to be scrubbed with #{method}" do
132
+ setup do
133
+ Post.xss_foliate method => [:plain_text]
134
+ end
135
+
136
+ should "scrub that field appropriately" do
137
+ mock_doc = mock
138
+ Loofah.expects(:scrub_fragment).with(HTML_STRING, :strip).once
139
+ Loofah.expects(:scrub_fragment).with(PLAIN_TEXT, method).once.returns(mock_doc)
140
+ Loofah.expects(:scrub_fragment).with(INTEGER_VALUE, :strip).never
141
+ mock_doc.expects(:to_s)
142
+ new_post.valid?
143
+ end
144
+ end
145
+ end
146
+
147
+ context "declaring one field to be scrubbed with html5lib_sanitize" do
148
+ setup do
149
+ Post.xss_foliate :html5lib_sanitize => [:plain_text]
150
+ end
151
+
152
+ should "not that field appropriately" do
153
+ Loofah.expects(:scrub_fragment).with(HTML_STRING, :strip) .once
154
+ Loofah.expects(:scrub_fragment).with(PLAIN_TEXT, :escape).once
155
+ Loofah.expects(:scrub_fragment).with(INTEGER_VALUE, :strip) .never
156
+ new_post.valid?
157
+ end
158
+ end
159
+ end
160
+
161
+ context "invalid model data" do
162
+ setup do
163
+ Post.validates_presence_of :html_string
164
+ Post.xss_foliate
165
+ end
166
+
167
+ should "not be valid after sanitizing" do
168
+ Loofah.expects(:scrub_fragment).with(WHITESPACEY, :strip).once
169
+ Loofah.expects(:scrub_fragment).with(PLAIN_TEXT, :strip).once
170
+ assert ! new_post(:html_string => WHITESPACEY).valid?
171
+ end
172
+ end
173
+
174
+ context "given an XSS attempt" do
175
+ setup do
176
+ Post.xss_foliate :strip => :html_string
177
+ end
178
+
179
+ should "escape html entities" do
180
+ hackattack = "<div>&lt;script&gt;alert('evil')&lt;/script&gt;</div>"
181
+ post = new_post :html_string => hackattack, :plain_text => hackattack
182
+ post.valid?
183
+ assert_equal "<div>&lt;script&gt;alert('evil')&lt;/script&gt;</div>", post.html_string
184
+ assert_equal "&lt;script&gt;alert('evil')&lt;/script&gt;", post.plain_text
185
+ end
186
+ end
187
+
188
+ context "these tests should pass for libxml 2.7.5 and later" do
189
+ should "not scrub double quotes into html entities" do
190
+ answer = new_post(:plain_text => "\"something\"")
191
+ answer.valid?
192
+ assert_equal "\"something\"", answer.plain_text
193
+ end
194
+
195
+ should "not scrub ampersands into html entities" do
196
+ answer = new_post(:plain_text => "& Something")
197
+ answer.valid?
198
+ assert_equal "& Something", answer.plain_text
199
+ end
200
+
201
+ should "not scrub \\r html entities" do
202
+ answer = new_post(:plain_text => "Another \r Something")
203
+ answer.valid?
204
+ assert_equal "Another \r Something", answer.plain_text
205
+ end
206
+
207
+ should "not scrub \\n html entities" do
208
+ answer = new_post(:plain_text => "Another \n Something")
209
+ answer.valid?
210
+ assert_equal "Another \n Something", answer.plain_text
211
+ end
212
+ end
213
+ end
214
+ end
215
+