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
@@ -0,0 +1,383 @@
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__) + '/../spec_helper'
23
+
24
+ describe Service do
25
+
26
+ describe "service instance" do
27
+
28
+ it { should belong_to :service_category }
29
+ it { should scope_sorted }
30
+ it { should scope_sorted_id }
31
+
32
+ describe "named scope" do
33
+ describe "identity_services" do
34
+ before do
35
+ @service = Factory(:service, :use_for => 'identity')
36
+ @service_not = Factory(:service, :use_for => 'not')
37
+ end
38
+ it "should find services that have use_for=='identity_services'" do
39
+ Service.identity_services.should include(@service)
40
+ end
41
+ it "should not find services that where use_for!='identity_services'" do
42
+ Service.identity_services.should_not include(@service_not)
43
+ end
44
+ end
45
+ describe "tag_services" do
46
+ before do
47
+ @service = Factory(:service, :use_for => 'tags')
48
+ @service_not = Factory(:service, :use_for => 'not')
49
+ end
50
+ it "should find services that have use_for=='tags'" do
51
+ Service.tag_services.should include(@service)
52
+ end
53
+ it "should not find services that where use_for!='tags'" do
54
+ Service.tag_services.should_not include(@service_not)
55
+ end
56
+ end
57
+ describe "sorted_id" do
58
+ before do
59
+ Service.delete_all
60
+ @first = Factory(:service)
61
+ @second = Factory(:service)
62
+ end
63
+ it "should sort by 'sort' field" do
64
+ Service.sorted_id[0].should == @first
65
+ Service.sorted_id[1].should == @second
66
+ end
67
+ end
68
+ describe "photo_services" do
69
+ before do
70
+ @service_category = Factory(:service_category, :name => 'Photos')
71
+ @service = Factory(:service, :service_category => @service_category)
72
+ @service_not = Factory(:service)
73
+ end
74
+ it "should find services that have 'Photos' for a service category" do
75
+ Service.photo_services.should include(@service)
76
+ end
77
+ it "should not find services that don't have 'Photos' for a service category" do
78
+ Service.photo_services.should_not include(@service_not)
79
+ end
80
+ end
81
+ end
82
+
83
+ describe "photos" do
84
+ before do
85
+ service_category = Factory(:service_category, :name => 'Photos')
86
+ @service = Factory(:service, :service_category_id => service_category.id)
87
+ end
88
+ it "should be a photo service" do
89
+ @service.photo?(true).should be_true
90
+ end
91
+ end
92
+
93
+ describe "videos" do
94
+ before do
95
+ service_category = Factory(:service_category, :name => 'Videos')
96
+ @service = Factory(:service, :service_category_id => service_category.id)
97
+ end
98
+ it "should be a video service" do
99
+ @service.video?(true).should be_true
100
+ end
101
+ end
102
+
103
+ describe "bookmarks" do
104
+ before do
105
+ service_category = Factory(:service_category, :name => 'Bookmarks')
106
+ @service = Factory(:service, :service_category_id => service_category.id)
107
+ end
108
+ it "should be a bookmark service" do
109
+ @service.bookmark?(true).should be_true
110
+ end
111
+ end
112
+
113
+ describe "music" do
114
+ before do
115
+ service_category = Factory(:service_category, :name => 'Music')
116
+ @service = Factory(:service, :service_category_id => service_category.id)
117
+ end
118
+ it "should be a music service" do
119
+ @service.music?(true).should be_true
120
+ end
121
+ end
122
+
123
+ describe "news" do
124
+ before do
125
+ service_category = Factory(:service_category, :name => 'News')
126
+ @service = Factory(:service, :service_category_id => service_category.id)
127
+ end
128
+ it "should be a news service" do
129
+ @service.news?(true).should be_true
130
+ end
131
+ end
132
+
133
+ describe "blog" do
134
+ before do
135
+ service_category = Factory(:service_category, :name => 'Blogging')
136
+ @service = Factory(:service, :service_category_id => service_category.id)
137
+ end
138
+ it "should be a blog service" do
139
+ @service.blog?(true).should be_true
140
+ end
141
+ end
142
+
143
+ describe "search" do
144
+ before do
145
+ service_category = Factory(:service_category, :name => 'Search')
146
+ @service = Factory(:service, :service_category_id => service_category.id)
147
+ end
148
+ it "should be a search service" do
149
+ @service.search?(true).should be_true
150
+ end
151
+ end
152
+
153
+ describe "general" do
154
+ before do
155
+ service_category = Factory(:service_category, :name => 'RSS')
156
+ @service = Factory(:service, :service_category_id => service_category.id)
157
+ end
158
+ it "should be a general service" do
159
+ @service.general?(true).should be_true
160
+ end
161
+ end
162
+
163
+ end
164
+
165
+ describe "identity services" do
166
+ it "should generate uri using blog url" do
167
+ service = Factory(:service)
168
+ uris = service.generate_uris('', '', TEST_URI)
169
+ uris.map(&:url).include?(TEST_RSS_URI).should be_true
170
+ end
171
+ it "should generate uri using username" do
172
+ service = Factory(:service, :uri_data_template => TEST_USERNAME_TEMPLATE)
173
+ uris = service.generate_uris('jbasdf', '', '')
174
+ uris.map(&:url).include?(TEST_USERNAME_TEMPLATE.sub('{username}', 'jbasdf')).should be_true
175
+ end
176
+ it "should get twitter uri from username" do
177
+ service = Factory(:service, :uri_data_template => "http://www.twitter.com/{username}")
178
+ uris = service.generate_uris('jbasdf', '', '')
179
+ uris.map(&:url).include?("http://twitter.com/statuses/user_timeline/7219042.rss").should be_true
180
+ end
181
+ end
182
+
183
+ describe "tag services" do
184
+ before do
185
+ @user = Factory(:user)
186
+ @template = "http://example.com/{tag}.rss"
187
+ @uri_template = "http://example.com/{tag}"
188
+ @service = Factory(:service, :uri_data_template => @template, :uri_template => @uri_template, :use_for => 'tags')
189
+ end
190
+ it "should generate urls for tag" do
191
+ tag = 'rails'
192
+ uris = Service.generate_tag_uris(tag)
193
+ uris.should include(@template.sub('{tag}', tag))
194
+ end
195
+ it "should set display uri when building a feed" do
196
+ tag = 'identity'
197
+ feeds = Service.build_tag_feeds(tag, @user, nil, true)
198
+ feeds.any?{|feed| feed.display_uri == (@uri_template.sub('{tag}', tag))}.should be_true
199
+ end
200
+ it "should build a feed for every tag service" do
201
+ tag = 'cycling'
202
+ feeds = Service.build_tag_feeds(tag, @user, nil, true)
203
+ feeds.length.should == Service.tag_services.length
204
+ feeds.any?{|feed| feed.uri == (@template.sub('{tag}', tag))}.should be_true
205
+ end
206
+ it "should build a limited number of feeds for tag" do
207
+ tag = 'ruby'
208
+ feeds = Service.build_tag_feeds(tag, @user, [@service.id], true)
209
+ feeds.length.should == 1
210
+ feeds.any?{|feed| feed.uri == (@template.sub('{tag}', tag))}.should be_true
211
+ end
212
+ it "should create a feed for every tag service" do
213
+ tag = 'physics'
214
+ feeds = Service.create_tag_feeds(tag, @user, nil, true)
215
+ feeds.length.should == Service.tag_services.length
216
+ feeds.any?{|feed| feed.uri == (@template.sub('{tag}', tag))}.should be_true
217
+ end
218
+ it "should create a limited number of feeds for tag" do
219
+ tag = 'math'
220
+ feeds = Service.create_tag_feeds(tag, @user, [@service.id], true)
221
+ feeds.length.should == 1
222
+ feeds.any?{|feed| feed.uri.should == (@template.sub('{tag}', tag))}
223
+ end
224
+ end
225
+
226
+ describe "Create feed from service" do
227
+ before do
228
+ @login = 'jbasdf'
229
+ @password = ''
230
+ @uri_data_template = TEST_USERNAME_TEMPLATE
231
+ @service = Factory(:service, :uri_data_template => @uri_data_template)
232
+ @user = Factory(:user)
233
+ end
234
+ it "should create feed from service" do
235
+ feeds = Service.create_tag_feeds_for_service(@service, '', @login, @password, @user.id)
236
+ feed = feeds[0]
237
+ feed.uri.should == @uri_data_template.sub("{username}", @login)
238
+ feed.login.should == @login
239
+ feed.password.should == @password
240
+ feed.service_id.should == @service.id
241
+ end
242
+ it "should create feed from service even with nil template" do
243
+ feeds = Service.create_tag_feeds_for_service(@service, '', @login, @password, @user.id)
244
+ feed = feeds[0]
245
+ feed.uri.should == @uri_data_template.sub("{username}", @login)
246
+ feed.login.should == @login
247
+ feed.password.should == @password
248
+ feed.service_id.should == @service.id
249
+ end
250
+ end
251
+
252
+ describe "Find service by uri" do
253
+ before do
254
+ Service.delete_all
255
+ end
256
+ after do
257
+ bootstrap_services
258
+ end
259
+ it "should find service when uri is shorter" do
260
+ foo_service = Factory(:service, :uri => 'http://www.foo.com')
261
+ service = Service.find_service_by_uri('foo.com', true)
262
+ service.should == foo_service
263
+ end
264
+ it "should find service uri is longer" do
265
+ example_service = Factory(:service, :uri => 'http://www.example.com')
266
+ service = Service.find_service_by_uri('http://www.example.com/other_stuff', true)
267
+ service.should == example_service
268
+ end
269
+ end
270
+
271
+ describe "build" do
272
+ before do
273
+ @terms = "ruby"
274
+ @user = Factory(:user)
275
+ end
276
+ describe "photo feeds" do
277
+ before do
278
+ @feeds = Service.build_photo_feeds(@terms, @user.id)
279
+ end
280
+ it "should only create photo feeds" do
281
+ assert @feeds.length > 0
282
+ @feeds.all? { |feed| feed.service.service_category.name == "Photos" }.should be_true
283
+ end
284
+ end
285
+ describe "video feeds" do
286
+ before do
287
+ @feeds = Service.build_video_feeds(@terms, @user.id)
288
+ end
289
+ it "should only create video feeds" do
290
+ assert @feeds.length > 0
291
+ @feeds.all? { |feed| feed.service.service_category.name == "Videos" }.should be_true
292
+ end
293
+ end
294
+ describe "bookmark feeds" do
295
+ before do
296
+ @feeds = Service.build_bookmark_feeds(@terms, @user.id)
297
+ end
298
+ it "should only create bookmark feeds" do
299
+ assert @feeds.length > 0
300
+ @feeds.all? { |feed| feed.service.service_category.name == "Bookmarks" }.should be_true
301
+ end
302
+ end
303
+ describe "music feeds" do
304
+ before do
305
+ build_music_service
306
+ @feeds = Service.build_music_feeds(@terms, @user.id, nil, true) # We build the music service above so we have to force a cache refresh
307
+ end
308
+ it "should only create music feeds" do
309
+ assert @feeds.length > 0
310
+ @feeds.all? { |feed| feed.service.service_category.name == "Music" }.should be_true
311
+ end
312
+ end
313
+ describe "news feeds" do
314
+ before do
315
+ @feeds = Service.build_news_feeds(@terms, @user.id, nil, true) # We build the news service above so we have to force a cache refresh
316
+ end
317
+ it "should only create news feeds" do
318
+ assert @feeds.length > 0
319
+ @feeds.all? { |feed| feed.service.service_category.name == "News" }.should be_true
320
+ end
321
+ end
322
+ describe "blog feeds" do
323
+ before do
324
+ @feeds = Service.build_blog_feeds(@terms, @user.id, nil, true) # We build the blog service above so we have to force a cache refresh
325
+ end
326
+ it "should only create blog feeds" do
327
+ assert @feeds.length > 0
328
+ @feeds.all? { |feed| feed.service.service_category.name == "Blogging" }.should be_true
329
+ end
330
+ end
331
+ describe "search feeds" do
332
+ before do
333
+ @feeds = Service.build_search_feeds(@terms, @user.id, nil, true) # We build the search service above so we have to force a cache refresh
334
+ end
335
+ it "should only create search feeds" do
336
+ assert @feeds.length > 0
337
+ @feeds.all? { |feed| feed.service.service_category.name == "Search" }.should be_true
338
+ end
339
+ end
340
+ end
341
+
342
+ describe "service types" do
343
+ before do
344
+ build_music_service
345
+ end
346
+ it "should get photo services" do
347
+ assert Service.get_photo_tag_services(true).length > 0
348
+ Service.get_photo_tag_services.all? { |service| service.service_category.name == "Photos" }.should be_true
349
+ end
350
+ it "should get video services" do
351
+ assert Service.get_video_tag_services(true).length > 0
352
+ Service.get_video_tag_services.all? { |service| service.service_category.name == "Videos" }.should be_true
353
+ end
354
+ it "should get bookmark services" do
355
+ assert Service.get_bookmark_tag_services(true).length > 0
356
+ Service.get_bookmark_tag_services.all? { |service| service.service_category.name == "Bookmarks" }.should be_true
357
+ end
358
+ it "should get music services" do
359
+ assert Service.get_music_tag_services(true).length > 0
360
+ Service.get_music_tag_services.all? { |service| service.service_category.name == "Music" }.should be_true
361
+ end
362
+ it "should get news services" do
363
+ assert Service.get_news_tag_services(true).length > 0
364
+ Service.get_news_tag_services.all? { |service| service.service_category.name == "News" }.should be_true
365
+ end
366
+ it "should get blog services" do
367
+ assert Service.get_blog_tag_services(true).length > 0
368
+ Service.get_blog_tag_services.all? { |service| service.service_category.name == "Blogging" }.should be_true
369
+ end
370
+ it "should get search services" do
371
+ assert Service.get_search_tag_services(true).length > 0
372
+ Service.get_search_tag_services.all? { |service| service.service_category.name == "Search" }.should be_true
373
+ end
374
+ it "should get general services" do
375
+ assert Service.get_general_tag_services(true).length > 0
376
+ Service.get_general_tag_services.any? { |service| service.service_category.name == "Photos" }.should_not be_true
377
+ Service.get_general_tag_services.any? { |service| service.service_category.name == "Videos" }.should_not be_true
378
+ Service.get_general_tag_services.any? { |service| service.service_category.name == "Bookmarks" }.should_not be_true
379
+ Service.get_general_tag_services.any? { |service| service.service_category.name == "Music" }.should_not be_true
380
+ end
381
+ end
382
+
383
+ end
@@ -13,20 +13,17 @@
13
13
  # entry_id :integer(4)
14
14
  #
15
15
 
16
- require File.dirname(__FILE__) + '/../test_helper'
16
+ require File.dirname(__FILE__) + '/../spec_helper'
17
17
 
18
- class ShareTest < ActiveSupport::TestCase
18
+ describe Share do
19
19
 
20
- context "share instance" do
21
- setup do
22
- @share = Factory(:share)
20
+ describe "share instance" do
21
+ before do
22
+ @share = Factory(:service_share)
23
23
  end
24
-
25
- subject { @share }
26
-
27
- should_belong_to :entry
28
- should "return entry for discover_attach_to" do
29
- assert_equal @share.entry, @share.discover_attach_to
24
+ it { should belong_to :entry }
25
+ it "should return entry for discover_attach_to" do
26
+ @share.discover_attach_to.should == @share.entry
30
27
  end
31
28
  end
32
29
 
@@ -9,13 +9,13 @@
9
9
  # grain_size :string(255) default("all")
10
10
  #
11
11
 
12
- require File.dirname(__FILE__) + '/../test_helper'
12
+ require File.dirname(__FILE__) + '/../spec_helper'
13
13
 
14
14
  # Used to test muck_content_translation
15
- class TagCloudTest < ActiveSupport::TestCase
15
+ describe TagCloud do
16
16
 
17
- context "A tag cloud instance" do
18
- should "get cached tag cloud" do
17
+ describe "A tag cloud instance" do
18
+ it "should get cached tag cloud" do
19
19
  #self.language_tags language_id = 38, grain_size = 'all', filter = ''
20
20
  end
21
21
  end
@@ -27,21 +27,19 @@
27
27
  # updated_at :datetime
28
28
  #
29
29
 
30
- require File.dirname(__FILE__) + '/../test_helper'
30
+ require File.dirname(__FILE__) + '/../spec_helper'
31
31
 
32
- class UserTest < ActiveSupport::TestCase
33
- context "users" do
34
- setup do
32
+ describe User do
33
+ describe "users" do
34
+ before do
35
35
  @user = Factory(:user)
36
36
  end
37
37
 
38
- subject { @user }
39
-
40
- should_have_many :feed_parents
41
- should_have_many :aggregations
42
- should_have_many :feeds
43
- should_have_many :own_feeds
44
- should_have_many :identity_feeds
38
+ it { should have_many :feed_parents }
39
+ it { should have_many :aggregations }
40
+ it { should have_many :feeds }
41
+ it { should have_many :own_feeds }
42
+ it { should have_many :identity_feeds }
45
43
 
46
44
  end
47
45
  end