muck-users 3.2.6 → 3.2.7

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 (671) hide show
  1. data/Rakefile +5 -9
  2. data/VERSION +1 -1
  3. data/app/views/admin/users/_dashboard_widget.html.erb +3 -0
  4. data/config/locales/en.yml +4 -1
  5. data/muck-users.gemspec +671 -6
  6. data/test/app/controllers/application_controller.rb +15 -0
  7. data/test/app/controllers/default_controller.rb +7 -0
  8. data/test/app/helpers/application_helper.rb +3 -0
  9. data/test/app/mailers/user_mailer.rb +3 -0
  10. data/test/app/models/.keep +0 -0
  11. data/test/app/models/access_code.rb +3 -0
  12. data/test/app/models/access_code_request.rb +3 -0
  13. data/test/app/models/country.rb +13 -0
  14. data/test/app/models/language.rb +15 -0
  15. data/test/app/models/state.rb +13 -0
  16. data/test/app/models/user.rb +52 -0
  17. data/test/app/models/user_session.rb +2 -0
  18. data/test/app/views/default/index.html.erb +0 -0
  19. data/test/app/views/layouts/application.html.erb +14 -0
  20. data/test/config/application.rb +42 -0
  21. data/test/config/assets.yml +34 -0
  22. data/test/config/boot.rb +13 -0
  23. data/test/config/database.yml +15 -0
  24. data/test/config/environment.rb +5 -0
  25. data/test/config/environments/development.rb +26 -0
  26. data/test/config/environments/production.rb +49 -0
  27. data/test/config/environments/test.rb +35 -0
  28. data/test/config/initializers/backtrace_silencers.rb +7 -0
  29. data/test/config/initializers/inflections.rb +10 -0
  30. data/test/config/initializers/mime_types.rb +5 -0
  31. data/test/config/initializers/muck.rb +60 -0
  32. data/test/config/initializers/secret_token.rb +7 -0
  33. data/test/config/initializers/session_store.rb +8 -0
  34. data/test/config/locales/en.yml +5 -0
  35. data/test/config/routes.rb +4 -0
  36. data/test/db/.keep +0 -0
  37. data/test/db/migrate/20090320174818_create_muck_permissions_and_roles.rb +16 -0
  38. data/test/db/migrate/20090327231918_create_users.rb +40 -0
  39. data/test/db/migrate/20090402234137_create_languages.rb +18 -0
  40. data/test/db/migrate/20090426041056_create_countries.rb +15 -0
  41. data/test/db/migrate/20090426041103_create_states.rb +18 -0
  42. data/test/db/migrate/20100123035450_create_access_codes.rb +19 -0
  43. data/test/db/migrate/20100123233654_create_access_code_requests.rb +14 -0
  44. data/test/db/migrate/20101117172951_add_name_to_access_code_requests.rb +9 -0
  45. data/test/db/migrate/20110303183433_add_sent_to_to_access_codes.rb +9 -0
  46. data/test/db/migrate/20110420153714_add_provided_by_to_access_codes.rb +9 -0
  47. data/test/db/schema.rb +115 -0
  48. data/test/db/seeds.rb +7 -0
  49. data/test/features/step_definitions/web_steps.rb +219 -0
  50. data/test/features/support/custom_env.rb +19 -0
  51. data/test/features/support/env.rb +58 -0
  52. data/test/features/support/paths.rb +33 -0
  53. data/test/lib/tasks/.gitkeep +0 -0
  54. data/test/lib/tasks/cucumber.rake +53 -0
  55. data/test/log/production.log +0 -0
  56. data/test/log/server.log +0 -0
  57. data/test/public/.htaccess +40 -0
  58. data/test/public/404.html +30 -0
  59. data/test/public/422.html +30 -0
  60. data/test/public/500.html +30 -0
  61. data/test/public/dispatch.rb +10 -0
  62. data/test/public/favicon.ico +0 -0
  63. data/test/public/images/admin/Home.gif +0 -0
  64. data/test/public/images/admin/roles.gif +0 -0
  65. data/test/public/images/admin/source/Home.png +0 -0
  66. data/test/public/images/admin/source/User.png +0 -0
  67. data/test/public/images/admin/source/roles.png +0 -0
  68. data/test/public/images/admin/user.gif +0 -0
  69. data/test/public/images/arrow_down.gif +0 -0
  70. data/test/public/images/arrow_left.gif +0 -0
  71. data/test/public/images/arrow_right.gif +0 -0
  72. data/test/public/images/arrow_up.gif +0 -0
  73. data/test/public/images/blue/preview.gif +0 -0
  74. data/test/public/images/fancybox/blank.gif +0 -0
  75. data/test/public/images/fancybox/fancy_close.png +0 -0
  76. data/test/public/images/fancybox/fancy_closebox.png +0 -0
  77. data/test/public/images/fancybox/fancy_left.png +0 -0
  78. data/test/public/images/fancybox/fancy_loading.png +0 -0
  79. data/test/public/images/fancybox/fancy_nav_left.png +0 -0
  80. data/test/public/images/fancybox/fancy_nav_right.png +0 -0
  81. data/test/public/images/fancybox/fancy_progress.png +0 -0
  82. data/test/public/images/fancybox/fancy_right.png +0 -0
  83. data/test/public/images/fancybox/fancy_shadow_e.png +0 -0
  84. data/test/public/images/fancybox/fancy_shadow_n.png +0 -0
  85. data/test/public/images/fancybox/fancy_shadow_ne.png +0 -0
  86. data/test/public/images/fancybox/fancy_shadow_nw.png +0 -0
  87. data/test/public/images/fancybox/fancy_shadow_s.png +0 -0
  88. data/test/public/images/fancybox/fancy_shadow_se.png +0 -0
  89. data/test/public/images/fancybox/fancy_shadow_sw.png +0 -0
  90. data/test/public/images/fancybox/fancy_shadow_w.png +0 -0
  91. data/test/public/images/fancybox/fancy_title_left.png +0 -0
  92. data/test/public/images/fancybox/fancy_title_main.png +0 -0
  93. data/test/public/images/fancybox/fancy_title_over.png +0 -0
  94. data/test/public/images/fancybox/fancy_title_right.png +0 -0
  95. data/test/public/images/fancybox/fancybox-x.png +0 -0
  96. data/test/public/images/fancybox/fancybox-y.png +0 -0
  97. data/test/public/images/fancybox/fancybox.png +0 -0
  98. data/test/public/images/icon_no.gif +0 -0
  99. data/test/public/images/icon_success.gif +0 -0
  100. data/test/public/images/icons/accept.png +0 -0
  101. data/test/public/images/icons/add.png +0 -0
  102. data/test/public/images/icons/blue_guy.png +0 -0
  103. data/test/public/images/icons/button_background.png +0 -0
  104. data/test/public/images/icons/cancel.png +0 -0
  105. data/test/public/images/icons/close.png +0 -0
  106. data/test/public/images/icons/comment.png +0 -0
  107. data/test/public/images/icons/delete.png +0 -0
  108. data/test/public/images/icons/exclaim.png +0 -0
  109. data/test/public/images/icons/external.png +0 -0
  110. data/test/public/images/icons/feed.png +0 -0
  111. data/test/public/images/icons/grey_guy.png +0 -0
  112. data/test/public/images/icons/hide.png +0 -0
  113. data/test/public/images/icons/information.png +0 -0
  114. data/test/public/images/icons/minus.png +0 -0
  115. data/test/public/images/icons/pending.png +0 -0
  116. data/test/public/images/icons/question.png +0 -0
  117. data/test/public/images/icons/search_box.png +0 -0
  118. data/test/public/images/icons/star.png +0 -0
  119. data/test/public/images/icons/stop.png +0 -0
  120. data/test/public/images/icons/thumb_down.png +0 -0
  121. data/test/public/images/icons/thumb_up.png +0 -0
  122. data/test/public/images/icons/vote.png +0 -0
  123. data/test/public/images/loading-spinner.gif +0 -0
  124. data/test/public/images/loading.gif +0 -0
  125. data/test/public/images/nothing.png +0 -0
  126. data/test/public/images/profile_default.jpg +0 -0
  127. data/test/public/images/rails.png +0 -0
  128. data/test/public/images/red/preview.gif +0 -0
  129. data/test/public/images/service_icons/16/amazon.png +0 -0
  130. data/test/public/images/service_icons/16/ask.png +0 -0
  131. data/test/public/images/service_icons/16/bibsonomy.png +0 -0
  132. data/test/public/images/service_icons/16/bing.png +0 -0
  133. data/test/public/images/service_icons/16/blogger.png +0 -0
  134. data/test/public/images/service_icons/16/bloglines.png +0 -0
  135. data/test/public/images/service_icons/16/citeulike.png +0 -0
  136. data/test/public/images/service_icons/16/clipmarks.png +0 -0
  137. data/test/public/images/service_icons/16/connotea.png +0 -0
  138. data/test/public/images/service_icons/16/dailymotion.png +0 -0
  139. data/test/public/images/service_icons/16/delicious.png +0 -0
  140. data/test/public/images/service_icons/16/digg.png +0 -0
  141. data/test/public/images/service_icons/16/diigo.png +0 -0
  142. data/test/public/images/service_icons/16/facebook.png +0 -0
  143. data/test/public/images/service_icons/16/feed.png +0 -0
  144. data/test/public/images/service_icons/16/fireeagle.png +0 -0
  145. data/test/public/images/service_icons/16/flickr.png +0 -0
  146. data/test/public/images/service_icons/16/fotolog.png +0 -0
  147. data/test/public/images/service_icons/16/friendfeed.png +0 -0
  148. data/test/public/images/service_icons/16/friendster.png +0 -0
  149. data/test/public/images/service_icons/16/furl.png +0 -0
  150. data/test/public/images/service_icons/16/goodreads.png +0 -0
  151. data/test/public/images/service_icons/16/google.png +0 -0
  152. data/test/public/images/service_icons/16/googleblog.png +0 -0
  153. data/test/public/images/service_icons/16/googlenews.png +0 -0
  154. data/test/public/images/service_icons/16/icerocket.png +0 -0
  155. data/test/public/images/service_icons/16/identica.png +0 -0
  156. data/test/public/images/service_icons/16/joost.png +0 -0
  157. data/test/public/images/service_icons/16/lastfm.png +0 -0
  158. data/test/public/images/service_icons/16/librarything.png +0 -0
  159. data/test/public/images/service_icons/16/linkedin.png +0 -0
  160. data/test/public/images/service_icons/16/livejournal.png +0 -0
  161. data/test/public/images/service_icons/16/magnolia.png +0 -0
  162. data/test/public/images/service_icons/16/mendeley.png +0 -0
  163. data/test/public/images/service_icons/16/metacafe.png +0 -0
  164. data/test/public/images/service_icons/16/mixx.png +0 -0
  165. data/test/public/images/service_icons/16/myspace.png +0 -0
  166. data/test/public/images/service_icons/16/netflix.png +0 -0
  167. data/test/public/images/service_icons/16/netvibes.png +0 -0
  168. data/test/public/images/service_icons/16/newsvine.png +0 -0
  169. data/test/public/images/service_icons/16/oai.png +0 -0
  170. data/test/public/images/service_icons/16/odeo.png +0 -0
  171. data/test/public/images/service_icons/16/opml.png +0 -0
  172. data/test/public/images/service_icons/16/pandora.png +0 -0
  173. data/test/public/images/service_icons/16/photobucket.png +0 -0
  174. data/test/public/images/service_icons/16/picasa.png +0 -0
  175. data/test/public/images/service_icons/16/polyvore.png +0 -0
  176. data/test/public/images/service_icons/16/pownce.png +0 -0
  177. data/test/public/images/service_icons/16/reddit.png +0 -0
  178. data/test/public/images/service_icons/16/simpy.png +0 -0
  179. data/test/public/images/service_icons/16/smugmug.png +0 -0
  180. data/test/public/images/service_icons/16/stumbleupon.png +0 -0
  181. data/test/public/images/service_icons/16/tag.png +0 -0
  182. data/test/public/images/service_icons/16/technorati.png +0 -0
  183. data/test/public/images/service_icons/16/tumblr.png +0 -0
  184. data/test/public/images/service_icons/16/twine.png +0 -0
  185. data/test/public/images/service_icons/16/twitter.png +0 -0
  186. data/test/public/images/service_icons/16/vimeo.png +0 -0
  187. data/test/public/images/service_icons/16/webshots.png +0 -0
  188. data/test/public/images/service_icons/16/wordpress.png +0 -0
  189. data/test/public/images/service_icons/16/xanga.png +0 -0
  190. data/test/public/images/service_icons/16/yahoo.png +0 -0
  191. data/test/public/images/service_icons/16/yelp.png +0 -0
  192. data/test/public/images/service_icons/16/youtube.png +0 -0
  193. data/test/public/images/service_icons/16/zooomr.png +0 -0
  194. data/test/public/images/service_icons/16/zotero.png +0 -0
  195. data/test/public/images/service_icons/24/amazon.png +0 -0
  196. data/test/public/images/service_icons/24/ask.png +0 -0
  197. data/test/public/images/service_icons/24/bibsonomy.png +0 -0
  198. data/test/public/images/service_icons/24/bing.png +0 -0
  199. data/test/public/images/service_icons/24/blogger.png +0 -0
  200. data/test/public/images/service_icons/24/bloglines.png +0 -0
  201. data/test/public/images/service_icons/24/citeulike.png +0 -0
  202. data/test/public/images/service_icons/24/clipmarks.png +0 -0
  203. data/test/public/images/service_icons/24/connotea.png +0 -0
  204. data/test/public/images/service_icons/24/dailymotion.png +0 -0
  205. data/test/public/images/service_icons/24/delicious.png +0 -0
  206. data/test/public/images/service_icons/24/digg.png +0 -0
  207. data/test/public/images/service_icons/24/diigo.png +0 -0
  208. data/test/public/images/service_icons/24/facebook.png +0 -0
  209. data/test/public/images/service_icons/24/feed.png +0 -0
  210. data/test/public/images/service_icons/24/fireeagle.png +0 -0
  211. data/test/public/images/service_icons/24/flickr.png +0 -0
  212. data/test/public/images/service_icons/24/fotolog.png +0 -0
  213. data/test/public/images/service_icons/24/friendfeed.png +0 -0
  214. data/test/public/images/service_icons/24/friendster.png +0 -0
  215. data/test/public/images/service_icons/24/furl.png +0 -0
  216. data/test/public/images/service_icons/24/goodreads.png +0 -0
  217. data/test/public/images/service_icons/24/google.png +0 -0
  218. data/test/public/images/service_icons/24/googleblog.png +0 -0
  219. data/test/public/images/service_icons/24/googlenews.png +0 -0
  220. data/test/public/images/service_icons/24/icerocket.png +0 -0
  221. data/test/public/images/service_icons/24/identica.png +0 -0
  222. data/test/public/images/service_icons/24/joost.png +0 -0
  223. data/test/public/images/service_icons/24/lastfm.png +0 -0
  224. data/test/public/images/service_icons/24/librarything.png +0 -0
  225. data/test/public/images/service_icons/24/linkedin.png +0 -0
  226. data/test/public/images/service_icons/24/livejournal.png +0 -0
  227. data/test/public/images/service_icons/24/magnolia.png +0 -0
  228. data/test/public/images/service_icons/24/mendeley.png +0 -0
  229. data/test/public/images/service_icons/24/metacafe.png +0 -0
  230. data/test/public/images/service_icons/24/mixx.png +0 -0
  231. data/test/public/images/service_icons/24/myspace.png +0 -0
  232. data/test/public/images/service_icons/24/netflix.png +0 -0
  233. data/test/public/images/service_icons/24/netvibes.png +0 -0
  234. data/test/public/images/service_icons/24/newsvine.png +0 -0
  235. data/test/public/images/service_icons/24/oai.png +0 -0
  236. data/test/public/images/service_icons/24/odeo.png +0 -0
  237. data/test/public/images/service_icons/24/opml.png +0 -0
  238. data/test/public/images/service_icons/24/pandora.png +0 -0
  239. data/test/public/images/service_icons/24/photobucket.png +0 -0
  240. data/test/public/images/service_icons/24/picasa.png +0 -0
  241. data/test/public/images/service_icons/24/polyvore.png +0 -0
  242. data/test/public/images/service_icons/24/pownce.png +0 -0
  243. data/test/public/images/service_icons/24/reddit.png +0 -0
  244. data/test/public/images/service_icons/24/simpy.png +0 -0
  245. data/test/public/images/service_icons/24/smugmug.png +0 -0
  246. data/test/public/images/service_icons/24/stumbleupon.png +0 -0
  247. data/test/public/images/service_icons/24/tag.png +0 -0
  248. data/test/public/images/service_icons/24/technorati.png +0 -0
  249. data/test/public/images/service_icons/24/tumblr.png +0 -0
  250. data/test/public/images/service_icons/24/twine.png +0 -0
  251. data/test/public/images/service_icons/24/twitter.png +0 -0
  252. data/test/public/images/service_icons/24/vimeo.png +0 -0
  253. data/test/public/images/service_icons/24/webshots.png +0 -0
  254. data/test/public/images/service_icons/24/wordpress.png +0 -0
  255. data/test/public/images/service_icons/24/xanga.png +0 -0
  256. data/test/public/images/service_icons/24/yahoo.png +0 -0
  257. data/test/public/images/service_icons/24/yelp.png +0 -0
  258. data/test/public/images/service_icons/24/youtube.png +0 -0
  259. data/test/public/images/service_icons/24/zooomr.png +0 -0
  260. data/test/public/images/service_icons/24/zotero.png +0 -0
  261. data/test/public/images/service_icons/48/amazon.png +0 -0
  262. data/test/public/images/service_icons/48/ask.png +0 -0
  263. data/test/public/images/service_icons/48/bibsonomy.png +0 -0
  264. data/test/public/images/service_icons/48/bing.png +0 -0
  265. data/test/public/images/service_icons/48/blogger.png +0 -0
  266. data/test/public/images/service_icons/48/bloglines.png +0 -0
  267. data/test/public/images/service_icons/48/citeulike.png +0 -0
  268. data/test/public/images/service_icons/48/clipmarks.png +0 -0
  269. data/test/public/images/service_icons/48/connotea.png +0 -0
  270. data/test/public/images/service_icons/48/dailymotion.png +0 -0
  271. data/test/public/images/service_icons/48/delicious.png +0 -0
  272. data/test/public/images/service_icons/48/digg.png +0 -0
  273. data/test/public/images/service_icons/48/diigo.png +0 -0
  274. data/test/public/images/service_icons/48/facebook.png +0 -0
  275. data/test/public/images/service_icons/48/feed.png +0 -0
  276. data/test/public/images/service_icons/48/fireeagle.png +0 -0
  277. data/test/public/images/service_icons/48/flickr.png +0 -0
  278. data/test/public/images/service_icons/48/fotolog.png +0 -0
  279. data/test/public/images/service_icons/48/friendfeed.png +0 -0
  280. data/test/public/images/service_icons/48/friendster.png +0 -0
  281. data/test/public/images/service_icons/48/furl.png +0 -0
  282. data/test/public/images/service_icons/48/goodreads.png +0 -0
  283. data/test/public/images/service_icons/48/google.png +0 -0
  284. data/test/public/images/service_icons/48/googleblog.png +0 -0
  285. data/test/public/images/service_icons/48/googlenews.png +0 -0
  286. data/test/public/images/service_icons/48/icerocket.png +0 -0
  287. data/test/public/images/service_icons/48/identica.png +0 -0
  288. data/test/public/images/service_icons/48/joost.png +0 -0
  289. data/test/public/images/service_icons/48/lastfm.png +0 -0
  290. data/test/public/images/service_icons/48/librarything.png +0 -0
  291. data/test/public/images/service_icons/48/linkedin.png +0 -0
  292. data/test/public/images/service_icons/48/livejournal.png +0 -0
  293. data/test/public/images/service_icons/48/magnolia.png +0 -0
  294. data/test/public/images/service_icons/48/mendeley.png +0 -0
  295. data/test/public/images/service_icons/48/metacafe.png +0 -0
  296. data/test/public/images/service_icons/48/mixx.png +0 -0
  297. data/test/public/images/service_icons/48/myspace.png +0 -0
  298. data/test/public/images/service_icons/48/netflix.png +0 -0
  299. data/test/public/images/service_icons/48/netvibes.png +0 -0
  300. data/test/public/images/service_icons/48/newsvine.png +0 -0
  301. data/test/public/images/service_icons/48/oai.png +0 -0
  302. data/test/public/images/service_icons/48/odeo.png +0 -0
  303. data/test/public/images/service_icons/48/opml.png +0 -0
  304. data/test/public/images/service_icons/48/pandora.png +0 -0
  305. data/test/public/images/service_icons/48/photobucket.png +0 -0
  306. data/test/public/images/service_icons/48/picasa.png +0 -0
  307. data/test/public/images/service_icons/48/polyvore.png +0 -0
  308. data/test/public/images/service_icons/48/pownce.png +0 -0
  309. data/test/public/images/service_icons/48/reddit.png +0 -0
  310. data/test/public/images/service_icons/48/simpy.png +0 -0
  311. data/test/public/images/service_icons/48/smugmug.png +0 -0
  312. data/test/public/images/service_icons/48/stumbleupon.png +0 -0
  313. data/test/public/images/service_icons/48/tag.png +0 -0
  314. data/test/public/images/service_icons/48/technorati.png +0 -0
  315. data/test/public/images/service_icons/48/tumblr.png +0 -0
  316. data/test/public/images/service_icons/48/twine.png +0 -0
  317. data/test/public/images/service_icons/48/twitter.png +0 -0
  318. data/test/public/images/service_icons/48/vimeo.png +0 -0
  319. data/test/public/images/service_icons/48/webshots.png +0 -0
  320. data/test/public/images/service_icons/48/wordpress.png +0 -0
  321. data/test/public/images/service_icons/48/xanga.png +0 -0
  322. data/test/public/images/service_icons/48/yahoo.png +0 -0
  323. data/test/public/images/service_icons/48/yelp.png +0 -0
  324. data/test/public/images/service_icons/48/youtube.png +0 -0
  325. data/test/public/images/service_icons/48/zooomr.png +0 -0
  326. data/test/public/images/service_icons/48/zotero.png +0 -0
  327. data/test/public/images/service_icons/60/amazon.png +0 -0
  328. data/test/public/images/service_icons/60/ask.png +0 -0
  329. data/test/public/images/service_icons/60/bibsonomy.png +0 -0
  330. data/test/public/images/service_icons/60/bing.png +0 -0
  331. data/test/public/images/service_icons/60/blogger.png +0 -0
  332. data/test/public/images/service_icons/60/bloglines.png +0 -0
  333. data/test/public/images/service_icons/60/citeulike.png +0 -0
  334. data/test/public/images/service_icons/60/clipmarks.png +0 -0
  335. data/test/public/images/service_icons/60/connotea.png +0 -0
  336. data/test/public/images/service_icons/60/dailymotion.png +0 -0
  337. data/test/public/images/service_icons/60/delicious.png +0 -0
  338. data/test/public/images/service_icons/60/digg.png +0 -0
  339. data/test/public/images/service_icons/60/diigo.png +0 -0
  340. data/test/public/images/service_icons/60/facebook.png +0 -0
  341. data/test/public/images/service_icons/60/feed.png +0 -0
  342. data/test/public/images/service_icons/60/fireeagle.png +0 -0
  343. data/test/public/images/service_icons/60/flickr.png +0 -0
  344. data/test/public/images/service_icons/60/fotolog.png +0 -0
  345. data/test/public/images/service_icons/60/friendfeed.png +0 -0
  346. data/test/public/images/service_icons/60/friendster.png +0 -0
  347. data/test/public/images/service_icons/60/furl.png +0 -0
  348. data/test/public/images/service_icons/60/goodreads.png +0 -0
  349. data/test/public/images/service_icons/60/google.png +0 -0
  350. data/test/public/images/service_icons/60/googleblog.png +0 -0
  351. data/test/public/images/service_icons/60/googlenews.png +0 -0
  352. data/test/public/images/service_icons/60/icerocket.png +0 -0
  353. data/test/public/images/service_icons/60/identica.png +0 -0
  354. data/test/public/images/service_icons/60/joost.png +0 -0
  355. data/test/public/images/service_icons/60/lastfm.png +0 -0
  356. data/test/public/images/service_icons/60/librarything.png +0 -0
  357. data/test/public/images/service_icons/60/linkedin.png +0 -0
  358. data/test/public/images/service_icons/60/livejournal.png +0 -0
  359. data/test/public/images/service_icons/60/magnolia.png +0 -0
  360. data/test/public/images/service_icons/60/mendeley.png +0 -0
  361. data/test/public/images/service_icons/60/metacafe.png +0 -0
  362. data/test/public/images/service_icons/60/mixx.png +0 -0
  363. data/test/public/images/service_icons/60/myspace.png +0 -0
  364. data/test/public/images/service_icons/60/netflix.png +0 -0
  365. data/test/public/images/service_icons/60/netvibes.png +0 -0
  366. data/test/public/images/service_icons/60/newsvine.png +0 -0
  367. data/test/public/images/service_icons/60/oai.png +0 -0
  368. data/test/public/images/service_icons/60/odeo.png +0 -0
  369. data/test/public/images/service_icons/60/opml.png +0 -0
  370. data/test/public/images/service_icons/60/pandora.png +0 -0
  371. data/test/public/images/service_icons/60/photobucket.png +0 -0
  372. data/test/public/images/service_icons/60/picasa.png +0 -0
  373. data/test/public/images/service_icons/60/polyvore.png +0 -0
  374. data/test/public/images/service_icons/60/pownce.png +0 -0
  375. data/test/public/images/service_icons/60/reddit.png +0 -0
  376. data/test/public/images/service_icons/60/simpy.png +0 -0
  377. data/test/public/images/service_icons/60/smugmug.png +0 -0
  378. data/test/public/images/service_icons/60/stumbleupon.png +0 -0
  379. data/test/public/images/service_icons/60/tag.png +0 -0
  380. data/test/public/images/service_icons/60/technorati.png +0 -0
  381. data/test/public/images/service_icons/60/tumblr.png +0 -0
  382. data/test/public/images/service_icons/60/twine.png +0 -0
  383. data/test/public/images/service_icons/60/twitter.png +0 -0
  384. data/test/public/images/service_icons/60/vimeo.png +0 -0
  385. data/test/public/images/service_icons/60/webshots.png +0 -0
  386. data/test/public/images/service_icons/60/wordpress.png +0 -0
  387. data/test/public/images/service_icons/60/xanga.png +0 -0
  388. data/test/public/images/service_icons/60/yahoo.png +0 -0
  389. data/test/public/images/service_icons/60/yelp.png +0 -0
  390. data/test/public/images/service_icons/60/youtube.png +0 -0
  391. data/test/public/images/service_icons/60/zooomr.png +0 -0
  392. data/test/public/images/service_icons/60/zotero.png +0 -0
  393. data/test/public/images/service_icons/facebook_friend_links.jpg +0 -0
  394. data/test/public/images/service_icons/facebook_my_links.jpg +0 -0
  395. data/test/public/images/service_icons/source/Aquaticus_Social_Icon_template_by_jwloh.psd +0 -0
  396. data/test/public/images/service_icons/source/Google.psd +0 -0
  397. data/test/public/images/service_icons/source/Quake 9 Design.webloc +0 -0
  398. data/test/public/images/service_icons/source/ReadMe.rtf +52 -0
  399. data/test/public/images/service_icons/source/amazon.png +0 -0
  400. data/test/public/images/service_icons/source/aquaticus.social.png +0 -0
  401. data/test/public/images/service_icons/source/ask.png +0 -0
  402. data/test/public/images/service_icons/source/ask.psd +0 -0
  403. data/test/public/images/service_icons/source/bibsonomy.png +0 -0
  404. data/test/public/images/service_icons/source/bibsonomy.psd +0 -0
  405. data/test/public/images/service_icons/source/bing.png +0 -0
  406. data/test/public/images/service_icons/source/bing.psd +0 -0
  407. data/test/public/images/service_icons/source/blogger.png +0 -0
  408. data/test/public/images/service_icons/source/bloglines.png +0 -0
  409. data/test/public/images/service_icons/source/bloglines.psd +0 -0
  410. data/test/public/images/service_icons/source/citeulike.png +0 -0
  411. data/test/public/images/service_icons/source/clipmarks.png +0 -0
  412. data/test/public/images/service_icons/source/connotea.png +0 -0
  413. data/test/public/images/service_icons/source/connotea.psd +0 -0
  414. data/test/public/images/service_icons/source/dailymotion.png +0 -0
  415. data/test/public/images/service_icons/source/delicious.png +0 -0
  416. data/test/public/images/service_icons/source/digg.png +0 -0
  417. data/test/public/images/service_icons/source/diigo.png +0 -0
  418. data/test/public/images/service_icons/source/facebook.png +0 -0
  419. data/test/public/images/service_icons/source/feed.png +0 -0
  420. data/test/public/images/service_icons/source/fireeagle.psd +0 -0
  421. data/test/public/images/service_icons/source/flickr.png +0 -0
  422. data/test/public/images/service_icons/source/fotolog.png +0 -0
  423. data/test/public/images/service_icons/source/friendfeed.png +0 -0
  424. data/test/public/images/service_icons/source/friendster.png +0 -0
  425. data/test/public/images/service_icons/source/furl.png +0 -0
  426. data/test/public/images/service_icons/source/goodreads.png +0 -0
  427. data/test/public/images/service_icons/source/google.png +0 -0
  428. data/test/public/images/service_icons/source/googleblog.png +0 -0
  429. data/test/public/images/service_icons/source/googlenews.png +0 -0
  430. data/test/public/images/service_icons/source/icerocket.png +0 -0
  431. data/test/public/images/service_icons/source/icerocket.psd +0 -0
  432. data/test/public/images/service_icons/source/identica.png +0 -0
  433. data/test/public/images/service_icons/source/joost.png +0 -0
  434. data/test/public/images/service_icons/source/lastfm.png +0 -0
  435. data/test/public/images/service_icons/source/librarything.png +0 -0
  436. data/test/public/images/service_icons/source/linkedin.png +0 -0
  437. data/test/public/images/service_icons/source/livejournal.png +0 -0
  438. data/test/public/images/service_icons/source/magnolia.png +0 -0
  439. data/test/public/images/service_icons/source/mendeley.png +0 -0
  440. data/test/public/images/service_icons/source/metacafe.png +0 -0
  441. data/test/public/images/service_icons/source/metacafe.psd +0 -0
  442. data/test/public/images/service_icons/source/mixx.png +0 -0
  443. data/test/public/images/service_icons/source/myspace.png +0 -0
  444. data/test/public/images/service_icons/source/netflix.png +0 -0
  445. data/test/public/images/service_icons/source/netvibes.png +0 -0
  446. data/test/public/images/service_icons/source/newsvine.png +0 -0
  447. data/test/public/images/service_icons/source/oai.png +0 -0
  448. data/test/public/images/service_icons/source/odeo.png +0 -0
  449. data/test/public/images/service_icons/source/opml.png +0 -0
  450. data/test/public/images/service_icons/source/pandora.png +0 -0
  451. data/test/public/images/service_icons/source/photobucket.png +0 -0
  452. data/test/public/images/service_icons/source/picasa.png +0 -0
  453. data/test/public/images/service_icons/source/polyvore.png +0 -0
  454. data/test/public/images/service_icons/source/posterous.psd +0 -0
  455. data/test/public/images/service_icons/source/pownce.png +0 -0
  456. data/test/public/images/service_icons/source/reddit.png +0 -0
  457. data/test/public/images/service_icons/source/simpy.png +0 -0
  458. data/test/public/images/service_icons/source/smugmug.png +0 -0
  459. data/test/public/images/service_icons/source/stumbleupon.png +0 -0
  460. data/test/public/images/service_icons/source/tag.png +0 -0
  461. data/test/public/images/service_icons/source/technorati.png +0 -0
  462. data/test/public/images/service_icons/source/template.png +0 -0
  463. data/test/public/images/service_icons/source/tumblr.png +0 -0
  464. data/test/public/images/service_icons/source/twine.png +0 -0
  465. data/test/public/images/service_icons/source/twine.psd +0 -0
  466. data/test/public/images/service_icons/source/twitter.png +0 -0
  467. data/test/public/images/service_icons/source/vimeo.png +0 -0
  468. data/test/public/images/service_icons/source/webshots.png +0 -0
  469. data/test/public/images/service_icons/source/wordpress.png +0 -0
  470. data/test/public/images/service_icons/source/xanga.png +0 -0
  471. data/test/public/images/service_icons/source/yahoo.png +0 -0
  472. data/test/public/images/service_icons/source/yelp.png +0 -0
  473. data/test/public/images/service_icons/source/youtube.png +0 -0
  474. data/test/public/images/service_icons/source/zooomr.png +0 -0
  475. data/test/public/images/service_icons/source/zotero.png +0 -0
  476. data/test/public/images/spinner.gif +0 -0
  477. data/test/public/images/sprites.png +0 -0
  478. data/test/public/javascripts/application.js +2 -0
  479. data/test/public/javascripts/builder.js +136 -0
  480. data/test/public/javascripts/controls.js +963 -0
  481. data/test/public/javascripts/dragdrop.js +972 -0
  482. data/test/public/javascripts/effects.js +1120 -0
  483. data/test/public/javascripts/fancyzoom.min.js +1 -0
  484. data/test/public/javascripts/jquery/colorpicker.js +450 -0
  485. data/test/public/javascripts/jquery/jquery-1.5.1.js +8316 -0
  486. data/test/public/javascripts/jquery/jquery-ui-1.8.11.custom.js +11577 -0
  487. data/test/public/javascripts/jquery/jquery-ui-1.8.4.custom.min.js +763 -0
  488. data/test/public/javascripts/jquery/jquery-ui.js +781 -0
  489. data/test/public/javascripts/jquery/jquery.autocomplete.js.readme +6 -0
  490. data/test/public/javascripts/jquery/jquery.autocomplete.min.js +15 -0
  491. data/test/public/javascripts/jquery/jquery.autocomplete.pack.js +767 -0
  492. data/test/public/javascripts/jquery/jquery.cookie.js +96 -0
  493. data/test/public/javascripts/jquery/jquery.easing.js +46 -0
  494. data/test/public/javascripts/jquery/jquery.fancybox.js +46 -0
  495. data/test/public/javascripts/jquery/jquery.form.js +675 -0
  496. data/test/public/javascripts/jquery/jquery.jgrowl.js +9 -0
  497. data/test/public/javascripts/jquery/jquery.js +154 -0
  498. data/test/public/javascripts/jquery/jquery.metadata.min.js +13 -0
  499. data/test/public/javascripts/jquery/jquery.mousewheel.js +13 -0
  500. data/test/public/javascripts/jquery/jquery.queryString.js +33 -0
  501. data/test/public/javascripts/jquery/jquery.swapimage.js +66 -0
  502. data/test/public/javascripts/jquery/jquery.swapimage.min.js +11 -0
  503. data/test/public/javascripts/jquery/jquery.timers.js +138 -0
  504. data/test/public/javascripts/jquery/jquery.tips.js +75 -0
  505. data/test/public/javascripts/jquery/jrails.js +1 -0
  506. data/test/public/javascripts/muck-countries.js +50 -0
  507. data/test/public/javascripts/muck-src.js +147 -0
  508. data/test/public/javascripts/muck-users.js +20 -0
  509. data/test/public/javascripts/muck.js +149 -0
  510. data/test/public/javascripts/muck_activities.js +100 -0
  511. data/test/public/javascripts/muck_admin.js +0 -0
  512. data/test/public/javascripts/muck_countries.js +50 -0
  513. data/test/public/javascripts/muck_time/en.js +53 -0
  514. data/test/public/javascripts/prototype.js +4225 -0
  515. data/test/public/javascripts/rails.js +175 -0
  516. data/test/public/javascripts/scriptaculous.js +58 -0
  517. data/test/public/javascripts/slider.js +277 -0
  518. data/test/public/javascripts/sound.js +60 -0
  519. data/test/public/javascripts/tree.js +107 -0
  520. data/test/public/robots.txt +1 -0
  521. data/test/public/stylesheets/.gitkeep +0 -0
  522. data/test/public/stylesheets/.keep +0 -0
  523. data/test/public/stylesheets/admin.css +75 -0
  524. data/test/public/stylesheets/application.css +0 -0
  525. data/test/public/stylesheets/blueprint/ie.css +26 -0
  526. data/test/public/stylesheets/blueprint/liquid_screen.css +203 -0
  527. data/test/public/stylesheets/blueprint/plugins/buttons/icons/cross.png +0 -0
  528. data/test/public/stylesheets/blueprint/plugins/buttons/icons/key.png +0 -0
  529. data/test/public/stylesheets/blueprint/plugins/buttons/icons/tick.png +0 -0
  530. data/test/public/stylesheets/blueprint/plugins/buttons/readme.txt +32 -0
  531. data/test/public/stylesheets/blueprint/plugins/buttons/screen.css +97 -0
  532. data/test/public/stylesheets/blueprint/plugins/fancy-type/readme.txt +14 -0
  533. data/test/public/stylesheets/blueprint/plugins/fancy-type/screen.css +71 -0
  534. data/test/public/stylesheets/blueprint/plugins/link-icons/icons/doc.png +0 -0
  535. data/test/public/stylesheets/blueprint/plugins/link-icons/icons/email.png +0 -0
  536. data/test/public/stylesheets/blueprint/plugins/link-icons/icons/external.png +0 -0
  537. data/test/public/stylesheets/blueprint/plugins/link-icons/icons/feed.png +0 -0
  538. data/test/public/stylesheets/blueprint/plugins/link-icons/icons/im.png +0 -0
  539. data/test/public/stylesheets/blueprint/plugins/link-icons/icons/pdf.png +0 -0
  540. data/test/public/stylesheets/blueprint/plugins/link-icons/icons/visited.png +0 -0
  541. data/test/public/stylesheets/blueprint/plugins/link-icons/icons/xls.png +0 -0
  542. data/test/public/stylesheets/blueprint/plugins/link-icons/readme.txt +18 -0
  543. data/test/public/stylesheets/blueprint/plugins/link-icons/screen.css +40 -0
  544. data/test/public/stylesheets/blueprint/plugins/liquid/liquid.css +134 -0
  545. data/test/public/stylesheets/blueprint/plugins/liquid/src/liquid.css +197 -0
  546. data/test/public/stylesheets/blueprint/plugins/rtl/readme.txt +10 -0
  547. data/test/public/stylesheets/blueprint/plugins/rtl/screen.css +109 -0
  548. data/test/public/stylesheets/blueprint/print.css +30 -0
  549. data/test/public/stylesheets/blueprint/screen.css +251 -0
  550. data/test/public/stylesheets/blueprint/sprite.css +1 -0
  551. data/test/public/stylesheets/blueprint/src/forms.css +49 -0
  552. data/test/public/stylesheets/blueprint/src/grid.css +213 -0
  553. data/test/public/stylesheets/blueprint/src/grid.png +0 -0
  554. data/test/public/stylesheets/blueprint/src/ie.css +59 -0
  555. data/test/public/stylesheets/blueprint/src/print.css +85 -0
  556. data/test/public/stylesheets/blueprint/src/reset.css +38 -0
  557. data/test/public/stylesheets/blueprint/src/typography.css +105 -0
  558. data/test/public/stylesheets/default.css +0 -0
  559. data/test/public/stylesheets/flick/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  560. data/test/public/stylesheets/flick/images/ui-bg_flat_0_eeeeee_40x100.png +0 -0
  561. data/test/public/stylesheets/flick/images/ui-bg_flat_55_ffffff_40x100.png +0 -0
  562. data/test/public/stylesheets/flick/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  563. data/test/public/stylesheets/flick/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  564. data/test/public/stylesheets/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
  565. data/test/public/stylesheets/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
  566. data/test/public/stylesheets/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
  567. data/test/public/stylesheets/flick/images/ui-icons_0073ea_256x240.png +0 -0
  568. data/test/public/stylesheets/flick/images/ui-icons_454545_256x240.png +0 -0
  569. data/test/public/stylesheets/flick/images/ui-icons_666666_256x240.png +0 -0
  570. data/test/public/stylesheets/flick/images/ui-icons_ff0084_256x240.png +0 -0
  571. data/test/public/stylesheets/flick/images/ui-icons_ffffff_256x240.png +0 -0
  572. data/test/public/stylesheets/flick/jquery-ui-1.8.1.custom.css +486 -0
  573. data/test/public/stylesheets/jquery/cupertino/images/ui-bg_diagonals-small_0_aaaaaa_40x40.png +0 -0
  574. data/test/public/stylesheets/jquery/cupertino/images/ui-bg_diagonals-thick_15_444444_40x40.png +0 -0
  575. data/test/public/stylesheets/jquery/cupertino/images/ui-bg_glass_100_f0f0f0_1x400.png +0 -0
  576. data/test/public/stylesheets/jquery/cupertino/images/ui-bg_glass_50_99c2ff_1x400.png +0 -0
  577. data/test/public/stylesheets/jquery/cupertino/images/ui-bg_glass_55_fbf5d0_1x400.png +0 -0
  578. data/test/public/stylesheets/jquery/cupertino/images/ui-bg_glass_80_e6e6e6_1x400.png +0 -0
  579. data/test/public/stylesheets/jquery/cupertino/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  580. data/test/public/stylesheets/jquery/cupertino/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png +0 -0
  581. data/test/public/stylesheets/jquery/cupertino/images/ui-bg_highlight-soft_100_e7eef3_1x100.png +0 -0
  582. data/test/public/stylesheets/jquery/cupertino/images/ui-icons_222222_256x240.png +0 -0
  583. data/test/public/stylesheets/jquery/cupertino/images/ui-icons_2694e8_256x240.png +0 -0
  584. data/test/public/stylesheets/jquery/cupertino/images/ui-icons_2e83ff_256x240.png +0 -0
  585. data/test/public/stylesheets/jquery/cupertino/images/ui-icons_72a7cf_256x240.png +0 -0
  586. data/test/public/stylesheets/jquery/cupertino/images/ui-icons_888888_256x240.png +0 -0
  587. data/test/public/stylesheets/jquery/cupertino/images/ui-icons_cd0a0a_256x240.png +0 -0
  588. data/test/public/stylesheets/jquery/cupertino/images/ui-icons_ffffff_256x240.png +0 -0
  589. data/test/public/stylesheets/jquery/cupertino/jquery-ui-1.7.1.custom.css +404 -0
  590. data/test/public/stylesheets/jquery/cupertino/jquery-ui-1.7.2.custom.css +160 -0
  591. data/test/public/stylesheets/jquery/jquery.autocomplete.css +15 -0
  592. data/test/public/stylesheets/jquery/jquery.fancybox.css +77 -0
  593. data/test/public/stylesheets/jquery/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  594. data/test/public/stylesheets/jquery/redmond/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
  595. data/test/public/stylesheets/jquery/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
  596. data/test/public/stylesheets/jquery/redmond/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
  597. data/test/public/stylesheets/jquery/redmond/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  598. data/test/public/stylesheets/jquery/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
  599. data/test/public/stylesheets/jquery/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
  600. data/test/public/stylesheets/jquery/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
  601. data/test/public/stylesheets/jquery/redmond/images/ui-icons_217bc0_256x240.png +0 -0
  602. data/test/public/stylesheets/jquery/redmond/images/ui-icons_2e83ff_256x240.png +0 -0
  603. data/test/public/stylesheets/jquery/redmond/images/ui-icons_469bdd_256x240.png +0 -0
  604. data/test/public/stylesheets/jquery/redmond/images/ui-icons_6da8d5_256x240.png +0 -0
  605. data/test/public/stylesheets/jquery/redmond/images/ui-icons_cd0a0a_256x240.png +0 -0
  606. data/test/public/stylesheets/jquery/redmond/images/ui-icons_d8e7f3_256x240.png +0 -0
  607. data/test/public/stylesheets/jquery/redmond/images/ui-icons_f9bd01_256x240.png +0 -0
  608. data/test/public/stylesheets/jquery/redmond/jquery-ui-1.7.1.custom.css +404 -0
  609. data/test/public/stylesheets/jquery/redmond/jquery-ui-1.7.2.custom.css +160 -0
  610. data/test/public/stylesheets/jquery/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  611. data/test/public/stylesheets/jquery/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  612. data/test/public/stylesheets/jquery/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  613. data/test/public/stylesheets/jquery/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  614. data/test/public/stylesheets/jquery/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  615. data/test/public/stylesheets/jquery/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  616. data/test/public/stylesheets/jquery/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  617. data/test/public/stylesheets/jquery/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  618. data/test/public/stylesheets/jquery/smoothness/images/ui-icons_222222_256x240.png +0 -0
  619. data/test/public/stylesheets/jquery/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  620. data/test/public/stylesheets/jquery/smoothness/images/ui-icons_454545_256x240.png +0 -0
  621. data/test/public/stylesheets/jquery/smoothness/images/ui-icons_888888_256x240.png +0 -0
  622. data/test/public/stylesheets/jquery/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  623. data/test/public/stylesheets/jquery/smoothness/jquery-ui-1.7.1.custom.css +404 -0
  624. data/test/public/stylesheets/jquery/smoothness/jquery-ui-1.7.2.custom.css +160 -0
  625. data/test/public/stylesheets/jquery/smoothness/jquery-ui-1.8.11.custom.css +573 -0
  626. data/test/public/stylesheets/jquery/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  627. data/test/public/stylesheets/jquery/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  628. data/test/public/stylesheets/jquery/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
  629. data/test/public/stylesheets/jquery/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  630. data/test/public/stylesheets/jquery/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  631. data/test/public/stylesheets/jquery/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  632. data/test/public/stylesheets/jquery/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  633. data/test/public/stylesheets/jquery/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  634. data/test/public/stylesheets/jquery/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  635. data/test/public/stylesheets/jquery/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
  636. data/test/public/stylesheets/jquery/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
  637. data/test/public/stylesheets/jquery/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
  638. data/test/public/stylesheets/jquery/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
  639. data/test/public/stylesheets/jquery/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
  640. data/test/public/stylesheets/jquery/ui-lightness/jquery-ui-1.7.1.custom.css +404 -0
  641. data/test/public/stylesheets/jquery/ui-lightness/jquery-ui-1.7.2.custom.css +160 -0
  642. data/test/public/stylesheets/jquery/ui-lightness/jquery-ui-1.8.11.custom.css +573 -0
  643. data/test/public/stylesheets/jquery/ui-lightness/jquery-ui-1.8.4.custom.css +572 -0
  644. data/test/public/stylesheets/muck-users.css +10 -0
  645. data/test/public/stylesheets/reset.css +0 -0
  646. data/test/public/stylesheets/styles.css +98 -0
  647. data/test/public/stylesheets/themes/blue/styles.css +1 -0
  648. data/test/public/stylesheets/themes/red/styles.css +1 -0
  649. data/test/script/rails +6 -0
  650. data/test/spec/controllers/access_code_requests_controller_spec.rb +62 -0
  651. data/test/spec/controllers/activations_controller_spec.rb +69 -0
  652. data/test/spec/controllers/admin/access_code_requests_controller_spec.rb +128 -0
  653. data/test/spec/controllers/admin/access_codes_controller_spec.rb +189 -0
  654. data/test/spec/controllers/admin/roles_controller_spec.rb +84 -0
  655. data/test/spec/controllers/admin/users_controller_spec.rb +245 -0
  656. data/test/spec/controllers/password_resets_controller_spec.rb +65 -0
  657. data/test/spec/controllers/user_sessions_controller_spec.rb +122 -0
  658. data/test/spec/controllers/username_request_controller_spec.rb +35 -0
  659. data/test/spec/controllers/users_controller_spec.rb +427 -0
  660. data/test/spec/helpers/muck_users_helper_spec.rb +70 -0
  661. data/test/spec/mailers/user_mailer_spec.rb +108 -0
  662. data/test/spec/models/access_code_request_spec.rb +105 -0
  663. data/test/spec/models/access_code_spec.rb +117 -0
  664. data/test/spec/models/permission_spec.rb +19 -0
  665. data/test/spec/models/role_spec.rb +18 -0
  666. data/test/spec/models/secure_methods_spec.rb +56 -0
  667. data/test/spec/models/user_spec.rb +433 -0
  668. data/test/spec/spec_helper.rb +5 -0
  669. data/test/test/fixtures/rails.png +0 -0
  670. data/test/vendor/plugins/.gitkeep +0 -0
  671. metadata +680 -13
@@ -0,0 +1,427 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Muck::UsersController do
4
+
5
+ render_views
6
+
7
+ it { should require_login :welcome, :get }
8
+ it { should require_login :edit, :get }
9
+
10
+ describe "configuration tests" do
11
+ teardown do
12
+ MuckUsers.configuration.automatically_activate = false
13
+ MuckUsers.configuration.automatically_login_after_account_create = false
14
+ end
15
+
16
+ describe "automatically activate account and log user in. " do
17
+ before(:each) do
18
+ MuckUsers.configuration.automatically_activate = true
19
+ MuckUsers.configuration.automatically_login_after_account_create = true
20
+ end
21
+ describe "on POST to :create" do
22
+ describe "html" do
23
+ before(:each) do
24
+ post_create_user
25
+ end
26
+ it { should redirect_to(signup_complete_path(assigns(:user))) }
27
+ it "should activate user" do
28
+ assigns(:user).active?.should be_true
29
+ end
30
+ it "should be logged in" do
31
+ user_session = UserSession.find
32
+ user_session.should_not be_nil
33
+ end
34
+ end
35
+ describe "json" do
36
+ before(:each) do
37
+ post_create_user_json
38
+ end
39
+ it "should return json" do
40
+ user = JSON.parse(@response.body)
41
+ user['success'].should be_true
42
+ user['user']['login'].should == "testguy"
43
+ end
44
+ it "should activate user" do
45
+ assigns(:user).active?.should be_true
46
+ end
47
+ it "should be logged in" do
48
+ user_session = UserSession.find
49
+ user_session.should_not be_nil
50
+ end
51
+ end
52
+ describe "xml" do
53
+ before(:each) do
54
+ post_create_user_xml
55
+ end
56
+ it "should activate user" do
57
+ assert assigns(:user).active? == true, "user was not activated"
58
+ end
59
+ it "should be logged in" do
60
+ user_session = UserSession.find
61
+ user_session.should_not be_nil
62
+ end
63
+ end
64
+ end
65
+ describe "on POST to :create with bad login (space in login name)" do
66
+ before(:each) do
67
+ post_create_user(:login => 'test guy')
68
+ end
69
+ it { should respond_with :success }
70
+ it { should render_template :new }
71
+ it "should assign an error to the login field" do
72
+ assigns(:user).errors[:login].should_not be_empty
73
+ end
74
+ end
75
+ end
76
+
77
+ describe "automatically activate account do not log user in" do
78
+ before(:each) do
79
+ MuckUsers.configuration.automatically_activate = true
80
+ MuckUsers.configuration.automatically_login_after_account_create = false
81
+ end
82
+ describe "on POST to :create" do
83
+ before(:each) do
84
+ post_create_user
85
+ end
86
+ it {should redirect_to(signup_complete_login_required_path(assigns(:user))) }
87
+ end
88
+ describe "on POST to :create with bad login (space in login name)" do
89
+ before(:each) do
90
+ post_create_user(:login => 'test guy')
91
+ end
92
+ it { should respond_with :success }
93
+ it { should render_template :new }
94
+ it "should assign an error to the login field" do
95
+ assigns(:user).errors[:login].should_not be_empty
96
+ end
97
+ end
98
+ end
99
+
100
+ describe "do not auto activate. do not login after create" do
101
+ before(:each) do
102
+ MuckUsers.configuration.automatically_activate = false
103
+ MuckUsers.configuration.automatically_login_after_account_create = false
104
+ end
105
+ describe "on POST to :create -- Allow signup. " do
106
+ before(:each) do
107
+ post_create_user
108
+ end
109
+ it {should redirect_to(signup_complete_activation_required_path(assigns(:user)))}
110
+ end
111
+ describe "on POST to :create -- require login on signup. " do
112
+ before(:each) do
113
+ post_create_user :login => ''
114
+ end
115
+ it { should respond_with :success }
116
+ it { should render_template :new }
117
+ it "should assign an error to the login field" do
118
+ assigns(:user).errors[:login].should_not be_empty
119
+ end
120
+ end
121
+ describe "on POST to :create with bad login (space in login name)" do
122
+ before(:each) do
123
+ post_create_user(:login => 'test guy')
124
+ end
125
+ it { should respond_with :success }
126
+ it { should render_template :new }
127
+ it "should assign an error to the login field" do
128
+ assigns(:user).errors[:login].should_not be_empty
129
+ end
130
+ end
131
+ describe "on POST to :create -- require password on signup. " do
132
+ before(:each) do
133
+ post_create_user(:password => nil)
134
+ end
135
+ it { should respond_with :success }
136
+ it { should render_template :new }
137
+ it "should assign an error to the password field" do
138
+ assigns(:user).errors[:password].should_not be_empty
139
+ end
140
+ end
141
+ describe "on POST to :create -- require password confirmation on signup. " do
142
+ before(:each) do
143
+ post_create_user(:password_confirmation => nil)
144
+ end
145
+ it { should respond_with :success }
146
+ it { should render_template :new }
147
+
148
+ it "should assign an error to the password confirmation field" do
149
+ assigns(:user).errors[:password_confirmation].should_not be_empty
150
+ end
151
+ end
152
+ describe "on POST to :create -- require email on signup. " do
153
+ before(:each) do
154
+ post_create_user(:email => nil)
155
+ end
156
+ it { should respond_with :success }
157
+ it { should render_template :new }
158
+ it "should assign an error to the email field" do
159
+ assigns(:user).errors[:email].should_not be_empty
160
+ end
161
+ end
162
+ end
163
+ end
164
+
165
+ describe "logged in" do
166
+ before(:each) do
167
+ activate_authlogic
168
+ @user = Factory(:user)
169
+ login_as @user
170
+ end
171
+
172
+ describe "on GET to :welcome" do
173
+ before(:each) do
174
+ get :welcome, :id => @user.to_param
175
+ end
176
+ it { should respond_with :success }
177
+ it { should render_template :welcome }
178
+ end
179
+
180
+ describe "on GET to new (signup) while logged in" do
181
+ before(:each) do
182
+ get :new
183
+ end
184
+ it {should redirect_to(user_url(@user))}
185
+ end
186
+
187
+ describe "on GET to show" do
188
+ before(:each) do
189
+ get :show
190
+ end
191
+ it { should respond_with :success }
192
+ it { should render_template :show }
193
+ end
194
+
195
+ describe "on GET to show (json)" do
196
+ before(:each) do
197
+ get :show, :format => 'json'
198
+ end
199
+ it { should respond_with :success }
200
+ it "should render user information as json" do
201
+ data = JSON.parse(response.body)
202
+ data['user'].should_not be_blank
203
+ end
204
+ end
205
+
206
+ describe "on GET to edit" do
207
+ before(:each) do
208
+ get :edit, :id => @user.to_param
209
+ end
210
+ it { should respond_with :success }
211
+ it { should render_template :edit }
212
+ end
213
+
214
+ describe "on GET to edit logged in but wrong user" do
215
+ before(:each) do
216
+ @other_user = Factory(:user)
217
+ get :edit, :id => @other_user.to_param
218
+ end
219
+ it { should respond_with :success }
220
+ it "should set the user to the logged in user" do
221
+ assert_equal assigns(:user), @user
222
+ end
223
+ end
224
+
225
+ describe "on PUT to :update" do
226
+ before(:each) do
227
+ put_update_user(@user)
228
+ end
229
+ it {should redirect_to(user_path(@user))}
230
+ end
231
+
232
+ end
233
+
234
+ describe "not logged in" do
235
+ before(:each) do
236
+ assure_logout
237
+ end
238
+ describe "on GET to :welcome" do
239
+ before(:each) do
240
+ @user = Factory(:user)
241
+ get :welcome, :id => @user.to_param
242
+ end
243
+ it {should redirect_to(login_path)}
244
+ end
245
+ describe "on GET to :activation_instructions" do
246
+ before(:each) do
247
+ @user = Factory(:user)
248
+ get :activation_instructions, :id => @user.to_param
249
+ end
250
+ it { should respond_with :success }
251
+ it { should render_template :activation_instructions }
252
+ end
253
+ describe "GET to new" do
254
+ describe "standard signup" do
255
+ before(:each) do
256
+ get :new
257
+ end
258
+ it { should respond_with :success }
259
+ it { should render_template :new }
260
+ end
261
+ end
262
+ describe "on GET to show" do
263
+ before(:each) do
264
+ @user = Factory(:user)
265
+ get :show
266
+ end
267
+ it {should redirect_to(login_path)}
268
+ end
269
+ describe "on GET to edit" do
270
+ before(:each) do
271
+ @user = Factory(:user)
272
+ get :edit, :id => @user.to_param
273
+ end
274
+ it {should redirect_to(login_path)}
275
+ end
276
+ describe "on PUT to :update" do
277
+ before(:each) do
278
+ @user = Factory(:user)
279
+ put_update_user(@user)
280
+ end
281
+ it {should redirect_to(login_path)}
282
+ end
283
+ end
284
+
285
+ describe "GET to login_search" do
286
+ before(:each) do
287
+ @auser = Factory(:user, :login => 'aaaa')
288
+ @zuser = Factory(:user, :login => 'zzzz')
289
+ end
290
+ describe "valid params" do
291
+ before(:each) do
292
+ get :login_search, :q => 'a', :format => 'js'
293
+ end
294
+ it { should respond_with :success }
295
+ it "should find a user" do
296
+ @response.body.should include('aaaa')
297
+ assigns(:users).should include(@auser)
298
+ end
299
+ it "should not find a non-matching user" do
300
+ @response.body.should_not include('zzzz')
301
+ end
302
+ end
303
+ describe "empty params" do
304
+ before(:each) do
305
+ get :login_search, :q => nil, :format => 'js'
306
+ end
307
+ it { should respond_with :success }
308
+ it "should return all users" do
309
+ assigns(:users).should_not be_blank
310
+ end
311
+ end
312
+ end
313
+
314
+ describe "POST to is_login_available" do
315
+ describe "no params" do
316
+ before(:each) do
317
+ post :is_login_available
318
+ end
319
+ it { should respond_with :success }
320
+ it { @response.body.should include('<span class="unavailable"></span>') }
321
+ end
322
+ describe "empty login" do
323
+ before(:each) do
324
+ post :is_login_available, :user_login => ''
325
+ end
326
+ it { should respond_with :success }
327
+ it { @response.body.should include('<span class="unavailable">' + I18n.t('muck.users.login_empty') + '</span>') }
328
+ end
329
+ describe "valid login" do
330
+ before(:each) do
331
+ post :is_login_available, :user_login => 'testdude1945'
332
+ end
333
+ it { should respond_with :success }
334
+ it { @response.body.should include('<span class="available">' + I18n.t('muck.users.username_available') + '</span>') }
335
+ end
336
+ describe "invalid login" do
337
+ before(:each) do
338
+ post :is_login_available, :user_login => 'testdude1945@example.comm'
339
+ end
340
+ it { should respond_with :success }
341
+ it { response.body.should include(I18n.t('muck.users.invalid_username')) }
342
+ end
343
+ describe "login not available" do
344
+ before(:each) do
345
+ @user = Factory(:user)
346
+ post :is_login_available, :user_login => @user.login
347
+ end
348
+ it { should respond_with :success }
349
+ it { response.body.should include(I18n.t('muck.users.username_not_available', :reset_password_help => '')) }
350
+ end
351
+ end
352
+
353
+ describe "POST to is_email_available" do
354
+ describe "no params" do
355
+ before(:each) do
356
+ post :is_email_available
357
+ end
358
+ it { should respond_with :success }
359
+ it { response.body.should include('<span class="available"></span>') }
360
+ end
361
+ describe "empty email" do
362
+ before(:each) do
363
+ post :is_email_available, :user_email => ''
364
+ end
365
+ it { should respond_with :success }
366
+ it { response.body.should include('<span class="available">' + I18n.t('muck.users.email_empty') + '</span>') }
367
+ end
368
+ describe "valid email" do
369
+ before(:each) do
370
+ post :is_email_available, :user_email => 'testdude1945@example.com'
371
+ end
372
+ it { should respond_with :success }
373
+ it { response.body.should include('<span class="available">' + I18n.t('muck.users.email_available') + '</span>') }
374
+ end
375
+ describe "invalid email" do
376
+ before(:each) do
377
+ post :is_email_available, :user_email => 'testdude1945@com'
378
+ end
379
+ it { should respond_with :success }
380
+ it { response.body.should include('<span class="unavailable">' + I18n.t('muck.users.email_invalid') + '</span>') }
381
+ end
382
+ describe "email not available" do
383
+ before(:each) do
384
+ @user = Factory(:user)
385
+ post :is_email_available, :user_email => @user.email
386
+ end
387
+ it { should respond_with :success }
388
+ it "should indicate the email is not available" do
389
+ response.body.should include(I18n.t('muck.users.email_not_available', :reset_password_help => ''))
390
+ end
391
+ end
392
+ end
393
+
394
+ def put_update_user(user, options = {})
395
+ put :update,
396
+ :id => user.id,
397
+ :user => user_params(options)
398
+ end
399
+
400
+ def post_create_user(options = {})
401
+ post :create,
402
+ :user => user_params(options)
403
+ end
404
+
405
+ def post_create_user_json(options = {})
406
+ post :create,
407
+ :user => user_params(options),
408
+ :format => 'json'
409
+ end
410
+
411
+ def post_create_user_xml(options = {})
412
+ post :create,
413
+ :user => user_params(options),
414
+ :format => 'xml'
415
+ end
416
+
417
+ def user_params(options = {})
418
+ { :login => 'testguy',
419
+ :email => rand(1000).to_s + 'testguy@example.com',
420
+ :password => 'testpasswrod',
421
+ :password_confirmation => 'testpasswrod',
422
+ :first_name => 'Ed',
423
+ :last_name => 'Decker',
424
+ :terms_of_service => true }.merge(options)
425
+ end
426
+
427
+ end
@@ -0,0 +1,70 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe MuckUsersHelper do
4
+
5
+ before do
6
+ @user = Factory(:user)
7
+ end
8
+
9
+ describe "signup_form" do
10
+ it "should render the sign up form" do
11
+ title = 'This is a great title for a test sign up form.'
12
+ helper.signup_form(@user, nil, {:title => title}).should include(title)
13
+ end
14
+
15
+ describe "signup with access codes enabled" do
16
+ before do
17
+ MuckUsers.configuration.stub!(:require_access_code).and_return(true)
18
+ end
19
+ describe "with valid access code" do
20
+ before(:each) do
21
+ @access_code = Factory(:access_code, :sent_to => 'testguy@example.com')
22
+ end
23
+ it "should include an access code from the params" do
24
+ params = {}
25
+ params[:access_code] = @access_code.code
26
+ helper.stub!(:params).and_return(params)
27
+ helper.signup_form(@user).should include('testguy@example.com')
28
+ end
29
+ it "should include an access code from the session" do
30
+ controller.session[:access_code] = @access_code.code
31
+ helper.signup_form(@user).should include('testguy@example.com')
32
+ end
33
+ it "should leave @access_code_help blank" do
34
+ params = {}
35
+ params[:access_code] = @access_code.code
36
+ helper.stub!(:params).and_return(params)
37
+ helper.signup_form(@user).should_not include('id="access_code_help"')
38
+ end
39
+ end
40
+ describe "without valid access code" do
41
+ before(:each) do
42
+ controller.params = {:access_code => 'bogus'}
43
+ end
44
+ it "should not find the access code" do
45
+ helper.signup_form(@user).should include('access-code-not-found-msg')
46
+ end
47
+ end
48
+ end
49
+ end
50
+
51
+ describe "signin_form" do
52
+ it "should render the sign in form" do
53
+ title = 'This is a great title for a test sign in form.'
54
+ helper.signin_form({:title => title}).should include(title)
55
+ end
56
+ end
57
+
58
+ describe "random_access_code" do
59
+ before do
60
+ @user = Factory(:user)
61
+ end
62
+ it "should generate a random access code" do
63
+ helper.random_access_code(@user).code.should_not be_blank
64
+ end
65
+ it "should assign the provided_by user" do
66
+ helper.random_access_code(@user).provided_by.should == @user
67
+ end
68
+ end
69
+
70
+ end
@@ -0,0 +1,108 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe UserMailer do
4
+
5
+ before(:each) do
6
+ ActionMailer::Base.delivery_method = :test
7
+ ActionMailer::Base.perform_deliveries = true
8
+ ActionMailer::Base.deliveries = []
9
+ end
10
+
11
+ it "should send activation confirmation email" do
12
+ user = Factory(:user)
13
+ email = UserMailer.activation_confirmation(user).deliver
14
+ ActionMailer::Base.deliveries.should_not be_empty
15
+ email.to.should == [user.email]
16
+ email.from.should == [MuckEngine.configuration.from_email]
17
+ email.subject.should == I18n.t('muck.users.activation_complete')
18
+ #email.body.should include(user.login)
19
+ end
20
+
21
+ it "should send activation instructions email" do
22
+ user = Factory(:user)
23
+ email = UserMailer.activation_instructions(user).deliver
24
+ ActionMailer::Base.deliveries.should_not be_empty
25
+ email.to.should == [user.email]
26
+ email.from.should == [MuckEngine.configuration.from_email]
27
+ email.subject.should == I18n.t('muck.users.activation_instructions')
28
+ #email.body.should include(user.login)
29
+ end
30
+
31
+ it "should send password reset account not active instructions email" do
32
+ user = Factory(:user)
33
+ email = UserMailer.password_not_active_instructions(user).deliver
34
+ ActionMailer::Base.deliveries.should_not be_empty
35
+ email.to.should == [user.email]
36
+ email.from.should == [MuckEngine.configuration.from_email]
37
+ email.subject.should == I18n.t('muck.users.account_not_activated', :application_name => MuckEngine.configuration.application_name)
38
+ end
39
+
40
+ it "should send password reset instructions email" do
41
+ user = Factory(:user)
42
+ email = UserMailer.password_reset_instructions(user).deliver
43
+ ActionMailer::Base.deliveries.should_not be_empty
44
+ email.to.should == [user.email]
45
+ email.from.should == [MuckEngine.configuration.from_email]
46
+ email.subject.should == I18n.t('muck.users.password_reset_email_subject', :application_name => MuckEngine.configuration.application_name)
47
+ end
48
+
49
+ it "should send username request email" do
50
+ user = Factory(:user)
51
+ email = UserMailer.username_request(user).deliver
52
+ ActionMailer::Base.deliveries.should_not be_empty
53
+ email.to.should == [user.email]
54
+ email.from.should == [MuckEngine.configuration.from_email]
55
+ email.subject.should == I18n.t('muck.users.request_username_subject', :application_name => MuckEngine.configuration.application_name)
56
+ end
57
+
58
+ it "should send welcome email" do
59
+ user = Factory(:user)
60
+ email = UserMailer.welcome_notification(user).deliver
61
+ ActionMailer::Base.deliveries.should_not be_empty
62
+ email.to.should == [user.email]
63
+ email.from.should == [MuckEngine.configuration.from_email]
64
+ email.subject.should == I18n.t('muck.users.welcome_email_subject', :application_name => MuckEngine.configuration.application_name)
65
+ end
66
+
67
+ describe "access code email" do
68
+ before do
69
+ @email_address = 'testguy@example.com'
70
+ @subject = 'test subject'
71
+ @message = 'test message'
72
+ @code = 'testcode'
73
+ end
74
+ it "should send access code email" do
75
+ email = UserMailer.access_code(@email_address, @subject, @message, @code).deliver
76
+ ActionMailer::Base.deliveries.should_not be_empty
77
+ email.to.should == [@email_address]
78
+ email.from.should == [MuckEngine.configuration.from_email]
79
+ email.subject.should == @subject
80
+ email.body.parts[0].body.should include(@message)
81
+ email.body.parts[0].body.should include(@code)
82
+ end
83
+ it "should set code_included to true" do
84
+ @message = "message that includes {code}"
85
+ email = UserMailer.access_code(@email_address, @subject, @message, @code).deliver
86
+ email.body.parts[0].body.should include(@message.gsub('{code}', @code))
87
+ email.body.parts[0].body.should_not include("<p>Access Code: #{@code}</p>")
88
+ end
89
+ it "should set signup_link_included to true" do
90
+ # HACK the signup link shouldn't be hard coded. It needs to be stubbed somehow - just not sure how.
91
+ signup = '<a href="http://localhost:3000/signup?access_code=testcode">Click here to sign up now.</a>'
92
+ @message = "message that includes {signup_link}"
93
+ email = UserMailer.access_code(@email_address, @subject, @message, @code).deliver
94
+ email.body.parts[0].body.should include(@message.gsub('{signup_link}', signup))
95
+ email.body.parts[0].body.should_not include("<p>#{signup}</p>")
96
+ end
97
+ end
98
+
99
+ it "should send access code request confirmation email" do
100
+ email_address = 'testguy@example.com'
101
+ email = UserMailer.access_code_request_confirm(email_address).deliver
102
+ ActionMailer::Base.deliveries.should_not be_empty
103
+ email.to.should == [email_address]
104
+ email.from.should == [MuckEngine.configuration.from_email]
105
+ email.subject.should == I18n.t('muck.users.access_code_request_confirm_subject', :application_name => MuckEngine.configuration.application_name)
106
+ end
107
+
108
+ end