muck-services 0.1.47 → 3.0.0

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 (446) hide show
  1. data/.gitignore +2 -1
  2. data/LICENSE +1 -1
  3. data/README.rdoc +32 -48
  4. data/Rakefile +14 -16
  5. data/VERSION +1 -1
  6. data/app/controllers/admin/muck/feeds_controller.rb +1 -1
  7. data/app/controllers/muck/aggregations_controller.rb +4 -6
  8. data/app/controllers/muck/feed_previews_controller.rb +2 -10
  9. data/app/controllers/muck/feeds_controller.rb +1 -1
  10. data/app/controllers/muck/identity_feeds_controller.rb +2 -6
  11. data/app/controllers/muck/topics_controller.rb +3 -3
  12. data/app/controllers/muck/visits_controller.rb +3 -3
  13. data/app/helpers/muck_services_feeds_helper.rb +3 -3
  14. data/app/helpers/muck_services_service_helper.rb +2 -2
  15. data/app/models/aggregation.rb +4 -18
  16. data/app/models/entry.rb +2 -2
  17. data/app/models/feed.rb +7 -9
  18. data/app/models/oai_endpoint.rb +6 -6
  19. data/app/models/personal_recommendation.rb +4 -5
  20. data/app/models/service.rb +6 -6
  21. data/app/models/service_category.rb +1 -1
  22. data/app/models/services_mailer.rb +10 -12
  23. data/app/views/activity_templates/{_entry_comment.html.erb → _entry_comment.erb} +0 -0
  24. data/app/views/activity_templates/{_entry_share.html.erb → _entry_share.erb} +0 -0
  25. data/app/views/admin/feeds/index.html.erb +8 -9
  26. data/app/views/admin/oai_endpoints/index.html.erb +4 -4
  27. data/app/views/aggregations/{_feeds.html.erb → _feeds.erb} +0 -0
  28. data/app/views/aggregations/edit.html.erb +3 -3
  29. data/app/views/aggregations/index.html.erb +1 -1
  30. data/app/views/aggregations/new.html.erb +1 -1
  31. data/app/views/aggregations/preview.html.erb +1 -1
  32. data/app/views/feed_previews/{new.html.erb → new.erb} +0 -0
  33. data/app/views/feed_previews/{select_feeds.html.erb → select_feeds.erb} +0 -0
  34. data/app/views/feeds/_feed.html.erb +1 -1
  35. data/app/views/feeds/_feed_row.html.erb +1 -1
  36. data/app/views/feeds/_form.html.erb +2 -2
  37. data/app/views/feeds/edit.html.erb +2 -2
  38. data/app/views/feeds/index.html.erb +7 -8
  39. data/app/views/feeds/new.html.erb +2 -2
  40. data/app/views/feeds/new_extended.html.erb +2 -2
  41. data/app/views/feeds/new_oai_rss.html.erb +2 -2
  42. data/app/views/identity_feeds/{_form.html.erb → _form.erb} +1 -1
  43. data/app/views/oai_endpoints/_form.html.erb +2 -2
  44. data/app/views/oai_endpoints/_oai_endpoint_row.html.erb +1 -1
  45. data/app/views/parts/_add_feed.html.erb +1 -1
  46. data/app/views/services_mailer/{notification_feed_added.text.html.erb → notification_feed_added.html.erb} +0 -0
  47. data/app/views/services_mailer/{notification_feed_added.text.plain.erb → notification_feed_added.text.erb} +0 -0
  48. data/app/views/services_mailer/{notification_oai_endpoint_added.text.html.erb → notification_oai_endpoint_added.html.erb} +0 -0
  49. data/app/views/services_mailer/{notification_oai_endpoint_added.text.plain.erb → notification_oai_endpoint_added.text.erb} +0 -0
  50. data/app/views/topics/_form.html.erb +1 -1
  51. data/app/views/topics/new.html.erb +1 -1
  52. data/app/views/visits/_toolbar.html.erb +3 -3
  53. data/{locales → config/locales}/ar.yml +34 -34
  54. data/{locales → config/locales}/bg.yml +34 -34
  55. data/{locales → config/locales}/ca.yml +34 -34
  56. data/{locales → config/locales}/cs.yml +34 -34
  57. data/{locales → config/locales}/da.yml +34 -34
  58. data/{locales → config/locales}/de.yml +34 -34
  59. data/{locales → config/locales}/el.yml +34 -34
  60. data/{locales → config/locales}/en.yml +34 -36
  61. data/{locales → config/locales}/es.yml +34 -34
  62. data/{locales → config/locales}/et.yml +34 -34
  63. data/{locales → config/locales}/fa.yml +34 -34
  64. data/{locales → config/locales}/fi.yml +34 -34
  65. data/{locales → config/locales}/fr.yml +34 -34
  66. data/{locales → config/locales}/gl.yml +34 -34
  67. data/{locales → config/locales}/hi.yml +34 -34
  68. data/{locales → config/locales}/hr.yml +34 -34
  69. data/{locales → config/locales}/hu.yml +34 -34
  70. data/{locales → config/locales}/id.yml +34 -34
  71. data/{locales → config/locales}/it.yml +34 -34
  72. data/{locales → config/locales}/iw.yml +34 -34
  73. data/{locales → config/locales}/ja.yml +34 -34
  74. data/{locales → config/locales}/ko.yml +34 -34
  75. data/{locales → config/locales}/lt.yml +34 -34
  76. data/{locales → config/locales}/lv.yml +34 -34
  77. data/{locales → config/locales}/mt.yml +34 -34
  78. data/{locales → config/locales}/nl.yml +34 -34
  79. data/{locales → config/locales}/no.yml +34 -34
  80. data/{locales → config/locales}/pl.yml +34 -34
  81. data/{locales → config/locales}/pt-PT.yml +34 -34
  82. data/{locales → config/locales}/ro.yml +34 -34
  83. data/{locales → config/locales}/ru.yml +34 -34
  84. data/{locales → config/locales}/sk.yml +34 -34
  85. data/{locales → config/locales}/sl.yml +34 -34
  86. data/{locales → config/locales}/sq.yml +34 -34
  87. data/{locales → config/locales}/sr.yml +34 -34
  88. data/{locales → config/locales}/sv.yml +34 -34
  89. data/{locales → config/locales}/th.yml +34 -34
  90. data/{locales → config/locales}/tl.yml +34 -34
  91. data/{locales → config/locales}/tr.yml +34 -34
  92. data/{locales → config/locales}/uk.yml +34 -34
  93. data/{locales → config/locales}/vi.yml +34 -34
  94. data/{locales → config/locales}/zh-CN.yml +34 -34
  95. data/{locales → config/locales}/zh-TW.yml +34 -34
  96. data/{locales → config/locales}/zh.yml +34 -34
  97. data/config/routes.rb +73 -0
  98. data/lib/muck-services.rb +24 -0
  99. data/lib/muck-services/config.rb +36 -0
  100. data/lib/muck-services/engine.rb +32 -0
  101. data/lib/{muck_services → muck-services}/exceptions.rb +0 -0
  102. data/lib/{muck_services → muck-services}/languages.rb +0 -0
  103. data/lib/muck-services/models/aggregation_owner.rb +17 -0
  104. data/lib/muck-services/models/feed_owner.rb +24 -0
  105. data/lib/muck-services/models/feed_parent.rb +18 -0
  106. data/lib/muck-services/models/recommendation.rb +14 -0
  107. data/lib/muck-services/models/recommendation_owner.rb +15 -0
  108. data/lib/muck-services/models/services_comment.rb +24 -0
  109. data/lib/muck-services/models/services_share.rb +18 -0
  110. data/lib/{muck_services → muck-services}/muck_custom_form_builder.rb +1 -3
  111. data/lib/{muck_services → muck-services}/services.rb +0 -0
  112. data/lib/tasks/muck_services.rake +101 -0
  113. data/muck-services.gemspec +364 -520
  114. data/test/{rails_root → rails_test}/app/controllers/application_controller.rb +1 -9
  115. data/test/{rails_root → rails_test}/app/controllers/default_controller.rb +0 -0
  116. data/test/{rails_root → rails_test}/app/helpers/application_helper.rb +0 -0
  117. data/test/{rails_root → rails_test}/app/models/activity.rb +1 -1
  118. data/test/{rails_root → rails_test}/app/models/comment.rb +3 -3
  119. data/test/rails_test/app/models/country.rb +13 -0
  120. data/test/rails_test/app/models/language.rb +15 -0
  121. data/test/{rails_root → rails_test}/app/models/share.rb +3 -3
  122. data/test/rails_test/app/models/state.rb +13 -0
  123. data/test/{rails_root → rails_test}/app/models/user.rb +8 -8
  124. data/test/{rails_root → rails_test}/app/models/user_session.rb +0 -0
  125. data/test/rails_test/config/application.rb +42 -0
  126. data/test/rails_test/config/boot.rb +13 -0
  127. data/test/rails_test/config/environment.rb +5 -0
  128. data/test/rails_test/config/environments/development.rb +26 -0
  129. data/test/rails_test/config/environments/production.rb +49 -0
  130. data/test/rails_test/config/environments/test.rb +35 -0
  131. data/test/rails_test/config/initializers/backtrace_silencers.rb +7 -0
  132. data/test/{rails_root → rails_test}/config/initializers/inflections.rb +2 -2
  133. data/test/rails_test/config/initializers/mce_options.rb +83 -0
  134. data/test/{rails_root → rails_test}/config/initializers/mime_types.rb +0 -0
  135. data/test/rails_test/config/initializers/muck.rb +66 -0
  136. data/test/rails_test/config/initializers/secret_token.rb +7 -0
  137. data/test/rails_test/config/initializers/session_store.rb +8 -0
  138. data/test/rails_test/config/routes.rb +12 -0
  139. data/test/{rails_root → rails_test}/db/migrate/20090320174818_create_muck_permissions_and_roles.rb +0 -0
  140. data/test/{rails_root → rails_test}/db/migrate/20090327231918_create_users.rb +0 -0
  141. data/test/{rails_root → rails_test}/db/migrate/20090402033319_add_muck_activities.rb +0 -0
  142. data/test/{rails_root → rails_test}/db/migrate/20090402234137_create_languages.rb +0 -0
  143. data/test/{rails_root → rails_test}/db/migrate/20090426041056_create_countries.rb +0 -0
  144. data/test/{rails_root → rails_test}/db/migrate/20090426041103_create_states.rb +0 -0
  145. data/test/rails_test/db/migrate/20090512013727_create_profiles.rb +21 -0
  146. data/test/rails_test/db/migrate/20090517040220_create_uploads.rb +38 -0
  147. data/test/{rails_root → rails_test}/db/migrate/20090602191243_create_muck_raker.rb +0 -0
  148. data/test/{rails_root → rails_test}/db/migrate/20090613173314_create_comments.rb +0 -0
  149. data/test/{rails_root → rails_test}/db/migrate/20090619211125_create_tag_clouds.rb +0 -0
  150. data/test/{rails_root → rails_test}/db/migrate/20090623181458_add_grain_size_to_entries.rb +0 -0
  151. data/test/{rails_root → rails_test}/db/migrate/20090623193525_add_grain_size_to_tag_clouds.rb +0 -0
  152. data/test/rails_test/db/migrate/20090703055724_add_contents.rb +49 -0
  153. data/test/{rails_root → rails_test}/db/migrate/20090703175825_denormalize_entries_subjects.rb +0 -0
  154. data/test/{rails_root → rails_test}/db/migrate/20090704220055_create_slugs.rb +0 -0
  155. data/test/{rails_root → rails_test}/db/migrate/20090716035935_change_tag_cloud_grain_sizes.rb +0 -0
  156. data/test/{rails_root → rails_test}/db/migrate/20090717173900_add_contributor_to_feeds.rb +0 -0
  157. data/test/{rails_root → rails_test}/db/migrate/20090717175825_normalize_entries_subjects.rb +0 -0
  158. data/test/{rails_root → rails_test}/db/migrate/20090721043213_change_services_title_to_name.rb +0 -0
  159. data/test/{rails_root → rails_test}/db/migrate/20090721054927_remove_services_not_null_from_feeds.rb +0 -0
  160. data/test/{rails_root → rails_test}/db/migrate/20090723050510_create_feed_parents.rb +0 -0
  161. data/test/{rails_root → rails_test}/db/migrate/20090728165716_add_etag_to_feeds.rb +0 -0
  162. data/test/{rails_root → rails_test}/db/migrate/20090730044139_add_comment_cache.rb +0 -0
  163. data/test/{rails_root → rails_test}/db/migrate/20090730045848_add_comment_cache_to_entries.rb +0 -0
  164. data/test/{rails_root → rails_test}/db/migrate/20090730154102_allow_null_user.rb +0 -0
  165. data/test/{rails_root → rails_test}/db/migrate/20090803185323_create_shares.rb +0 -0
  166. data/test/{rails_root → rails_test}/db/migrate/20090804184247_add_comment_count_to_shares.rb +0 -0
  167. data/test/{rails_root → rails_test}/db/migrate/20090804211240_add_entry_id_to_shares.rb +0 -0
  168. data/test/{rails_root → rails_test}/db/migrate/20090804231857_add_shares_uri_index.rb +0 -0
  169. data/test/rails_test/db/migrate/20090806230610_add_layout_to_contents.rb +9 -0
  170. data/test/rails_test/db/migrate/20090808175401_add_contents_comment_counter_cache.rb +9 -0
  171. data/test/{rails_root → rails_test}/db/migrate/20090818204527_add_activity_indexes.rb +0 -0
  172. data/test/{rails_root → rails_test}/db/migrate/20090819030523_add_attachable_to_activities.rb +0 -0
  173. data/test/{rails_root → rails_test}/db/migrate/20090826220530_change_services_sequence_to_sort.rb +0 -0
  174. data/test/{rails_root → rails_test}/db/migrate/20090826225652_create_identity_feeds.rb +0 -0
  175. data/test/{rails_root → rails_test}/db/migrate/20090827005105_add_identity_fields_to_services.rb +0 -0
  176. data/test/{rails_root → rails_test}/db/migrate/20090827015308_create_service_categories.rb +0 -0
  177. data/test/{rails_root → rails_test}/db/migrate/20090827221502_add_prompt_and_template_to_services.rb +0 -0
  178. data/test/{rails_root → rails_test}/db/migrate/20090915041650_aggregations_to_polymorphic.rb +0 -0
  179. data/test/{rails_root → rails_test}/db/migrate/20090922174200_update_oai_endpoints.rb +0 -0
  180. data/test/{rails_root → rails_test}/db/migrate/20090922231552_add_dates_to_oai_endpoints.rb +0 -0
  181. data/test/{rails_root → rails_test}/db/migrate/20090923150807_rename_name_in_aggregation.rb +0 -0
  182. data/test/{rails_root → rails_test}/db/migrate/20090924200750_add_uri_data_template_to_services.rb +0 -0
  183. data/test/{rails_root → rails_test}/db/migrate/20091006183742_add_feed_count_to_aggregation.rb +0 -0
  184. data/test/{rails_root → rails_test}/db/migrate/20091022150615_add_uri_key_to_services.rb +0 -0
  185. data/test/{rails_root → rails_test}/db/migrate/20091115011828_add_aggregations_for_personal_recs.rb +0 -0
  186. data/test/{rails_root → rails_test}/db/migrate/20091116094447_rename_action_table.rb +0 -0
  187. data/test/{rails_root → rails_test}/db/migrate/20091118203605_add_default_feed_type_to_aggregation_feed.rb +0 -0
  188. data/test/rails_test/db/migrate/20091124203137_add_location_to_profiles.rb +15 -0
  189. data/test/rails_test/db/migrate/20091124205819_add_fields_to_profiles.rb +21 -0
  190. data/test/{rails_root → rails_test}/db/migrate/20100123035450_create_access_codes.rb +0 -0
  191. data/test/{rails_root → rails_test}/db/migrate/20100123233654_create_access_code_requests.rb +0 -0
  192. data/test/rails_test/db/migrate/20100206000906_remove_name_fields.rb +15 -0
  193. data/test/rails_test/db/migrate/20100903205928_add_dead_entry_fields.rb +13 -0
  194. data/test/{rails_root → rails_test}/features/step_definitions/common_steps.rb +0 -0
  195. data/test/{rails_root → rails_test}/features/step_definitions/visit_steps.rb +0 -0
  196. data/test/rails_test/features/step_definitions/web_steps.rb +219 -0
  197. data/test/{rails_root → rails_test}/features/step_definitions/webrat_steps.rb +0 -0
  198. data/test/rails_test/features/support/custom_env.rb +19 -0
  199. data/test/rails_test/features/support/env.rb +58 -0
  200. data/test/rails_test/features/support/paths.rb +33 -0
  201. data/test/rails_test/lib/daemons/amazonaws.rb +36 -0
  202. data/test/{rails_root → rails_test}/public/dispatch.rb +0 -0
  203. data/test/rails_test/spec/controllers/admin/feeds_controller_spec.rb +38 -0
  204. data/test/rails_test/spec/controllers/admin/oai_endpoints_controller_spec.rb +30 -0
  205. data/test/{rails_root/test/functional/aggregation_feeds_controller_test.rb → rails_test/spec/controllers/aggregation_feeds_controller_spec.rb} +24 -24
  206. data/test/rails_test/spec/controllers/aggregations_controller_spec.rb +89 -0
  207. data/test/rails_test/spec/controllers/feed_previews_controller_spec.rb +32 -0
  208. data/test/rails_test/spec/controllers/feeds_controller_spec.rb +78 -0
  209. data/test/{rails_root/test/functional/identity_feeds_controller_test.rb → rails_test/spec/controllers/identity_feeds_controller_spec.rb} +44 -44
  210. data/test/rails_test/spec/controllers/oai_endpoints_controller_spec.rb +42 -0
  211. data/test/rails_test/spec/controllers/topics_controller_spec.rb +50 -0
  212. data/test/rails_test/spec/controllers/visits_controller_spec.rb +21 -0
  213. data/test/{rails_root/test → rails_test/spec}/factories.rb +6 -1
  214. data/test/rails_test/spec/mailers/services_mailer_spec.rb +31 -0
  215. data/test/{rails_root/test/unit/aggregation_feed_test.rb → rails_test/spec/models/aggregation_feed_spec.rb} +6 -9
  216. data/test/{rails_root/test/unit/aggregation_test.rb → rails_test/spec/models/aggregation_spec.rb} +23 -23
  217. data/test/{rails_root/test/unit/entry_test.rb → rails_test/spec/models/entry_spec.rb} +70 -74
  218. data/test/{rails_root/test/unit/feed_parent_test.rb → rails_test/spec/models/feed_parent_spec.rb} +5 -5
  219. data/test/{rails_root/test/unit/feed_test.rb → rails_test/spec/models/feed_spec.rb} +77 -81
  220. data/test/{rails_root/test/unit/identity_feed_test.rb → rails_test/spec/models/identity_feed_spec.rb} +5 -5
  221. data/test/rails_test/spec/models/oai_endpoint_spec.rb +78 -0
  222. data/test/rails_test/spec/models/personal_recommendation_spec.rb +60 -0
  223. data/test/{rails_root/test/unit/recommendation_test.rb → rails_test/spec/models/recommendation_spec.rb} +6 -8
  224. data/test/rails_test/spec/models/service_category_spec.rb +19 -0
  225. data/test/rails_test/spec/models/service_spec.rb +383 -0
  226. data/test/{rails_root/test/unit/share_test.rb → rails_test/spec/models/share_spec.rb} +8 -11
  227. data/test/{rails_root/test/unit/tag_cloud_test.rb → rails_test/spec/models/tag_cloud_spec.rb} +4 -4
  228. data/test/{rails_root/test/unit/user_test.rb → rails_test/spec/models/user_spec.rb} +9 -11
  229. data/test/{rails_root/test/test_helper.rb → rails_test/spec/spec_helper.rb} +8 -19
  230. metadata +345 -470
  231. data/app/views/services_mailer/notification_feed_added.text.ar.html.erb +0 -4
  232. data/app/views/services_mailer/notification_feed_added.text.ar.plain.erb +0 -7
  233. data/app/views/services_mailer/notification_feed_added.text.bg.html.erb +0 -4
  234. data/app/views/services_mailer/notification_feed_added.text.bg.plain.erb +0 -7
  235. data/app/views/services_mailer/notification_feed_added.text.ca.html.erb +0 -4
  236. data/app/views/services_mailer/notification_feed_added.text.ca.plain.erb +0 -7
  237. data/app/views/services_mailer/notification_feed_added.text.cs.html.erb +0 -4
  238. data/app/views/services_mailer/notification_feed_added.text.cs.plain.erb +0 -7
  239. data/app/views/services_mailer/notification_feed_added.text.da.html.erb +0 -4
  240. data/app/views/services_mailer/notification_feed_added.text.da.plain.erb +0 -7
  241. data/app/views/services_mailer/notification_feed_added.text.de.html.erb +0 -4
  242. data/app/views/services_mailer/notification_feed_added.text.de.plain.erb +0 -7
  243. data/app/views/services_mailer/notification_feed_added.text.el.html.erb +0 -4
  244. data/app/views/services_mailer/notification_feed_added.text.el.plain.erb +0 -7
  245. data/app/views/services_mailer/notification_feed_added.text.es.html.erb +0 -4
  246. data/app/views/services_mailer/notification_feed_added.text.es.plain.erb +0 -7
  247. data/app/views/services_mailer/notification_feed_added.text.et.html.erb +0 -4
  248. data/app/views/services_mailer/notification_feed_added.text.et.plain.erb +0 -7
  249. data/app/views/services_mailer/notification_feed_added.text.fa.html.erb +0 -4
  250. data/app/views/services_mailer/notification_feed_added.text.fa.plain.erb +0 -7
  251. data/app/views/services_mailer/notification_feed_added.text.fi.html.erb +0 -4
  252. data/app/views/services_mailer/notification_feed_added.text.fi.plain.erb +0 -7
  253. data/app/views/services_mailer/notification_feed_added.text.fr.html.erb +0 -4
  254. data/app/views/services_mailer/notification_feed_added.text.fr.plain.erb +0 -7
  255. data/app/views/services_mailer/notification_feed_added.text.gl.html.erb +0 -4
  256. data/app/views/services_mailer/notification_feed_added.text.gl.plain.erb +0 -7
  257. data/app/views/services_mailer/notification_feed_added.text.hi.html.erb +0 -4
  258. data/app/views/services_mailer/notification_feed_added.text.hi.plain.erb +0 -7
  259. data/app/views/services_mailer/notification_feed_added.text.hr.html.erb +0 -4
  260. data/app/views/services_mailer/notification_feed_added.text.hr.plain.erb +0 -7
  261. data/app/views/services_mailer/notification_feed_added.text.hu.html.erb +0 -4
  262. data/app/views/services_mailer/notification_feed_added.text.hu.plain.erb +0 -7
  263. data/app/views/services_mailer/notification_feed_added.text.id.html.erb +0 -4
  264. data/app/views/services_mailer/notification_feed_added.text.id.plain.erb +0 -7
  265. data/app/views/services_mailer/notification_feed_added.text.it.html.erb +0 -4
  266. data/app/views/services_mailer/notification_feed_added.text.it.plain.erb +0 -7
  267. data/app/views/services_mailer/notification_feed_added.text.iw.html.erb +0 -4
  268. data/app/views/services_mailer/notification_feed_added.text.iw.plain.erb +0 -7
  269. data/app/views/services_mailer/notification_feed_added.text.ja.html.erb +0 -4
  270. data/app/views/services_mailer/notification_feed_added.text.ja.plain.erb +0 -7
  271. data/app/views/services_mailer/notification_feed_added.text.ko.html.erb +0 -4
  272. data/app/views/services_mailer/notification_feed_added.text.ko.plain.erb +0 -7
  273. data/app/views/services_mailer/notification_feed_added.text.lt.html.erb +0 -4
  274. data/app/views/services_mailer/notification_feed_added.text.lt.plain.erb +0 -7
  275. data/app/views/services_mailer/notification_feed_added.text.lv.html.erb +0 -4
  276. data/app/views/services_mailer/notification_feed_added.text.lv.plain.erb +0 -7
  277. data/app/views/services_mailer/notification_feed_added.text.mt.html.erb +0 -4
  278. data/app/views/services_mailer/notification_feed_added.text.mt.plain.erb +0 -7
  279. data/app/views/services_mailer/notification_feed_added.text.nl.html.erb +0 -4
  280. data/app/views/services_mailer/notification_feed_added.text.nl.plain.erb +0 -7
  281. data/app/views/services_mailer/notification_feed_added.text.no.html.erb +0 -4
  282. data/app/views/services_mailer/notification_feed_added.text.no.plain.erb +0 -7
  283. data/app/views/services_mailer/notification_feed_added.text.pl.html.erb +0 -4
  284. data/app/views/services_mailer/notification_feed_added.text.pl.plain.erb +0 -7
  285. data/app/views/services_mailer/notification_feed_added.text.pt-PT.html.erb +0 -4
  286. data/app/views/services_mailer/notification_feed_added.text.pt-PT.plain.erb +0 -7
  287. data/app/views/services_mailer/notification_feed_added.text.ro.html.erb +0 -4
  288. data/app/views/services_mailer/notification_feed_added.text.ro.plain.erb +0 -7
  289. data/app/views/services_mailer/notification_feed_added.text.ru.html.erb +0 -4
  290. data/app/views/services_mailer/notification_feed_added.text.ru.plain.erb +0 -7
  291. data/app/views/services_mailer/notification_feed_added.text.sk.html.erb +0 -4
  292. data/app/views/services_mailer/notification_feed_added.text.sk.plain.erb +0 -7
  293. data/app/views/services_mailer/notification_feed_added.text.sl.html.erb +0 -4
  294. data/app/views/services_mailer/notification_feed_added.text.sl.plain.erb +0 -7
  295. data/app/views/services_mailer/notification_feed_added.text.sq.html.erb +0 -4
  296. data/app/views/services_mailer/notification_feed_added.text.sq.plain.erb +0 -7
  297. data/app/views/services_mailer/notification_feed_added.text.sr.html.erb +0 -4
  298. data/app/views/services_mailer/notification_feed_added.text.sr.plain.erb +0 -7
  299. data/app/views/services_mailer/notification_feed_added.text.sv.html.erb +0 -4
  300. data/app/views/services_mailer/notification_feed_added.text.sv.plain.erb +0 -7
  301. data/app/views/services_mailer/notification_feed_added.text.th.html.erb +0 -4
  302. data/app/views/services_mailer/notification_feed_added.text.th.plain.erb +0 -7
  303. data/app/views/services_mailer/notification_feed_added.text.tl.html.erb +0 -4
  304. data/app/views/services_mailer/notification_feed_added.text.tl.plain.erb +0 -7
  305. data/app/views/services_mailer/notification_feed_added.text.tr.html.erb +0 -4
  306. data/app/views/services_mailer/notification_feed_added.text.tr.plain.erb +0 -7
  307. data/app/views/services_mailer/notification_feed_added.text.uk.html.erb +0 -4
  308. data/app/views/services_mailer/notification_feed_added.text.uk.plain.erb +0 -7
  309. data/app/views/services_mailer/notification_feed_added.text.vi.html.erb +0 -4
  310. data/app/views/services_mailer/notification_feed_added.text.vi.plain.erb +0 -7
  311. data/app/views/services_mailer/notification_feed_added.text.zh-CN.html.erb +0 -4
  312. data/app/views/services_mailer/notification_feed_added.text.zh-CN.plain.erb +0 -7
  313. data/app/views/services_mailer/notification_feed_added.text.zh-TW.html.erb +0 -4
  314. data/app/views/services_mailer/notification_feed_added.text.zh-TW.plain.erb +0 -7
  315. data/app/views/services_mailer/notification_feed_added.text.zh.html.erb +0 -4
  316. data/app/views/services_mailer/notification_feed_added.text.zh.plain.erb +0 -7
  317. data/app/views/services_mailer/notification_oai_endpoint_added.text.ar.html.erb +0 -4
  318. data/app/views/services_mailer/notification_oai_endpoint_added.text.ar.plain.erb +0 -4
  319. data/app/views/services_mailer/notification_oai_endpoint_added.text.bg.html.erb +0 -4
  320. data/app/views/services_mailer/notification_oai_endpoint_added.text.bg.plain.erb +0 -4
  321. data/app/views/services_mailer/notification_oai_endpoint_added.text.ca.html.erb +0 -4
  322. data/app/views/services_mailer/notification_oai_endpoint_added.text.ca.plain.erb +0 -4
  323. data/app/views/services_mailer/notification_oai_endpoint_added.text.cs.html.erb +0 -4
  324. data/app/views/services_mailer/notification_oai_endpoint_added.text.cs.plain.erb +0 -4
  325. data/app/views/services_mailer/notification_oai_endpoint_added.text.da.html.erb +0 -4
  326. data/app/views/services_mailer/notification_oai_endpoint_added.text.da.plain.erb +0 -4
  327. data/app/views/services_mailer/notification_oai_endpoint_added.text.de.html.erb +0 -4
  328. data/app/views/services_mailer/notification_oai_endpoint_added.text.de.plain.erb +0 -4
  329. data/app/views/services_mailer/notification_oai_endpoint_added.text.el.html.erb +0 -4
  330. data/app/views/services_mailer/notification_oai_endpoint_added.text.el.plain.erb +0 -4
  331. data/app/views/services_mailer/notification_oai_endpoint_added.text.es.html.erb +0 -4
  332. data/app/views/services_mailer/notification_oai_endpoint_added.text.es.plain.erb +0 -4
  333. data/app/views/services_mailer/notification_oai_endpoint_added.text.et.html.erb +0 -4
  334. data/app/views/services_mailer/notification_oai_endpoint_added.text.et.plain.erb +0 -4
  335. data/app/views/services_mailer/notification_oai_endpoint_added.text.fa.html.erb +0 -4
  336. data/app/views/services_mailer/notification_oai_endpoint_added.text.fa.plain.erb +0 -4
  337. data/app/views/services_mailer/notification_oai_endpoint_added.text.fi.html.erb +0 -4
  338. data/app/views/services_mailer/notification_oai_endpoint_added.text.fi.plain.erb +0 -4
  339. data/app/views/services_mailer/notification_oai_endpoint_added.text.fr.html.erb +0 -4
  340. data/app/views/services_mailer/notification_oai_endpoint_added.text.fr.plain.erb +0 -4
  341. data/app/views/services_mailer/notification_oai_endpoint_added.text.gl.html.erb +0 -4
  342. data/app/views/services_mailer/notification_oai_endpoint_added.text.gl.plain.erb +0 -4
  343. data/app/views/services_mailer/notification_oai_endpoint_added.text.hi.html.erb +0 -4
  344. data/app/views/services_mailer/notification_oai_endpoint_added.text.hi.plain.erb +0 -4
  345. data/app/views/services_mailer/notification_oai_endpoint_added.text.hr.html.erb +0 -4
  346. data/app/views/services_mailer/notification_oai_endpoint_added.text.hr.plain.erb +0 -4
  347. data/app/views/services_mailer/notification_oai_endpoint_added.text.hu.html.erb +0 -4
  348. data/app/views/services_mailer/notification_oai_endpoint_added.text.hu.plain.erb +0 -4
  349. data/app/views/services_mailer/notification_oai_endpoint_added.text.id.html.erb +0 -4
  350. data/app/views/services_mailer/notification_oai_endpoint_added.text.id.plain.erb +0 -4
  351. data/app/views/services_mailer/notification_oai_endpoint_added.text.it.html.erb +0 -4
  352. data/app/views/services_mailer/notification_oai_endpoint_added.text.it.plain.erb +0 -4
  353. data/app/views/services_mailer/notification_oai_endpoint_added.text.iw.html.erb +0 -4
  354. data/app/views/services_mailer/notification_oai_endpoint_added.text.iw.plain.erb +0 -4
  355. data/app/views/services_mailer/notification_oai_endpoint_added.text.ja.html.erb +0 -4
  356. data/app/views/services_mailer/notification_oai_endpoint_added.text.ja.plain.erb +0 -4
  357. data/app/views/services_mailer/notification_oai_endpoint_added.text.ko.html.erb +0 -4
  358. data/app/views/services_mailer/notification_oai_endpoint_added.text.ko.plain.erb +0 -4
  359. data/app/views/services_mailer/notification_oai_endpoint_added.text.lt.html.erb +0 -4
  360. data/app/views/services_mailer/notification_oai_endpoint_added.text.lt.plain.erb +0 -4
  361. data/app/views/services_mailer/notification_oai_endpoint_added.text.lv.html.erb +0 -4
  362. data/app/views/services_mailer/notification_oai_endpoint_added.text.lv.plain.erb +0 -4
  363. data/app/views/services_mailer/notification_oai_endpoint_added.text.mt.html.erb +0 -4
  364. data/app/views/services_mailer/notification_oai_endpoint_added.text.mt.plain.erb +0 -4
  365. data/app/views/services_mailer/notification_oai_endpoint_added.text.nl.html.erb +0 -4
  366. data/app/views/services_mailer/notification_oai_endpoint_added.text.nl.plain.erb +0 -4
  367. data/app/views/services_mailer/notification_oai_endpoint_added.text.no.html.erb +0 -4
  368. data/app/views/services_mailer/notification_oai_endpoint_added.text.no.plain.erb +0 -4
  369. data/app/views/services_mailer/notification_oai_endpoint_added.text.pl.html.erb +0 -4
  370. data/app/views/services_mailer/notification_oai_endpoint_added.text.pl.plain.erb +0 -4
  371. data/app/views/services_mailer/notification_oai_endpoint_added.text.pt-PT.html.erb +0 -4
  372. data/app/views/services_mailer/notification_oai_endpoint_added.text.pt-PT.plain.erb +0 -4
  373. data/app/views/services_mailer/notification_oai_endpoint_added.text.ro.html.erb +0 -4
  374. data/app/views/services_mailer/notification_oai_endpoint_added.text.ro.plain.erb +0 -4
  375. data/app/views/services_mailer/notification_oai_endpoint_added.text.ru.html.erb +0 -4
  376. data/app/views/services_mailer/notification_oai_endpoint_added.text.ru.plain.erb +0 -4
  377. data/app/views/services_mailer/notification_oai_endpoint_added.text.sk.html.erb +0 -4
  378. data/app/views/services_mailer/notification_oai_endpoint_added.text.sk.plain.erb +0 -4
  379. data/app/views/services_mailer/notification_oai_endpoint_added.text.sl.html.erb +0 -4
  380. data/app/views/services_mailer/notification_oai_endpoint_added.text.sl.plain.erb +0 -4
  381. data/app/views/services_mailer/notification_oai_endpoint_added.text.sq.html.erb +0 -4
  382. data/app/views/services_mailer/notification_oai_endpoint_added.text.sq.plain.erb +0 -4
  383. data/app/views/services_mailer/notification_oai_endpoint_added.text.sr.html.erb +0 -4
  384. data/app/views/services_mailer/notification_oai_endpoint_added.text.sr.plain.erb +0 -4
  385. data/app/views/services_mailer/notification_oai_endpoint_added.text.sv.html.erb +0 -4
  386. data/app/views/services_mailer/notification_oai_endpoint_added.text.sv.plain.erb +0 -4
  387. data/app/views/services_mailer/notification_oai_endpoint_added.text.th.html.erb +0 -4
  388. data/app/views/services_mailer/notification_oai_endpoint_added.text.th.plain.erb +0 -4
  389. data/app/views/services_mailer/notification_oai_endpoint_added.text.tl.html.erb +0 -4
  390. data/app/views/services_mailer/notification_oai_endpoint_added.text.tl.plain.erb +0 -4
  391. data/app/views/services_mailer/notification_oai_endpoint_added.text.tr.html.erb +0 -4
  392. data/app/views/services_mailer/notification_oai_endpoint_added.text.tr.plain.erb +0 -4
  393. data/app/views/services_mailer/notification_oai_endpoint_added.text.uk.html.erb +0 -4
  394. data/app/views/services_mailer/notification_oai_endpoint_added.text.uk.plain.erb +0 -4
  395. data/app/views/services_mailer/notification_oai_endpoint_added.text.vi.html.erb +0 -4
  396. data/app/views/services_mailer/notification_oai_endpoint_added.text.vi.plain.erb +0 -4
  397. data/app/views/services_mailer/notification_oai_endpoint_added.text.zh-CN.html.erb +0 -4
  398. data/app/views/services_mailer/notification_oai_endpoint_added.text.zh-CN.plain.erb +0 -4
  399. data/app/views/services_mailer/notification_oai_endpoint_added.text.zh-TW.html.erb +0 -4
  400. data/app/views/services_mailer/notification_oai_endpoint_added.text.zh-TW.plain.erb +0 -4
  401. data/app/views/services_mailer/notification_oai_endpoint_added.text.zh.html.erb +0 -4
  402. data/app/views/services_mailer/notification_oai_endpoint_added.text.zh.plain.erb +0 -4
  403. data/config/muck_services_routes.rb +0 -43
  404. data/lib/active_record/acts/muck_aggregation_owner.rb +0 -30
  405. data/lib/active_record/acts/muck_feed_owner.rb +0 -36
  406. data/lib/active_record/acts/muck_feed_parent.rb +0 -23
  407. data/lib/active_record/acts/muck_recommendations.rb +0 -24
  408. data/lib/active_record/acts/muck_services_comment.rb +0 -40
  409. data/lib/active_record/acts/muck_services_share.rb +0 -32
  410. data/lib/muck_services.rb +0 -23
  411. data/lib/muck_services/initialize_routes.rb +0 -8
  412. data/lib/muck_services/tasks.rb +0 -117
  413. data/rails/init.rb +0 -18
  414. data/test/rails_root/config/boot.rb +0 -109
  415. data/test/rails_root/config/environment.rb +0 -41
  416. data/test/rails_root/config/environments/cucumber.rb +0 -21
  417. data/test/rails_root/config/environments/development.rb +0 -37
  418. data/test/rails_root/config/environments/production.rb +0 -1
  419. data/test/rails_root/config/environments/test.rb +0 -24
  420. data/test/rails_root/config/initializers/requires.rb +0 -13
  421. data/test/rails_root/config/initializers/session_store.rb +0 -8
  422. data/test/rails_root/config/routes.rb +0 -11
  423. data/test/rails_root/db/schema.rb +0 -504
  424. data/test/rails_root/features/support/env.rb +0 -14
  425. data/test/rails_root/features/support/paths.rb +0 -36
  426. data/test/rails_root/script/create_project.rb +0 -52
  427. data/test/rails_root/test/functional/admin/feeds_controller_test.rb +0 -37
  428. data/test/rails_root/test/functional/admin/oai_endpoints_controller_test.rb +0 -30
  429. data/test/rails_root/test/functional/aggregations_controller_test.rb +0 -89
  430. data/test/rails_root/test/functional/feed_previews_controller_test.rb +0 -32
  431. data/test/rails_root/test/functional/feeds_controller_test.rb +0 -78
  432. data/test/rails_root/test/functional/oai_endpoints_controller_test.rb +0 -42
  433. data/test/rails_root/test/functional/topics_controller_test.rb +0 -50
  434. data/test/rails_root/test/functional/visits_controller_test.rb +0 -21
  435. data/test/rails_root/test/unit/comment_test.rb +0 -38
  436. data/test/rails_root/test/unit/oai_endpoint_test.rb +0 -84
  437. data/test/rails_root/test/unit/personal_recommendation_test.rb +0 -78
  438. data/test/rails_root/test/unit/service_category_test.rb +0 -19
  439. data/test/rails_root/test/unit/service_test.rb +0 -386
  440. data/test/rails_root/test/unit/services_mailer_test.rb +0 -35
  441. data/test/rails_root/vendor/plugins/jrails/init.rb +0 -1
  442. data/test/rails_root/vendor/plugins/jrails/install.rb +0 -9
  443. data/test/rails_root/vendor/plugins/jrails/lib/jrails.rb +0 -421
  444. data/test/rails_root/vendor/plugins/jrails/rails/init.rb +0 -15
  445. data/test/rails_root/vendor/plugins/ssl_requirement/lib/ssl_requirement.rb +0 -62
  446. data/test/rails_root/vendor/plugins/ssl_requirement/test/ssl_requirement_test.rb +0 -132
@@ -1,21 +0,0 @@
1
- require File.dirname(__FILE__) + '/../test_helper'
2
-
3
- class Muck::VisitsControllerTest < ActionController::TestCase
4
-
5
- tests Muck::VisitsController
6
-
7
- context "visits controller" do
8
-
9
- context "GET show" do
10
- setup do
11
- @entry = Factory(:entry)
12
- get :show, :id => @entry.to_param, :format => 'html'
13
- end
14
- should_not_set_the_flash
15
- should_respond_with :success
16
- should_render_template :show
17
- end
18
-
19
- end
20
-
21
- end
@@ -1,38 +0,0 @@
1
- # == Schema Information
2
- #
3
- # Table name: comments
4
- #
5
- # id :integer(4) not null, primary key
6
- # commentable_id :integer(4) default(0)
7
- # commentable_type :string(15) default("")
8
- # body :text
9
- # user_id :integer(4)
10
- # parent_id :integer(4)
11
- # lft :integer(4)
12
- # rgt :integer(4)
13
- # is_denied :integer(4) default(0), not null
14
- # is_reviewed :boolean(1)
15
- # created_at :datetime
16
- # updated_at :datetime
17
- #
18
-
19
- require File.dirname(__FILE__) + '/../test_helper'
20
-
21
- class CommentTest < ActiveSupport::TestCase
22
-
23
- context "comment instance" do
24
-
25
- context "activities" do
26
- setup do
27
- @entry = Factory(:entry)
28
- @user = Factory(:user)
29
- end
30
- should "add comment activity" do
31
- assert_difference "Activity.count", 1 do
32
- Comment.create(Factory.attributes_for(:comment, :commentable => @entry, :user => @user))
33
- end
34
- end
35
- end
36
- end
37
-
38
- end
@@ -1,84 +0,0 @@
1
- # == Schema Information
2
- #
3
- # Table name: oai_endpoints
4
- #
5
- # id :integer(4) not null, primary key
6
- # uri :string(2083)
7
- # display_uri :string(2083)
8
- # metadata_prefix :string(255)
9
- # title :string(1000)
10
- # short_title :string(100)
11
- # contributor_id :integer(4)
12
- # status :integer(4)
13
- # default_language_id :integer(4)
14
- # created_at :datetime
15
- # updated_at :datetime
16
- #
17
-
18
- require File.dirname(__FILE__) + '/../test_helper'
19
-
20
- # Used to test muck_content_permission
21
- class OaiEndpointTest < ActiveSupport::TestCase
22
-
23
- context "An oai endpoint instance" do
24
- setup do
25
- @oai_endpoint = Factory(:oai_endpoint)
26
- end
27
-
28
- subject { @oai_endpoint }
29
-
30
- should_belong_to :contributor
31
- should_belong_to :default_language
32
-
33
- should_validate_presence_of :uri
34
-
35
- should_scope_by_title
36
- should_scope_recent
37
- should_scope_by_newest
38
-
39
- context "named scope" do
40
- context "banned" do
41
- # named_scope :banned, :conditions => ["status = ?", MuckServices::Status::BANNED]
42
- setup do
43
- @oai_endpoint = Factory(:oai_endpoint, :status => MuckServices::Status::BANNED)
44
- @oai_endpoint_not = Factory(:oai_endpoint)
45
- end
46
- should "find oai_endpoints that are banned" do
47
- assert OaiEndpoint.banned.include?(@oai_endpoint)
48
- end
49
- should "not find oai_endpoints that are not banned" do
50
- assert !OaiEndpoint.banned.include?(@oai_endpoint_not)
51
- end
52
- end
53
- context "valid" do
54
- # named_scope :valid, :conditions => "status >= 0", :include => [:default_language]
55
- setup do
56
- @oai_endpoint = Factory(:oai_endpoint, :status => 0)
57
- @oai_endpoint_not = Factory(:oai_endpoint, :status => MuckServices::Status::BANNED)
58
- end
59
- should "find valid oai_endpoints" do
60
- assert OaiEndpoint.valid.include?(@oai_endpoint)
61
- end
62
- should "not find invalid oai_endpoints" do
63
- assert !OaiEndpoint.valid.include?(@oai_endpoint_not)
64
- end
65
- end
66
- end
67
-
68
- end
69
-
70
- context "banned/unbanned" do
71
- setup do
72
- @oai_endpoint = Factory(:oai_endpoint)
73
- end
74
- should "be banned" do
75
- @oai_endpoint.status = -1
76
- assert @oai_endpoint.banned?
77
- end
78
- should "not be banned" do
79
- @oai_endpoint.status = 0
80
- assert !@oai_endpoint.banned?
81
- end
82
- end
83
-
84
- end
@@ -1,78 +0,0 @@
1
- require File.dirname(__FILE__) + '/../test_helper'
2
-
3
- class PersonalRecommendationTest < ActiveSupport::TestCase
4
- context "personal recommendations" do
5
- setup do
6
- @user = Factory(:user)
7
- end
8
-
9
- context "has_muck_recommendations" do
10
- setup do
11
- @entry = Factory(:entry)
12
- end
13
- should "create a personal recommendation" do
14
- recommendation = @user.personal_recommendations.build(:destination => @entry)
15
- assert recommendation.save
16
- end
17
- end
18
-
19
- context "acts_as_muck_recommendation" do
20
- setup do
21
- @recommended_user = Factory(:user)
22
- end
23
- should "make user recommended" do
24
- recommendation = @user.personal_recommendations.create(:destination => @recommended_user)
25
- assert @recommended_user.recommended_to.include?(recommendation)
26
- end
27
- end
28
-
29
- context "named scopes" do
30
- setup do
31
- @entry = Factory(:entry)
32
- @entry_old = Factory(:entry)
33
- @recommended_user = Factory(:user)
34
- @entry_recommendation = @user.personal_recommendations.create(:destination => @entry)
35
- @user_recommendation = @user.personal_recommendations.create(:destination => @recommended_user, :created_at => 1.day.ago)
36
- @old_recommendation = @user.personal_recommendations.create(:destination => @entry_old, :created_at => 3.weeks.ago)
37
- end
38
-
39
- context "entries" do
40
- should "return an entry" do
41
- assert @user.personal_recommendations.entries_only.include?(@entry_recommendation)
42
- end
43
- should "not return a user" do
44
- assert !@user.personal_recommendations.entries_only.include?(@user_recommendation)
45
- end
46
- end
47
- context "users" do
48
- should "return an user" do
49
- assert @user.personal_recommendations.users.include?(@user_recommendation)
50
- end
51
- should "not return an entry" do
52
- assert !@user.personal_recommendations.users.include?(@entry_recommendation)
53
- end
54
- end
55
- context "limited" do
56
- should "only return a limited number of recommendations" do
57
- assert_equal 1, @user.personal_recommendations.limit(1).length
58
- end
59
- end
60
- context "recent" do
61
- should "return recent recommendations" do
62
- assert @user.personal_recommendations.recent.include?(@entry_recommendation)
63
- end
64
- should "not return old recommendations" do
65
- assert !@user.personal_recommendations.recent.include?(@old_recommendation)
66
- end
67
- end
68
- context "newest" do
69
- should "order recommendations by newest" do
70
- recommendations = @user.personal_recommendations.newest
71
- assert recommendations[0].created_at > recommendations[1].created_at
72
- end
73
- end
74
-
75
- end
76
-
77
- end
78
- end
@@ -1,19 +0,0 @@
1
- # == Schema Information
2
- #
3
- # Table name: service_categories
4
- #
5
- # id :integer(4) not null, primary key
6
- # name :string(255) not null
7
- # sort :integer(4) default(0)
8
- #
9
-
10
- require File.dirname(__FILE__) + '/../test_helper'
11
-
12
- class ServiceCategoryTest < ActiveSupport::TestCase
13
-
14
- context "service category instance" do
15
- should_have_many :services
16
- should_scope_sorted
17
- end
18
-
19
- end
@@ -1,386 +0,0 @@
1
- # == Schema Information
2
- #
3
- # Table name: services
4
- #
5
- # id :integer(4) not null, primary key
6
- # uri :string(2083) default("")
7
- # name :string(1000) default("")
8
- # api_uri :string(2083) default("")
9
- # uri_template :string(2083) default("")
10
- # icon :string(2083) default("rss.gif")
11
- # sort :integer(4)
12
- # requires_password :boolean(1)
13
- # use_for :string(255)
14
- # service_category_id :integer(4)
15
- # active :boolean(1) default(TRUE)
16
- # prompt :string(255)
17
- # template :string(255)
18
- # uri_data_template :string(2083) default("")
19
- # uri_key :string(255)
20
- #
21
-
22
- require File.dirname(__FILE__) + '/../test_helper'
23
-
24
- class ServiceTest < ActiveSupport::TestCase
25
-
26
- context "service instance" do
27
-
28
- should_belong_to :service_category
29
- should_scope_sorted
30
-
31
- context "named scope" do
32
- context "identity_services" do
33
- # named_scope :identity_services, :conditions => ['use_for = ?', 'identity']
34
- setup do
35
- @service = Factory(:service, :use_for => 'identity')
36
- @service_not = Factory(:service, :use_for => 'not')
37
- end
38
- should "find services that have use_for=='identity_services'" do
39
- assert Service.identity_services.include?(@service)
40
- end
41
- should "not find services that where use_for!='identity_services'" do
42
- assert !Service.identity_services.include?(@service_not)
43
- end
44
- end
45
- context "tag_services" do
46
- # named_scope :tag_services, :conditions => ['use_for = ?', 'tags']
47
- setup do
48
- @service = Factory(:service, :use_for => 'tags')
49
- @service_not = Factory(:service, :use_for => 'not')
50
- end
51
- should "find services that have use_for=='tags'" do
52
- assert Service.tag_services.include?(@service)
53
- end
54
- should "not find services that where use_for!='tags'" do
55
- assert !Service.tag_services.include?(@service_not)
56
- end
57
- end
58
- context "sorted_id" do
59
- # named_scope :sorted_id, :order => "id ASC"
60
- setup do
61
- Service.delete_all
62
- @first = Factory(:service)
63
- @second = Factory(:service)
64
- end
65
- should "sort by 'sort' field" do
66
- assert_equal @first, Service.sorted_id[0]
67
- assert_equal @second, Service.sorted_id[1]
68
- end
69
- end
70
- context "photo_services" do
71
- # named_scope :photo_services, :conditions => ["service_categories.id = services.service_category_id AND service_categories.name = 'Photos'"], :include => ['service_category']
72
- setup do
73
- @service_category = Factory(:service_category, :name => 'Photos')
74
- @service = Factory(:service, :service_category => @service_category)
75
- @service_not = Factory(:service)
76
- end
77
- should "find services that have 'Photos' for a service category" do
78
- assert Service.photo_services.include?(@service)
79
- end
80
- should "not find services that don't have 'Photos' for a service category" do
81
- assert !Service.photo_services.include?(@service_not)
82
- end
83
- end
84
- end
85
-
86
- context "photos" do
87
- setup do
88
- service_category = Factory(:service_category, :name => 'Photos')
89
- @service = Factory(:service, :service_category_id => service_category.id)
90
- end
91
- should "be a photo service" do
92
- assert @service.photo?(true)
93
- end
94
- end
95
-
96
- context "videos" do
97
- setup do
98
- service_category = Factory(:service_category, :name => 'Videos')
99
- @service = Factory(:service, :service_category_id => service_category.id)
100
- end
101
- should "be a video service" do
102
- assert @service.video?(true)
103
- end
104
- end
105
-
106
- context "bookmarks" do
107
- setup do
108
- service_category = Factory(:service_category, :name => 'Bookmarks')
109
- @service = Factory(:service, :service_category_id => service_category.id)
110
- end
111
- should "be a bookmark service" do
112
- assert @service.bookmark?(true)
113
- end
114
- end
115
-
116
- context "music" do
117
- setup do
118
- service_category = Factory(:service_category, :name => 'Music')
119
- @service = Factory(:service, :service_category_id => service_category.id)
120
- end
121
- should "be a music service" do
122
- assert @service.music?(true)
123
- end
124
- end
125
-
126
- context "news" do
127
- setup do
128
- service_category = Factory(:service_category, :name => 'News')
129
- @service = Factory(:service, :service_category_id => service_category.id)
130
- end
131
- should "be a news service" do
132
- assert @service.news?(true)
133
- end
134
- end
135
-
136
- context "blog" do
137
- setup do
138
- service_category = Factory(:service_category, :name => 'Blogging')
139
- @service = Factory(:service, :service_category_id => service_category.id)
140
- end
141
- should "be a blog service" do
142
- assert @service.blog?(true)
143
- end
144
- end
145
-
146
- context "search" do
147
- setup do
148
- service_category = Factory(:service_category, :name => 'Search')
149
- @service = Factory(:service, :service_category_id => service_category.id)
150
- end
151
- should "be a search service" do
152
- assert @service.search?(true)
153
- end
154
- end
155
-
156
- context "general" do
157
- setup do
158
- service_category = Factory(:service_category, :name => 'RSS')
159
- @service = Factory(:service, :service_category_id => service_category.id)
160
- end
161
- should "be a general service" do
162
- assert @service.general?(true)
163
- end
164
- end
165
-
166
- end
167
-
168
- context "identity services" do
169
- should "generate uri using blog url" do
170
- service = Factory(:service)
171
- uris = service.generate_uris('', '', TEST_URI)
172
- assert uris.map(&:url).include?(TEST_RSS_URI)
173
- end
174
- should "generate uri using username" do
175
- service = Factory(:service, :uri_data_template => TEST_USERNAME_TEMPLATE)
176
- uris = service.generate_uris('jbasdf', '', '')
177
- assert uris.map(&:url).include?(TEST_USERNAME_TEMPLATE.sub('{username}', 'jbasdf'))
178
- end
179
- should "get twitter uri from username" do
180
- service = Factory(:service, :uri_data_template => "http://www.twitter.com/{username}")
181
- uris = service.generate_uris('jbasdf', '', '')
182
- assert uris.map(&:url).include?("http://twitter.com/statuses/user_timeline/7219042.rss")
183
- end
184
- end
185
-
186
- context "tag services" do
187
- setup do
188
- @user = Factory(:user)
189
- @template = "http://example.com/{tag}.rss"
190
- @uri_template = "http://example.com/{tag}"
191
- @service = Factory(:service, :uri_data_template => @template, :uri_template => @uri_template, :use_for => 'tags')
192
- end
193
- should "generate urls for tag" do
194
- tag = 'rails'
195
- uris = Service.generate_tag_uris(tag)
196
- assert uris.include?(@template.sub('{tag}', tag))
197
- end
198
- should "set display uri when building a feed" do
199
- tag = 'identity'
200
- feeds = Service.build_tag_feeds(tag, @user, nil, true)
201
- assert feeds.any?{|feed| feed.display_uri == (@uri_template.sub('{tag}', tag))}
202
- end
203
- should "build a feed for every tag service" do
204
- tag = 'cycling'
205
- feeds = Service.build_tag_feeds(tag, @user, nil, true)
206
- assert_equal Service.tag_services.length, feeds.length
207
- assert feeds.any?{|feed| feed.uri == (@template.sub('{tag}', tag))}
208
- end
209
- should "build a limited number of feeds for tag" do
210
- tag = 'ruby'
211
- feeds = Service.build_tag_feeds(tag, @user, [@service.id], true)
212
- assert_equal 1, feeds.length
213
- assert feeds.any?{|feed| feed.uri == (@template.sub('{tag}', tag))}
214
- end
215
- should "create a feed for every tag service" do
216
- tag = 'physics'
217
- feeds = Service.create_tag_feeds(tag, @user, nil, true)
218
- assert_equal Service.tag_services.length, feeds.length
219
- assert feeds.any?{|feed| feed.uri == (@template.sub('{tag}', tag))}
220
- end
221
- should "create a limited number of feeds for tag" do
222
- tag = 'math'
223
- feeds = Service.create_tag_feeds(tag, @user, [@service.id], true)
224
- assert_equal 1, feeds.length
225
- assert feeds.any?{|feed| feed.uri == (@template.sub('{tag}', tag))}
226
- end
227
- end
228
-
229
- context "Create feed from service" do
230
- setup do
231
- @login = 'jbasdf'
232
- @password = ''
233
- @uri_data_template = TEST_USERNAME_TEMPLATE
234
- @service = Factory(:service, :uri_data_template => @uri_data_template)
235
- @user = Factory(:user)
236
- end
237
- should "create feed from service" do
238
- feeds = Service.create_tag_feeds_for_service(@service, '', @login, @password, @user.id)
239
- feed = feeds[0]
240
- assert_equal @uri_data_template.sub("{username}", @login), feed.uri
241
- assert_equal @login, feed.login
242
- assert_equal @password, feed.password
243
- assert_equal @service.id, feed.service_id
244
- end
245
- should "create feed from service even with nil template" do
246
- feeds = Service.create_tag_feeds_for_service(@service, '', @login, @password, @user.id)
247
- feed = feeds[0]
248
- assert_equal @uri_data_template.sub("{username}", @login), feed.uri
249
- assert_equal @login, feed.login
250
- assert_equal @password, feed.password
251
- assert_equal @service.id, feed.service_id
252
- end
253
- end
254
-
255
- context "Find service by uri" do
256
- setup do
257
- Service.delete_all
258
- end
259
- teardown do
260
- bootstrap_services
261
- end
262
- should "find service when uri is shorter" do
263
- foo_service = Factory(:service, :uri => 'http://www.foo.com')
264
- service = Service.find_service_by_uri('foo.com', true)
265
- assert_equal foo_service, service
266
- end
267
- should "find service uri is longer" do
268
- example_service = Factory(:service, :uri => 'http://www.example.com')
269
- service = Service.find_service_by_uri('http://www.example.com/other_stuff', true)
270
- assert_equal example_service, service
271
- end
272
- end
273
-
274
- context "build" do
275
- setup do
276
- @terms = "ruby"
277
- @user = Factory(:user)
278
- end
279
- context "photo feeds" do
280
- setup do
281
- @feeds = Service.build_photo_feeds(@terms, @user.id)
282
- end
283
- should "only create photo feeds" do
284
- assert @feeds.length > 0
285
- assert @feeds.all? { |feed| feed.service.service_category.name == "Photos" }
286
- end
287
- end
288
- context "video feeds" do
289
- setup do
290
- @feeds = Service.build_video_feeds(@terms, @user.id)
291
- end
292
- should "only create video feeds" do
293
- assert @feeds.length > 0
294
- assert @feeds.all? { |feed| feed.service.service_category.name == "Videos" }
295
- end
296
- end
297
- context "bookmark feeds" do
298
- setup do
299
- @feeds = Service.build_bookmark_feeds(@terms, @user.id)
300
- end
301
- should "only create bookmark feeds" do
302
- assert @feeds.length > 0
303
- assert @feeds.all? { |feed| feed.service.service_category.name == "Bookmarks" }
304
- end
305
- end
306
- context "music feeds" do
307
- setup do
308
- build_music_service
309
- @feeds = Service.build_music_feeds(@terms, @user.id, nil, true) # We build the music service above so we have to force a cache refresh
310
- end
311
- should "only create music feeds" do
312
- assert @feeds.length > 0
313
- assert @feeds.all? { |feed| feed.service.service_category.name == "Music" }
314
- end
315
- end
316
- context "news feeds" do
317
- setup do
318
- @feeds = Service.build_news_feeds(@terms, @user.id, nil, true) # We build the news service above so we have to force a cache refresh
319
- end
320
- should "only create news feeds" do
321
- assert @feeds.length > 0
322
- assert @feeds.all? { |feed| feed.service.service_category.name == "News" }
323
- end
324
- end
325
- context "blog feeds" do
326
- setup do
327
- @feeds = Service.build_blog_feeds(@terms, @user.id, nil, true) # We build the blog service above so we have to force a cache refresh
328
- end
329
- should "only create blog feeds" do
330
- assert @feeds.length > 0
331
- assert @feeds.all? { |feed| feed.service.service_category.name == "Blogging" }
332
- end
333
- end
334
- context "search feeds" do
335
- setup do
336
- @feeds = Service.build_search_feeds(@terms, @user.id, nil, true) # We build the search service above so we have to force a cache refresh
337
- end
338
- should "only create search feeds" do
339
- assert @feeds.length > 0
340
- assert @feeds.all? { |feed| feed.service.service_category.name == "Search" }
341
- end
342
- end
343
- end
344
-
345
- context "service types" do
346
- setup do
347
- build_music_service
348
- end
349
- should "get photo services" do
350
- assert Service.get_photo_tag_services(true).length > 0
351
- assert Service.get_photo_tag_services.all? { |service| service.service_category.name == "Photos" }
352
- end
353
- should "get video services" do
354
- assert Service.get_video_tag_services(true).length > 0
355
- assert Service.get_video_tag_services.all? { |service| service.service_category.name == "Videos" }
356
- end
357
- should "get bookmark services" do
358
- assert Service.get_bookmark_tag_services(true).length > 0
359
- assert Service.get_bookmark_tag_services.all? { |service| service.service_category.name == "Bookmarks" }
360
- end
361
- should "get music services" do
362
- assert Service.get_music_tag_services(true).length > 0
363
- assert Service.get_music_tag_services.all? { |service| service.service_category.name == "Music" }
364
- end
365
- should "get news services" do
366
- assert Service.get_news_tag_services(true).length > 0
367
- assert Service.get_news_tag_services.all? { |service| service.service_category.name == "News" }
368
- end
369
- should "get blog services" do
370
- assert Service.get_blog_tag_services(true).length > 0
371
- assert Service.get_blog_tag_services.all? { |service| service.service_category.name == "Blogging" }
372
- end
373
- should "get search services" do
374
- assert Service.get_search_tag_services(true).length > 0
375
- assert Service.get_search_tag_services.all? { |service| service.service_category.name == "Search" }
376
- end
377
- should "get general services" do
378
- assert Service.get_general_tag_services(true).length > 0
379
- assert !Service.get_general_tag_services.any? { |service| service.service_category.name == "Photos" }
380
- assert !Service.get_general_tag_services.any? { |service| service.service_category.name == "Videos" }
381
- assert !Service.get_general_tag_services.any? { |service| service.service_category.name == "Bookmarks" }
382
- assert !Service.get_general_tag_services.any? { |service| service.service_category.name == "Music" }
383
- end
384
- end
385
-
386
- end