wagn 1.13.0 → 1.14.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (459) hide show
  1. checksums.yaml +4 -4
  2. data/Guardfile +3 -2
  3. data/VERSION +1 -1
  4. data/app/controllers/card_controller.rb +33 -38
  5. data/config/routes.rb +2 -2
  6. data/config/version.txt +1 -1
  7. data/db/bootstrap/card_actions.yml +3543 -0
  8. data/db/bootstrap/card_acts.yml +7 -0
  9. data/db/bootstrap/card_changes.yml +9150 -0
  10. data/db/bootstrap/card_references.yml +666 -344
  11. data/db/bootstrap/cards.yml +3256 -1702
  12. data/db/migrate/20140822073704_create_new_revision_tables.rb +43 -0
  13. data/db/migrate/20141001105348_move_revisions_to_actions.rb +62 -0
  14. data/db/migrate_cards/20130411191151_renaming_for_menu.rb +42 -45
  15. data/db/migrate_cards/20130411211600_delete_old_related_tab_cards.rb +13 -16
  16. data/db/migrate_cards/20130419215612_import_help_text.rb +7 -10
  17. data/db/migrate_cards/20130823192433_add_style_cards.rb +77 -81
  18. data/db/migrate_cards/20130910183318_move_styles_to_content.rb +4 -7
  19. data/db/migrate_cards/20130920214038_jsonize_tinymce.rb +9 -12
  20. data/db/migrate_cards/20130920291703_update_stylesheets.rb +10 -13
  21. data/db/migrate_cards/20130927191728_account_events.rb +15 -18
  22. data/db/migrate_cards/20131016172445_common_css_patch.rb +5 -8
  23. data/db/migrate_cards/20140110193325_reset_account_request_type.rb +4 -7
  24. data/db/migrate_cards/20140307231621_user_data_to_cards.rb +50 -53
  25. data/db/migrate_cards/20140317035504_account_requests_to_signups.rb +39 -42
  26. data/db/migrate_cards/20140512155840_add_script_cards.rb +56 -59
  27. data/db/migrate_cards/20140629222005_add_email_cards.rb +168 -0
  28. data/db/migrate_cards/20140725180118_config_card_updates.rb +4 -7
  29. data/db/migrate_cards/data/mailer/follower_notification_email.html +9 -0
  30. data/db/migrate_cards/data/mailer/follower_notification_email.txt +11 -0
  31. data/db/migrate_cards/data/mailer/mail_config.json +22 -0
  32. data/db/migrate_cards/data/mailer/password_reset_email.html +10 -0
  33. data/db/migrate_cards/data/mailer/password_reset_email.txt +11 -0
  34. data/db/migrate_cards/data/mailer/signup_alert_email.html +7 -0
  35. data/db/migrate_cards/data/mailer/signup_alert_email.txt +5 -0
  36. data/db/migrate_cards/data/mailer/verification_email.html +9 -0
  37. data/db/migrate_cards/data/mailer/verification_email.txt +8 -0
  38. data/db/schema.rb +31 -1
  39. data/features/conflict.feature +39 -0
  40. data/features/flexmail.feature +54 -54
  41. data/features/notifications.feature +4 -2
  42. data/features/reset_password.feature +1 -1
  43. data/features/step_definitions/wagn_steps.rb +20 -2
  44. data/features/step_definitions/window_steps.rb +23 -0
  45. data/features/support/env.rb +1 -0
  46. data/features/update_includers.feature +16 -10
  47. data/features/watch.feature +2 -2
  48. data/lib/card.rb +11 -10
  49. data/lib/card/act.rb +63 -0
  50. data/lib/card/action.rb +194 -0
  51. data/lib/card/change.rb +29 -0
  52. data/lib/card/content.rb +1 -1
  53. data/lib/card/diff.rb +229 -276
  54. data/lib/card/env.rb +4 -3
  55. data/lib/card/format.rb +2 -5
  56. data/lib/card/generators/card_migration/USAGE +15 -3
  57. data/lib/card/generators/card_migration/card_migration_generator.rb +22 -2
  58. data/lib/card/generators/card_migration/templates/card_migration.erb +4 -5
  59. data/lib/card/generators/format/USAGE +2 -2
  60. data/lib/card/generators/format/format_generator.rb +2 -2
  61. data/lib/card/generators/set/USAGE +2 -2
  62. data/lib/card/mailer.rb +21 -100
  63. data/lib/card/name.rb +4 -3
  64. data/lib/card/query.rb +2 -2
  65. data/lib/card/query/card_spec.rb +20 -30
  66. data/lib/card/query/value_spec.rb +2 -3
  67. data/lib/card/set.rb +3 -0
  68. data/lib/wagn/all.rb +6 -0
  69. data/lib/wagn/application.rb +16 -6
  70. data/lib/wagn/commands.rb +87 -27
  71. data/lib/wagn/config/environments/development.rb +17 -0
  72. data/lib/wagn/config/environments/test.rb +14 -1
  73. data/lib/wagn/config/initializers/airbrake.rb +1 -1
  74. data/lib/wagn/generators/wagn/templates/Gemfile +27 -9
  75. data/lib/wagn/generators/wagn/templates/config/application.rb +12 -3
  76. data/lib/wagn/generators/wagn/templates/simplecov +5 -0
  77. data/lib/wagn/generators/wagn/templates/spec/spec_helper.rb +1 -0
  78. data/lib/wagn/generators/wagn/wagn_generator.rb +75 -45
  79. data/lib/wagn/location.rb +9 -0
  80. data/lib/wagn/migration.rb +96 -0
  81. data/lib/wagn/mods_spec_helper.rb +16 -8
  82. data/lib/wagn/simplecov_helper.rb +61 -0
  83. data/lib/wagn/{wagn_spec_helper.rb → spec_helper.rb} +11 -3
  84. data/lib/wagn/tasks/test.rake +1 -1
  85. data/lib/wagn/tasks/wagn.rake +100 -34
  86. data/lib/wagn/version.rb +7 -2
  87. data/mod/{core → 01_core}/chunk/include.rb +0 -0
  88. data/mod/{core → 01_core}/chunk/link.rb +0 -0
  89. data/mod/{core → 01_core}/chunk/literal.rb +0 -0
  90. data/mod/{core → 01_core}/chunk/reference.rb +15 -3
  91. data/mod/{core → 01_core}/chunk/uri.rb +0 -0
  92. data/mod/{core → 01_core}/format/data_format.rb +0 -0
  93. data/mod/{core → 01_core}/format/html_format.rb +5 -2
  94. data/mod/{core → 01_core}/format/text_format.rb +0 -0
  95. data/mod/{core → 01_core}/layout/blank.html +0 -0
  96. data/mod/{core → 01_core}/layout/default.html +0 -0
  97. data/mod/{core → 01_core}/layout/noside.html +0 -0
  98. data/mod/{core → 01_core}/layout/pre.html +0 -0
  99. data/mod/{core → 01_core}/layout/simple.html +0 -0
  100. data/mod/{core → 01_core}/set/all/active_card.rb +0 -0
  101. data/mod/{core → 01_core}/set/all/collection.rb +33 -5
  102. data/mod/01_core/set/all/content.rb +144 -0
  103. data/mod/01_core/set/all/erb.rb +11 -0
  104. data/mod/{core → 01_core}/set/all/fetch.rb +8 -1
  105. data/mod/01_core/set/all/haml.rb +7 -0
  106. data/mod/{core → 01_core}/set/all/initialize.rb +4 -2
  107. data/mod/{core → 01_core}/set/all/name.rb +2 -3
  108. data/mod/01_core/set/all/notify.rb +215 -0
  109. data/mod/{core → 01_core}/set/all/pattern.rb +0 -0
  110. data/mod/{core → 01_core}/set/all/permissions.rb +1 -1
  111. data/mod/{core → 01_core}/set/all/phases.rb +24 -8
  112. data/mod/{core → 01_core}/set/all/references.rb +2 -2
  113. data/mod/{core → 01_core}/set/all/rules.rb +2 -2
  114. data/mod/{core → 01_core}/set/all/states.rb +1 -1
  115. data/mod/{core → 01_core}/set/all/templating.rb +4 -4
  116. data/mod/{core → 01_core}/set/all/tracked_attributes.rb +15 -64
  117. data/mod/{core → 01_core}/set/all/trash.rb +6 -5
  118. data/mod/{core → 01_core}/set/all/type.rb +0 -0
  119. data/mod/{core → 01_core}/set/all/utils.rb +1 -1
  120. data/mod/{core → 01_core}/set_pattern/01_all.rb +0 -0
  121. data/mod/{core → 01_core}/set_pattern/02_all_plus.rb +0 -0
  122. data/mod/{core → 01_core}/set_pattern/03_type.rb +0 -0
  123. data/mod/{core → 01_core}/set_pattern/04_star.rb +0 -0
  124. data/mod/{core → 01_core}/set_pattern/05_rstar.rb +0 -0
  125. data/mod/{core → 01_core}/set_pattern/06_right.rb +0 -0
  126. data/mod/{core → 01_core}/set_pattern/07_type_plus_right.rb +0 -0
  127. data/mod/{core → 01_core}/set_pattern/08_self.rb +0 -0
  128. data/mod/01_core/spec/chunk/literal_spec.rb +14 -0
  129. data/{spec/mod/core → mod/01_core/spec}/chunk/uri_spec.rb +3 -3
  130. data/{spec/mod/core → mod/01_core/spec}/format/data_format_spec.rb +0 -0
  131. data/{spec/mod/core → mod/01_core/spec}/format/html_format_spec.rb +9 -8
  132. data/{spec/mod/core → mod/01_core/spec}/format/text_format_spec.rb +0 -0
  133. data/{spec/mod/core → mod/01_core/spec}/set/all/active_card_spec.rb +0 -0
  134. data/mod/01_core/spec/set/all/attribute_tracking_spec.rb +21 -0
  135. data/mod/01_core/spec/set/all/collection_spec.rb +65 -0
  136. data/mod/01_core/spec/set/all/content_spec.rb +15 -0
  137. data/{spec/mod/core → mod/01_core/spec}/set/all/fetch_spec.rb +70 -68
  138. data/{spec/mod/core → mod/01_core/spec}/set/all/initialize_spec.rb +12 -12
  139. data/{spec/mod/core → mod/01_core/spec}/set/all/name_spec.rb +7 -7
  140. data/mod/01_core/spec/set/all/notify_spec.rb +199 -0
  141. data/{spec/mod/core → mod/01_core/spec}/set/all/pattern_spec.rb +16 -16
  142. data/{spec/mod/core → mod/01_core/spec}/set/all/permissions_spec.rb +62 -62
  143. data/{spec/mod/core → mod/01_core/spec}/set/all/phases_spec.rb +0 -0
  144. data/{spec/mod/core → mod/01_core/spec}/set/all/references_spec.rb +1 -1
  145. data/{spec/mod/core → mod/01_core/spec}/set/all/rules2_spec.rb +57 -57
  146. data/mod/01_core/spec/set/all/rules_spec.rb +81 -0
  147. data/{spec/mod/core → mod/01_core/spec}/set/all/states_spec.rb +0 -0
  148. data/{spec/mod/core → mod/01_core/spec}/set/all/templating_spec.rb +16 -12
  149. data/{spec/mod/core → mod/01_core/spec}/set/all/tracked_attributes_spec.rb +24 -22
  150. data/{spec/mod/core → mod/01_core/spec}/set/all/trash_spec.rb +2 -2
  151. data/{spec/mod/core → mod/01_core/spec}/set/all/type_spec.rb +13 -13
  152. data/{spec/mod/core → mod/01_core/spec}/set/all/utils_spec.rb +0 -0
  153. data/mod/{core → 02_basic_types}/set/type/plain_text.rb +0 -0
  154. data/mod/{standard → 02_basic_types}/set/type/pointer.rb +21 -8
  155. data/{spec/mod/standard/set/type → mod/02_basic_types/spec/set}/plain_text_spec.rb +0 -0
  156. data/{spec/mod/standard/set/type → mod/02_basic_types/spec/set}/pointer_spec.rb +22 -9
  157. data/mod/{standard → 03_machines}/lib/card/machine.rb +3 -2
  158. data/mod/{standard → 03_machines}/lib/card/machine_input.rb +1 -1
  159. data/mod/{standard → 03_machines}/lib/javascript/html5shiv-printshiv.js +0 -0
  160. data/mod/{standard → 03_machines}/lib/javascript/jquery-ui.js +0 -0
  161. data/mod/{standard → 03_machines}/lib/javascript/jquery.autosize.js +0 -0
  162. data/mod/{standard → 03_machines}/lib/javascript/jquery.fileupload.js +0 -0
  163. data/mod/{standard → 03_machines}/lib/javascript/jquery.iframe-transport.js +0 -0
  164. data/mod/{standard → 03_machines}/lib/javascript/jquery.js +0 -0
  165. data/mod/{standard → 03_machines}/lib/javascript/jquery.ui.autocomplete.html.js +0 -0
  166. data/mod/{standard → 03_machines}/lib/javascript/jquery_ujs.js +0 -0
  167. data/mod/{standard → 03_machines}/lib/javascript/jquerymobile.js +0 -0
  168. data/mod/{standard → 03_machines}/lib/javascript/tinymce.js +0 -0
  169. data/mod/{standard → 03_machines}/lib/javascript/wagn.js.coffee +17 -9
  170. data/mod/{standard → 03_machines}/lib/javascript/wagn_menu.js +0 -0
  171. data/mod/{standard → 03_machines}/lib/javascript/wagn_mod.js.coffee +1 -1
  172. data/mod/{standard → 03_machines}/lib/stylesheets/functional.scss +1 -1
  173. data/mod/{standard → 03_machines}/lib/stylesheets/jquery-ui-smoothness.css +0 -0
  174. data/mod/{standard → 03_machines}/lib/stylesheets/standard.scss +126 -21
  175. data/mod/{standard → 03_machines}/set/right/machine_output.rb +3 -2
  176. data/mod/{standard → 03_machines}/set/self/script_card_menu.rb +1 -1
  177. data/mod/{standard → 03_machines}/set/self/script_html5shiv_printshiv.rb +1 -1
  178. data/mod/{standard → 03_machines}/set/self/script_jquery.rb +1 -1
  179. data/mod/{standard → 03_machines}/set/self/script_jquery_helper.rb +1 -1
  180. data/mod/{standard → 03_machines}/set/self/script_slot.rb +1 -1
  181. data/mod/{standard → 03_machines}/set/self/script_tinymce.rb +1 -1
  182. data/mod/{standard → 03_machines}/set/self/style_functional.rb +1 -1
  183. data/mod/{standard → 03_machines}/set/self/style_jquery_ui_smoothness.rb +1 -1
  184. data/mod/{standard → 03_machines}/set/self/style_standard.rb +1 -1
  185. data/mod/{standard → 03_machines}/set/type/coffee_script.rb +0 -0
  186. data/mod/{standard → 03_machines}/set/type/css.rb +0 -0
  187. data/mod/{standard → 03_machines}/set/type/java_script.rb +0 -0
  188. data/mod/{standard → 03_machines}/set/type/scss.rb +0 -0
  189. data/mod/{standard → 03_machines}/set/type/skin.rb +0 -0
  190. data/{spec/mod/standard → mod/03_machines/spec}/lib/machine_input_spec.rb +0 -0
  191. data/{spec/mod/standard → mod/03_machines/spec}/lib/machine_spec.rb +4 -4
  192. data/{spec/mod/standard → mod/03_machines/spec}/set/right/machine_output_spec.rb +0 -0
  193. data/{spec/mod/standard → mod/03_machines/spec}/set/self/style_functional_spec.rb +0 -0
  194. data/{spec/mod/standard → mod/03_machines/spec}/set/self/style_jquery_ui_smoothness_spec.rb +0 -0
  195. data/{spec/mod/standard → mod/03_machines/spec}/set/self/style_standard_spec.rb +0 -0
  196. data/{spec/mod/standard → mod/03_machines/spec}/set/type/coffeescript_spec.rb +0 -0
  197. data/{spec/mod/standard → mod/03_machines/spec}/set/type/css_spec.rb +0 -0
  198. data/{spec/mod/standard → mod/03_machines/spec}/set/type/javascript_spec.rb +0 -0
  199. data/{spec/mod/standard → mod/03_machines/spec}/set/type/scss_spec.rb +1 -1
  200. data/{spec/mod/standard → mod/03_machines/spec}/set/type/skin_spec.rb +22 -0
  201. data/mod/04_settings/lib/card/setting.rb +57 -0
  202. data/mod/{core/set/right/structure.rb → 04_settings/set/right/add_help.rb} +0 -2
  203. data/mod/{standard → 04_settings}/set/right/comment.rb +0 -1
  204. data/mod/{standard → 04_settings}/set/right/create.rb +0 -1
  205. data/mod/04_settings/set/right/default.rb +3 -0
  206. data/mod/{standard → 04_settings}/set/right/delete.rb +2 -0
  207. data/mod/04_settings/set/right/help.rb +3 -0
  208. data/mod/{standard → 04_settings}/set/right/read.rb +0 -0
  209. data/mod/{standard → 04_settings}/set/right/script.rb +0 -0
  210. data/mod/04_settings/set/right/structure.rb +4 -0
  211. data/mod/{standard → 04_settings}/set/right/style.rb +0 -0
  212. data/mod/{standard → 04_settings}/set/right/update.rb +0 -0
  213. data/mod/04_settings/set/self/accountable.rb +2 -0
  214. data/mod/04_settings/set/self/add_help.rb +2 -0
  215. data/mod/04_settings/set/self/autoname.rb +2 -0
  216. data/mod/04_settings/set/self/captcha.rb +2 -0
  217. data/mod/04_settings/set/self/comment.rb +2 -0
  218. data/mod/04_settings/set/self/create.rb +2 -0
  219. data/mod/04_settings/set/self/default.rb +2 -0
  220. data/mod/04_settings/set/self/delete.rb +2 -0
  221. data/mod/04_settings/set/self/help.rb +2 -0
  222. data/mod/04_settings/set/self/input.rb +2 -0
  223. data/mod/04_settings/set/self/layout.rb +2 -0
  224. data/mod/04_settings/set/self/on_create.rb +2 -0
  225. data/mod/04_settings/set/self/on_delete.rb +2 -0
  226. data/mod/04_settings/set/self/on_update.rb +2 -0
  227. data/mod/04_settings/set/self/options.rb +2 -0
  228. data/mod/04_settings/set/self/options_label.rb +2 -0
  229. data/mod/04_settings/set/self/read.rb +2 -0
  230. data/mod/04_settings/set/self/script.rb +2 -0
  231. data/mod/04_settings/set/self/structure.rb +2 -0
  232. data/mod/04_settings/set/self/style.rb +2 -0
  233. data/mod/04_settings/set/self/table_of_contents.rb +2 -0
  234. data/mod/04_settings/set/self/thanks.rb +2 -0
  235. data/mod/04_settings/set/self/update.rb +2 -0
  236. data/mod/{standard → 04_settings}/set/type/setting.rb +8 -14
  237. data/{spec/mod/standard → mod/04_settings/spec}/set/right/add_help_spec.rb +0 -0
  238. data/{spec/mod/standard → mod/04_settings/spec}/set/right/comment_spec.rb +5 -5
  239. data/{spec/mod/standard → mod/04_settings/spec}/set/right/create_spec.rb +0 -0
  240. data/{spec/mod/standard → mod/04_settings/spec}/set/right/default_spec.rb +0 -0
  241. data/{spec/mod/standard → mod/04_settings/spec}/set/right/delete_spec.rb +0 -0
  242. data/{spec/mod/standard → mod/04_settings/spec}/set/right/help_spec.rb +0 -0
  243. data/{spec/mod/standard → mod/04_settings/spec}/set/right/read_spec.rb +0 -0
  244. data/{spec/mod/standard → mod/04_settings/spec}/set/right/script_spec.rb +0 -0
  245. data/{spec/mod/standard → mod/04_settings/spec}/set/right/structure_spec.rb +4 -2
  246. data/{spec/mod/standard → mod/04_settings/spec}/set/right/style_spec.rb +1 -1
  247. data/{spec/mod/standard → mod/04_settings/spec}/set/right/update_spec.rb +0 -0
  248. data/{spec/mod/standard → mod/04_settings/spec}/set/type/setting_spec.rb +0 -0
  249. data/mod/{standard → 05_standard}/file/103/icon-6566.ico +0 -0
  250. data/mod/{standard → 05_standard}/file/103/large-6566.ico +0 -0
  251. data/mod/{standard → 05_standard}/file/103/medium-6566.ico +0 -0
  252. data/mod/{standard → 05_standard}/file/103/original-6566.ico +0 -0
  253. data/mod/{standard → 05_standard}/file/103/small-6566.ico +0 -0
  254. data/mod/{standard → 05_standard}/file/79/icon-6556.png +0 -0
  255. data/mod/{standard → 05_standard}/file/79/large-6556.png +0 -0
  256. data/mod/{standard → 05_standard}/file/79/medium-6556.png +0 -0
  257. data/mod/{standard → 05_standard}/file/79/original-6556.png +0 -0
  258. data/mod/{standard → 05_standard}/file/79/small-6556.png +0 -0
  259. data/mod/{standard → 05_standard}/file/790/icon-6419.png +0 -0
  260. data/mod/{standard → 05_standard}/file/790/large-6419.png +0 -0
  261. data/mod/{standard → 05_standard}/file/790/medium-6419.png +0 -0
  262. data/mod/{standard → 05_standard}/file/790/original-6419.png +0 -0
  263. data/mod/{standard → 05_standard}/file/790/small-6419.png +0 -0
  264. data/mod/{standard → 05_standard}/format/css_format.rb +0 -0
  265. data/mod/{standard → 05_standard}/format/csv_format.rb +0 -0
  266. data/mod/{standard → 05_standard}/format/file_format.rb +0 -0
  267. data/mod/{standard → 05_standard}/format/js_format.rb +0 -0
  268. data/mod/{standard → 05_standard}/format/json_format.rb +0 -0
  269. data/mod/{standard → 05_standard}/format/rss_format.rb +0 -0
  270. data/mod/{standard → 05_standard}/format/xml_format.rb +0 -0
  271. data/mod/{standard → 05_standard}/set/all/account.rb +0 -0
  272. data/mod/{standard → 05_standard}/set/all/all_css.rb +0 -0
  273. data/mod/{standard → 05_standard}/set/all/all_csv.rb +1 -1
  274. data/mod/05_standard/set/all/all_js.rb +7 -0
  275. data/mod/{standard → 05_standard}/set/all/attach.rb +33 -33
  276. data/mod/{standard → 05_standard}/set/all/base.rb +0 -0
  277. data/mod/{standard → 05_standard}/set/all/comment.rb +0 -0
  278. data/mod/{standard → 05_standard}/set/all/event_viz.rb +0 -0
  279. data/mod/{standard → 05_standard}/set/all/file.rb +0 -0
  280. data/mod/05_standard/set/all/follow.rb +51 -0
  281. data/mod/05_standard/set/all/history.rb +294 -0
  282. data/mod/{standard → 05_standard}/set/all/json.rb +2 -1
  283. data/mod/05_standard/set/all/observer.rb +27 -0
  284. data/mod/{standard → 05_standard}/set/all/rich_html.rb +21 -28
  285. data/mod/{standard → 05_standard}/set/all/rss.rb +0 -0
  286. data/mod/{standard → 05_standard}/set/all/text.rb +0 -0
  287. data/mod/{standard → 05_standard}/set/right/account.rb +53 -7
  288. data/mod/{standard → 05_standard}/set/right/email.rb +0 -1
  289. data/mod/{standard → 05_standard}/set/right/password.rb +1 -1
  290. data/mod/{standard → 05_standard}/set/right/salt.rb +0 -0
  291. data/mod/{standard → 05_standard}/set/right/stats.rb +1 -1
  292. data/mod/{standard → 05_standard}/set/right/status.rb +0 -0
  293. data/mod/{standard → 05_standard}/set/right/token.rb +0 -0
  294. data/mod/{standard → 05_standard}/set/right/when_created.rb +0 -0
  295. data/mod/{standard → 05_standard}/set/right/when_last_edited.rb +0 -0
  296. data/mod/{standard → 05_standard}/set/rstar/rules.rb +8 -7
  297. data/mod/{standard → 05_standard}/set/self/account_links.rb +0 -0
  298. data/mod/{standard → 05_standard}/set/self/alerts.rb +0 -0
  299. data/mod/{standard → 05_standard}/set/self/all.rb +1 -1
  300. data/mod/{standard → 05_standard}/set/self/foot.rb +0 -0
  301. data/mod/{standard → 05_standard}/set/self/head.rb +21 -6
  302. data/mod/{standard → 05_standard}/set/self/navbox.rb +0 -0
  303. data/mod/{standard → 05_standard}/set/self/now.rb +0 -0
  304. data/mod/{standard → 05_standard}/set/self/recent.rb +0 -0
  305. data/mod/{standard → 05_standard}/set/self/search.rb +0 -0
  306. data/mod/{standard → 05_standard}/set/self/signin.rb +1 -1
  307. data/mod/{standard → 05_standard}/set/self/stats.rb +2 -2
  308. data/mod/{standard → 05_standard}/set/self/version.rb +0 -0
  309. data/mod/{standard → 05_standard}/set/type/basic.rb +0 -0
  310. data/mod/{standard → 05_standard}/set/type/cardtype.rb +4 -6
  311. data/mod/{standard → 05_standard}/set/type/date.rb +0 -0
  312. data/mod/{standard → 05_standard}/set/type/file.rb +0 -0
  313. data/mod/{standard → 05_standard}/set/type/html.rb +0 -0
  314. data/mod/{standard → 05_standard}/set/type/image.rb +7 -6
  315. data/mod/{standard → 05_standard}/set/type/layout_type.rb +0 -0
  316. data/mod/{standard → 05_standard}/set/type/number.rb +0 -0
  317. data/mod/{standard → 05_standard}/set/type/phrase.rb +0 -0
  318. data/mod/{standard → 05_standard}/set/type/search_type.rb +6 -3
  319. data/mod/{standard → 05_standard}/set/type/set.rb +16 -9
  320. data/mod/{standard → 05_standard}/set/type/signup.rb +16 -17
  321. data/mod/{standard → 05_standard}/set/type/toggle.rb +0 -0
  322. data/mod/{standard → 05_standard}/set/type/user.rb +10 -11
  323. data/{spec/mod/standard → mod/05_standard/spec}/chunk/include_spec.rb +39 -39
  324. data/mod/05_standard/spec/chunk/link_spec.rb +61 -0
  325. data/{spec/mod/standard → mod/05_standard/spec}/format/css_format_spec.rb +0 -0
  326. data/{spec/mod/standard → mod/05_standard/spec}/format/csv_format_spec.rb +0 -0
  327. data/{spec/mod/standard → mod/05_standard/spec}/format/email_html_format_spec.rb +0 -0
  328. data/{spec/mod/standard → mod/05_standard/spec}/format/file_format_spec.rb +0 -0
  329. data/{spec/mod/standard → mod/05_standard/spec}/format/js_format_spec.rb +0 -0
  330. data/{spec/mod/standard → mod/05_standard/spec}/format/json_format_spec.rb +0 -0
  331. data/{spec/mod/standard → mod/05_standard/spec}/format/rss_format_spec.rb +0 -0
  332. data/{spec/mod/standard → mod/05_standard/spec}/format/xml_format_spec.rb +0 -0
  333. data/{spec/mod/standard → mod/05_standard/spec}/set/all/account_spec.rb +16 -16
  334. data/{spec/mod/standard → mod/05_standard/spec}/set/all/all_css_spec.rb +1 -1
  335. data/{spec/mod/standard → mod/05_standard/spec}/set/all/all_csv_spec.rb +1 -1
  336. data/{spec/mod/standard → mod/05_standard/spec}/set/all/attach_spec.rb +1 -1
  337. data/{spec/mod/standard → mod/05_standard/spec}/set/all/base_spec.rb +10 -10
  338. data/{spec/mod/standard → mod/05_standard/spec}/set/all/comment_spec.rb +0 -0
  339. data/mod/05_standard/spec/set/all/email_html_spec.rb +15 -0
  340. data/{spec/mod/standard → mod/05_standard/spec}/set/all/event_viz_spec.rb +1 -1
  341. data/{spec/mod/standard → mod/05_standard/spec}/set/all/file_spec.rb +0 -0
  342. data/mod/05_standard/spec/set/all/follow_spec.rb +83 -0
  343. data/mod/05_standard/spec/set/all/history_spec.rb +161 -0
  344. data/{spec/mod/standard → mod/05_standard/spec}/set/all/json_spec.rb +4 -4
  345. data/mod/05_standard/spec/set/all/observer_spec.rb +74 -0
  346. data/{spec/mod/standard → mod/05_standard/spec}/set/all/rich_html_spec.rb +14 -14
  347. data/{spec/mod/standard → mod/05_standard/spec}/set/all/rss_spec.rb +1 -1
  348. data/{spec/mod/standard → mod/05_standard/spec}/set/all/text_spec.rb +0 -0
  349. data/mod/05_standard/spec/set/right/account_spec.rb +162 -0
  350. data/{spec/mod/standard → mod/05_standard/spec}/set/right/email_spec.rb +7 -7
  351. data/{spec/mod/standard → mod/05_standard/spec}/set/right/password_spec.rb +7 -7
  352. data/{spec/mod/standard → mod/05_standard/spec}/set/right/salt_spec.rb +0 -0
  353. data/{spec/mod/standard → mod/05_standard/spec}/set/right/stats_spec.rb +0 -0
  354. data/{spec/mod/standard → mod/05_standard/spec}/set/right/status_spec.rb +0 -0
  355. data/{spec/mod/standard → mod/05_standard/spec}/set/right/token_spec.rb +0 -0
  356. data/{spec/mod/standard → mod/05_standard/spec}/set/right/when_created_spec.rb +1 -1
  357. data/{spec/mod/standard → mod/05_standard/spec}/set/right/when_last_edited_spec.rb +1 -1
  358. data/{spec/mod/standard → mod/05_standard/spec}/set/rstar/rules_spec.rb +4 -4
  359. data/{spec/mod/standard → mod/05_standard/spec}/set/self/account_links_spec.rb +0 -0
  360. data/{spec/mod/standard → mod/05_standard/spec}/set/self/alerts_spec.rb +0 -0
  361. data/{spec/mod/standard → mod/05_standard/spec}/set/self/all_spec.rb +7 -6
  362. data/{spec/mod/standard → mod/05_standard/spec}/set/self/foot_spec.rb +0 -0
  363. data/{spec/mod/standard → mod/05_standard/spec}/set/self/head_spec.rb +0 -0
  364. data/{spec/mod/standard → mod/05_standard/spec}/set/self/navbox_spec.rb +0 -0
  365. data/{spec/mod/standard → mod/05_standard/spec}/set/self/now_spec.rb +1 -1
  366. data/{spec/mod/standard → mod/05_standard/spec}/set/self/recent_spec.rb +0 -0
  367. data/{spec/mod/standard → mod/05_standard/spec}/set/self/search_spec.rb +0 -0
  368. data/{spec/mod/standard → mod/05_standard/spec}/set/self/signin_spec.rb +12 -12
  369. data/{spec/mod/standard → mod/05_standard/spec}/set/self/stats_spec.rb +0 -0
  370. data/{spec/mod/standard → mod/05_standard/spec}/set/self/version_spec.rb +1 -1
  371. data/{spec/mod/standard → mod/05_standard/spec}/set/type/basic_spec.rb +0 -0
  372. data/{spec/mod/standard → mod/05_standard/spec}/set/type/cardtype_spec.rb +0 -0
  373. data/{spec/mod/standard → mod/05_standard/spec}/set/type/date_spec.rb +0 -0
  374. data/mod/05_standard/spec/set/type/email_template_spec.rb +130 -0
  375. data/{spec/mod/standard → mod/05_standard/spec}/set/type/file_spec.rb +0 -0
  376. data/{spec/mod/standard → mod/05_standard/spec}/set/type/html_spec.rb +3 -3
  377. data/{spec/mod/standard → mod/05_standard/spec}/set/type/image_spec.rb +1 -1
  378. data/{spec/mod/standard → mod/05_standard/spec}/set/type/layout_type_spec.rb +1 -1
  379. data/{spec/mod/standard → mod/05_standard/spec}/set/type/number_spec.rb +0 -0
  380. data/{spec/mod/standard → mod/05_standard/spec}/set/type/phrase_spec.rb +0 -0
  381. data/mod/05_standard/spec/set/type/search_type_spec.rb +27 -0
  382. data/mod/05_standard/spec/set/type/set_spec.rb +26 -0
  383. data/mod/05_standard/spec/set/type/signup_spec.rb +209 -0
  384. data/{spec/mod/standard → mod/05_standard/spec}/set/type/toggle_spec.rb +2 -2
  385. data/{spec/mod/standard → mod/05_standard/spec}/set/type/user_spec.rb +0 -0
  386. data/mod/{standard → 06_email}/format/email_html_format.rb +0 -0
  387. data/mod/06_email/format/email_text_format.rb +7 -0
  388. data/mod/06_email/set/all/email_html.rb +9 -0
  389. data/mod/{standard/set/all/email_html.rb → 06_email/set/all/email_text.rb} +2 -1
  390. data/mod/06_email/set/right/bcc.rb +31 -0
  391. data/mod/06_email/set/right/cc.rb +2 -0
  392. data/mod/06_email/set/right/from.rb +2 -0
  393. data/mod/06_email/set/right/html_message.rb +3 -0
  394. data/mod/06_email/set/right/to.rb +2 -0
  395. data/mod/06_email/set/type/email_template.rb +99 -0
  396. data/spec/controllers/card_controller_spec.rb +34 -46
  397. data/spec/lib/card/action_spec.rb +14 -0
  398. data/spec/lib/card/chunk_spec.rb +3 -3
  399. data/spec/lib/card/codename_spec.rb +5 -5
  400. data/spec/lib/card/content_spec.rb +25 -25
  401. data/spec/lib/card/diff_spec.rb +107 -107
  402. data/spec/lib/card/format_spec.rb +11 -11
  403. data/spec/lib/card/loader_spec.rb +35 -29
  404. data/spec/lib/card/name_spec.rb +82 -82
  405. data/spec/lib/card/query_spec.rb +83 -82
  406. data/spec/lib/card/reference_spec.rb +30 -30
  407. data/spec/lib/card/set_pattern_spec.rb +1 -1
  408. data/spec/lib/card/set_spec.rb +86 -82
  409. data/spec/lib/wagn/cache_spec.rb +24 -24
  410. data/spec/mailers/mailer_spec.rb +41 -30
  411. data/spec/models/card/cardtype_spec.rb +19 -19
  412. data/spec/models/card/create_spec.rb +14 -14
  413. data/spec/models/card/trash_spec.rb +37 -36
  414. data/spec/models/card/type_transition_spec.rb +13 -13
  415. data/spec/models/card/validation_spec.rb +6 -6
  416. data/spec/models/card_spec.rb +40 -39
  417. data/spec/spec_helper.rb +37 -11
  418. data/test/fixtures/card_actions.yml +4726 -0
  419. data/test/fixtures/card_acts.yml +589 -0
  420. data/test/fixtures/card_changes.yml +12644 -0
  421. data/test/fixtures/card_references.yml +976 -591
  422. data/test/fixtures/cards.yml +4544 -2781
  423. data/test/seed.rb +14 -13
  424. data/wagn.gemspec +4 -0
  425. metadata +404 -403
  426. data/db/bootstrap/card_revisions.yml +0 -3379
  427. data/lib/card/flexmail.rb +0 -53
  428. data/lib/card/mailer/change_notice.html.erb +0 -32
  429. data/lib/card/mailer/confirmation_email.html.erb +0 -12
  430. data/lib/card/mailer/flexmail.html.erb +0 -6
  431. data/lib/card/mailer/password_reset.html.erb +0 -9
  432. data/lib/card/mailer/signup_alert.html.erb +0 -14
  433. data/lib/card/revision.rb +0 -47
  434. data/lib/wagn/migration_helper.rb +0 -34
  435. data/mod/core/set/all/attribute_tracking.rb +0 -85
  436. data/mod/core/set/all/content.rb +0 -94
  437. data/mod/standard/set/all/flexmail.rb +0 -3
  438. data/mod/standard/set/all/follow.rb +0 -119
  439. data/mod/standard/set/all/history.rb +0 -107
  440. data/mod/standard/set/right/add_help.rb +0 -3
  441. data/mod/standard/set/right/default.rb +0 -3
  442. data/mod/standard/set/right/help.rb +0 -3
  443. data/spec/lib/card/flexmail_spec.rb +0 -209
  444. data/spec/lib/card/revision_spec.rb +0 -30
  445. data/spec/mod/core/chunk/literal_spec.rb +0 -14
  446. data/spec/mod/core/set/all/attribute_tracking_spec.rb +0 -21
  447. data/spec/mod/core/set/all/collection_spec.rb +0 -45
  448. data/spec/mod/core/set/all/content_spec.rb +0 -14
  449. data/spec/mod/core/set/all/rules_spec.rb +0 -98
  450. data/spec/mod/standard/chunk/link_spec.rb +0 -59
  451. data/spec/mod/standard/set/all/email_html_spec.rb +0 -13
  452. data/spec/mod/standard/set/all/flexmail_spec.rb +0 -5
  453. data/spec/mod/standard/set/all/follow_spec.rb +0 -95
  454. data/spec/mod/standard/set/all/history_spec.rb +0 -10
  455. data/spec/mod/standard/set/right/account_spec.rb +0 -90
  456. data/spec/mod/standard/set/type/search_type_spec.rb +0 -27
  457. data/spec/mod/standard/set/type/set_spec.rb +0 -26
  458. data/spec/mod/standard/set/type/signup_spec.rb +0 -169
  459. data/test/fixtures/card_revisions.yml +0 -4560
@@ -1,12 +1,9 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
- class ConfigCardUpdates < ActiveRecord::Migration
4
- include Wagn::MigrationHelper
3
+ class ConfigCardUpdates < Wagn::Migration
5
4
  def up
6
- contentedly do
7
- raw_json = File.read( File.join Wagn.gem_root, 'db/migrate_cards/data/1.13_config_text.json' )
8
- json = JSON.parse raw_json
9
- Card.merge_list json["card"]["value"], :output_file=>"tmp/unmerged_config_text.json", :pristine=>true
10
- end
5
+ raw_json = File.read( File.join Wagn.gem_root, 'db/migrate_cards/data/1.13_config_text.json' )
6
+ json = JSON.parse raw_json
7
+ Card.merge_list json["card"]["value"], :output_file=>"tmp/unmerged_config_text.json", :pristine=>true
11
8
  end
12
9
  end
@@ -0,0 +1,9 @@
1
+ <p>{{_|link}} was just <a href="{{_|url}}?view=history">{{_|last_action}}</a> by {{_user|link}}</p>
2
+
3
+ <blockquote>{{_|list_of_changes}}</blockquote>
4
+
5
+ <p>{{_|subedits}}</p>
6
+
7
+ <p>You received this email because you're following <strong>{{_|followed}}</strong>.</p>
8
+
9
+ <p><em>[[ {{_|unfollow_url}} | Unfollow ]] to stop receiving these emails.</em></p>
@@ -0,0 +1,11 @@
1
+ "{{_|name}}" was just {{_|last_action}} by {{_user|name}}.
2
+
3
+ {{_|list_of_changes}}
4
+
5
+ {{_|subedits}}
6
+
7
+ See the card: {{_|url}}
8
+
9
+ You received this email because you're following "{{_|followed}}".
10
+
11
+ Use this link to unfollow {{_|unfollow_url}}
@@ -0,0 +1,22 @@
1
+ [
2
+ {
3
+ "name" : "verification email",
4
+ "codename" : "verification_email",
5
+ "subject" : "verification link for {{:title|core}}"
6
+ },
7
+ {
8
+ "name" : "password reset email",
9
+ "codename": "password_reset_email",
10
+ "subject" : "reset password for {{:title|core}}"
11
+ },
12
+ {
13
+ "name" : "signup alert email",
14
+ "codename": "signup_alert_email",
15
+ "subject" : "{{_|name}} signed up for {{:title|core}}"
16
+ },
17
+ {
18
+ "name" : "follower notification email",
19
+ "codename": "follower_notification_email",
20
+ "subject" : "{{_user|name}} {{_|last_action}} \"{{_|name}}\""
21
+ }
22
+ ]
@@ -0,0 +1,10 @@
1
+ <div style="text-align:center">
2
+ <h1>Password reset for {{:title|core}}</h1>
3
+
4
+ <p>Someone – you, we hope – asked to reset your password.</p>
5
+
6
+ <p>Please <a href="{{_|reset_password_url}}">follow this link</a> to update your account details.</p>
7
+
8
+ <p><em>Link will remain valid for {{_|reset_password_days}} days.</em></p>
9
+ </div>
10
+
@@ -0,0 +1,11 @@
1
+ ** Password reset for {{:title|core}} **
2
+
3
+ Someone – you, we hope – asked to reset your password. Please follow this link...
4
+
5
+ {{_|reset_password_url}}
6
+
7
+ ...to update your account details.
8
+
9
+
10
+ (Link will remain valid for {{_|reset_password_days}} days.)
11
+
@@ -0,0 +1,7 @@
1
+ <p>
2
+ {{_|name}} ({{+*account+*email|core}})
3
+ has <a href="{{_|url}}">signed up</a>
4
+ on {{:title|core}}.
5
+ </p>
6
+
7
+ <p><em>-- the machines running {{:title|core}}</em></p>
@@ -0,0 +1,5 @@
1
+ {{_|name}} ({{+*account+*email|core}}) has signed up on {{:title|core}}.
2
+
3
+ See {{_|name}}'s card: {{_|url}}
4
+
5
+ -- the machines running {{:title|core}}
@@ -0,0 +1,9 @@
1
+ <div style="text-align:center">
2
+
3
+ <h1>Thank you for signing up with {{*title|core}}!</h1>
4
+
5
+ <p>Please <a href="{{_|verify_url}}">follow this link</a> to verify this email address and activate your account.</p>
6
+
7
+ <p><em>Link will remain valid for {{_|verify_days}} days.</em></p>
8
+
9
+ </div>
@@ -0,0 +1,8 @@
1
+ Thank you for signing up with {{:title|core}}!
2
+
3
+ Please follow the link below to verify this email address and activate your account.
4
+
5
+ {{_|verify_url}}
6
+ (Link will remain valid for {{_|verify_days}} days.)
7
+
8
+
@@ -11,7 +11,36 @@
11
11
  #
12
12
  # It's strongly recommended to check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(:version => 20130411210957) do
14
+ ActiveRecord::Schema.define(:version => 20141001105348) do
15
+
16
+ create_table "card_actions", :force => true do |t|
17
+ t.integer "card_id"
18
+ t.integer "card_act_id"
19
+ t.integer "super_action_id"
20
+ t.integer "action_type"
21
+ t.boolean "draft"
22
+ end
23
+
24
+ add_index "card_actions", ["card_act_id"], :name => "card_act_id_index"
25
+ add_index "card_actions", ["card_id"], :name => "card_id_index"
26
+
27
+ create_table "card_acts", :force => true do |t|
28
+ t.integer "card_id"
29
+ t.integer "actor_id"
30
+ t.datetime "acted_at"
31
+ t.string "ip_address"
32
+ end
33
+
34
+ add_index "card_acts", ["actor_id"], :name => "actor_id_index"
35
+ add_index "card_acts", ["card_id"], :name => "card_id_index"
36
+
37
+ create_table "card_changes", :force => true do |t|
38
+ t.integer "card_action_id"
39
+ t.integer "field"
40
+ t.text "value"
41
+ end
42
+
43
+ add_index "card_changes", ["card_action_id"], :name => "card_action_id_index"
15
44
 
16
45
  create_table "card_references", :force => true do |t|
17
46
  t.integer "referer_id", :default => 0, :null => false
@@ -51,6 +80,7 @@ ActiveRecord::Schema.define(:version => 20130411210957) do
51
80
  t.integer "references_expired"
52
81
  t.boolean "trash", :null => false
53
82
  t.integer "type_id", :null => false
83
+ t.text "db_content"
54
84
  end
55
85
 
56
86
  add_index "cards", ["key"], :name => "cards_key_uniq", :unique => true
@@ -0,0 +1,39 @@
1
+ @javascript
2
+ Feature: Conflict
3
+ When I am editing a card and somebody else changes it at the same time I want to
4
+ get a helpful message to solve the conflict.
5
+
6
+ Background:
7
+ Given I am signed in as Joe Admin
8
+ And I create Phrase card "Duck Soup" with content "Laurel and Hardy"
9
+
10
+ Scenario: Two edits on a card at the same time
11
+ When I edit "Duck Soup" filling in "Stan Hardy"
12
+ And I open a new window for Joe User
13
+ And I edit "Duck Soup" setting content to "Oliver Laurel"
14
+
15
+ # We still have Joe Admin's edit in the first window but we're globally signed in as Joe User.
16
+ # We resign-in as Joe Admin in Joe User's window so that we submit Joe Admin's edit as Joe Admin
17
+ And I am signed out
18
+ And I am signed in as Joe Admin
19
+ And I close window
20
+ And I submit
21
+ Then I should see "Conflict!"
22
+ And I should see "Joe User has also been making changes."
23
+ And I should see "Oliver " in green
24
+ And I should see "Stan" in red
25
+
26
+ Scenario: Two edits on a card at the same time but with the same change
27
+ When I edit "Duck Soup" filling in "Stan Laurel"
28
+ And I open a new window for Joe User
29
+ And I edit "Duck Soup" setting content to "Stan Laurel"
30
+ And I am signed out
31
+ And I wait a sec
32
+ And I am signed in as Joe Admin
33
+ And I close window
34
+ And I submit
35
+ Then I'm not sure what I should see but at the moment I get a exception.
36
+
37
+
38
+
39
+
@@ -1,54 +1,54 @@
1
- Feature: Flexmail
2
- As a Wagneer
3
- I want to be able to set up email configs
4
- So that we can create emailing forms
5
-
6
- Background:
7
- Given I am signed in as Joe Admin
8
- And I create Cardtype card "Testimony"
9
- And I create Pointer card "Testimony+*type+*send" with content "[[Testemailconfig]]"
10
- And I create card "Testimony+*type+*structure" with content
11
- """
12
- {{+name}} {{+email}} {{+Testimony}} {{+recipients}}
13
- """
14
- And I create Search card "search test+*right+*structure" with content "{"type":"User"}"
15
- # And I create Basic card "Testemailconfig"
16
- And I create Search card "Testemailconfig+*to" with content
17
- """
18
- {"referred_to_by":{"left":"_self","right":"recipients"}}
19
- """
20
- And I create Search card "Testemailconfig+*from" with content "{"left":"_self","right":"email"}"
21
- And I create Phrase card "Testemailconfig+*subject" with content "Subjectimus"
22
- # And I create Phrase card "Testemailconfig+*bcc"
23
- And I create Basic card "Testemailconfig+*message" with content
24
- """
25
- Pleistocles, {{_self+name|core}} says: {{_self+Testimony|core}} {{_self+search test|core;item:name}}
26
- buena,
27
- Thaddeus
28
- """
29
-
30
- And I create Phrase card "A+email" with content "argumus@test.com"
31
- And I create Phrase card "B+email" with content "tacitus@test.com"
32
- # FIXME: apparently cucumber or webrat or something can't handle saving
33
- # multiple line entries. Everything I've tried so far has resulted in
34
- # truncation after the first line. which fucking bites.
35
- # so for now I will eunicize our tests and only check for one email delivery.
36
- And I create Pointer card "List1" with content
37
- """
38
- [[A+email]]
39
- [[B+email]]
40
- """
41
- And I am signed in as Joe User
42
-
43
- Scenario: Submitting a new Testimony
44
- Given I go to new Testimony
45
- When I create Testimony card "MoanE" with plusses:
46
- |name|email|Testimony|recipients|
47
- |Lee|lee@user.net|This is outrageous|[[List1]]|
48
- Then "argumus@test.com" should receive 1 email
49
- When "argumus@test.com" opens the email with subject "Subjectimus"
50
- And they should see the email delivered from "lee@user.net"
51
- And they should see "Pleistocles" in the email body
52
- And they should see "Lee" in the email body
53
- And they should see "This is outrageous" in the email body
54
-
1
+ #Feature: Flexmail
2
+ # As a Wagneer
3
+ # I want to be able to set up email configs
4
+ # So that we can create emailing forms
5
+ #
6
+ # Background:
7
+ # Given I am signed in as Joe Admin
8
+ # And I create Cardtype card "Testimony"
9
+ # And I create Pointer card "Testimony+*type+*send" with content "[[Testemailconfig]]"
10
+ # And I create card "Testimony+*type+*structure" with content
11
+ # """
12
+ # {{+name}} {{+email}} {{+Testimony}} {{+recipients}}
13
+ # """
14
+ # And I create Search card "search test+*right+*structure" with content "{"type":"User"}"
15
+ ## And I create Basic card "Testemailconfig"
16
+ # And I create Search card "Testemailconfig+*to" with content
17
+ # """
18
+ # {"referred_to_by":{"left":"_self","right":"recipients"}}
19
+ # """
20
+ # And I create Search card "Testemailconfig+*from" with content "{"left":"_self","right":"email"}"
21
+ # And I create Phrase card "Testemailconfig+*subject" with content "Subjectimus"
22
+ ## And I create Phrase card "Testemailconfig+*bcc"
23
+ # And I create Basic card "Testemailconfig+*message" with content
24
+ # """
25
+ # Pleistocles, {{_self+name|core}} says: {{_self+Testimony|core}} {{_self+search test|core;item:name}}
26
+ # buena,
27
+ # Thaddeus
28
+ # """
29
+ #
30
+ # And I create Phrase card "A+email" with content "argumus@test.com"
31
+ # And I create Phrase card "B+email" with content "tacitus@test.com"
32
+ # # FIXME: apparently cucumber or webrat or something can't handle saving
33
+ # # multiple line entries. Everything I've tried so far has resulted in
34
+ # # truncation after the first line. which fucking bites.
35
+ # # so for now I will eunicize our tests and only check for one email delivery.
36
+ # And I create Pointer card "List1" with content
37
+ # """
38
+ # [[A+email]]
39
+ # [[B+email]]
40
+ # """
41
+ # And I am signed in as Joe User
42
+ #
43
+ # Scenario: Submitting a new Testimony
44
+ # Given I go to new Testimony
45
+ # When I create Testimony card "MoanE" with plusses:
46
+ # |name|email|Testimony|recipients|
47
+ # |Lee|lee@user.net|This is outrageous|[[List1]]|
48
+ # Then "argumus@test.com" should receive 1 email
49
+ # When "argumus@test.com" opens the email with subject "Subjectimus"
50
+ # And they should see the email delivered from "lee@user.net"
51
+ # And they should see "Pleistocles" in the email body
52
+ # And they should see "Lee" in the email body
53
+ # And they should see "This is outrageous" in the email body
54
+ #
@@ -7,22 +7,24 @@ Feature: Notifications
7
7
  And I am signed in as Joe Admin
8
8
  When Joe User edits "Home" setting content to "Boo"
9
9
  Then Joe Admin should be notified that "Joe User updated \"Home\""
10
+ And the card Joe Admin+*following should contain "Home"
10
11
  # FIXME:need multiline matching
11
12
  #And He should see "was just edited by Joe User" in the email
12
13
  #And He should see "You received this email because you're watching Home" in the email
13
14
  When I follow "Unfollow" in the email
14
- Then the card Home+*watchers should not contain "Joe Admin"
15
+ Then the card Joe Admin+*following should not contain "Home"
15
16
 
16
17
  Scenario: Watching a Type Card
17
18
  Given Joe Admin is watching "Phrase"
18
19
  And I am signed in as Joe Admin
19
20
  When Joe User creates Phrase card "Foo" with content "bar"
20
21
  Then Joe Admin should be notified that "Joe User created \"Foo\""
22
+ And the card Joe Admin+*following should contain "Phrase"
21
23
  # FIXME:need multiline matching
22
24
  #And He should see "was just added by Joe User" in the email
23
25
  #And He should see "You received this email because you're watching Phrase cards" in the email
24
26
  When I follow "Unfollow" in the email
25
- Then the card Phrase+*watchers should not contain "Joe Admin"
27
+ Then the card Joe Admin+*following should not contain "Phrase"
26
28
 
27
29
  Scenario: Watching a Card
28
30
  Given Joe User is watching "Home"
@@ -13,7 +13,7 @@ Feature: Reset password
13
13
  And I follow "RESET PASSWORD"
14
14
  And I enter "joe@user.com" into "*email"
15
15
  And I press "Reset my password"
16
- Then "joe@user.com" should receive an email with subject "verification link for My Wagn"
16
+ Then "joe@user.com" should receive an email with subject "reset password for My Wagn"
17
17
 
18
18
  When I open the email
19
19
  And I click the first link in the email
@@ -77,6 +77,11 @@ When /^(.*) edits? "([^\"]*)" setting (.*) to "([^\"]*)"$/ do |username, cardnam
77
77
  end
78
78
  end
79
79
 
80
+ When /^(.*) edits? "([^\"]*)" filling in "([^\"]*)"$/ do |username, cardname, content|
81
+ visit "/card/edit/#{cardname.to_name.url_key}"
82
+ fill_in 'card[content]', :with=>content
83
+ end
84
+
80
85
  When /^(.*) edits? "([^\"]*)" with plusses:/ do |username, cardname, plusses|
81
86
  signed_in_as(username) do
82
87
  visit "/card/edit/#{cardname.to_name.url_key}"
@@ -125,7 +130,7 @@ end
125
130
  Given /^(.*) (is|am) watching "([^\"]+)"$/ do |user, verb, cardname|
126
131
  user = Card::Auth.current.name if user == "I"
127
132
  signed_in_as user do
128
- step "the card #{cardname}+*watchers contains \"[[#{user}]]\""
133
+ step "the card #{user}+*following contains \"[[#{cardname}]]\""
129
134
  end
130
135
  end
131
136
 
@@ -134,6 +139,11 @@ When /I wait a sec/ do
134
139
  sleep 1
135
140
  end
136
141
 
142
+ When /I wait (.+) seconds$/ do |period|
143
+ sleep period.to_i
144
+ end
145
+
146
+
137
147
  Then /what/ do
138
148
  save_and_open_page
139
149
  end
@@ -186,6 +196,10 @@ When /^In (.*) I click "(.*)"$/ do |section, link|
186
196
  end
187
197
  end
188
198
 
199
+ Then /I submit$/ do
200
+ click_button("Submit")
201
+ end
202
+
189
203
  When /^I hover over the main menu$/ do
190
204
  page.execute_script "$('#main > .card-slot > .card-header > .card-menu-link').trigger('mouseenter')"
191
205
  end
@@ -248,8 +262,12 @@ Then /^I should see$/ do |text|
248
262
  page.should have_content(text)
249
263
  end
250
264
 
265
+ Then /^I should see "([^\"]*)" in (.*)$/ do |text, css_class|
266
+ page.has_css?(".diff-#{css_class}", text: text)
267
+ #page.should have_content(text)
268
+ end
269
+
251
270
  When /^I fill in "([^\"]*)" with$/ do |field, value|
252
271
  fill_in(field, :with => value)
253
272
  end
254
273
 
255
-
@@ -0,0 +1,23 @@
1
+ When /^I open a new window for (.*)$/ do |account_name|
2
+ str =
3
+ <<END_TAG
4
+ window.open("", "#{account_name}", "height=600,width=800");
5
+ END_TAG
6
+ page.execute_script(str)
7
+ page.driver.browser.switch_to.window( page.driver.browser.window_handles.last )
8
+ accounted = Card[account_name]
9
+ visit "/update/:signin?card[subcards][%2B*email][content]=#{accounted.account.email}&card[subcards][%2B*password][content]=joe_pass"
10
+ end
11
+
12
+ When /I switch to (.+) window$/ do |window|
13
+ if window == 'first'
14
+ page.driver.browser.switch_to.window( page.driver.browser.window_handles.first )
15
+ elsif window == 'last'
16
+ page.driver.browser.switch_to.window( page.driver.browser.window_handles.last )
17
+ end
18
+ end
19
+
20
+ When /^I close window$/ do
21
+ page.execute_script("window.close();")
22
+ page.driver.browser.switch_to.window( page.driver.browser.window_handles.last )
23
+ end
@@ -1,6 +1,7 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  ENV['RAILS_ENV'] = "cucumber"
3
3
 
4
+ require File.expand_path( '../../../lib/wagn/simplecov_helper.rb', __FILE__ )
4
5
  require 'simplecov'
5
6
 
6
7