decko 0.3.3 → 0.3.4

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/lib/decko/generators/decko/templates/Gemfile +1 -0
  3. metadata +5 -109
  4. data/.rspec +0 -4
  5. data/Guardfile +0 -32
  6. data/decko.gemspec +0 -42
  7. data/features/attach.feature +0 -85
  8. data/features/autonaming.feature +0 -19
  9. data/features/conflict.feature +0 -41
  10. data/features/follow.feature +0 -64
  11. data/features/history.feature +0 -27
  12. data/features/layouts.feature +0 -25
  13. data/features/navbox.feature +0 -34
  14. data/features/notifications.feature +0 -33
  15. data/features/paging.feature +0 -34
  16. data/features/pointer_inputs.feature +0 -81
  17. data/features/presetting_content.feature +0 -13
  18. data/features/reference.feature +0 -26
  19. data/features/reset_password.feature +0 -35
  20. data/features/rules.feature +0 -45
  21. data/features/setup.feature +0 -32
  22. data/features/signup.feature +0 -61
  23. data/features/step_definitions/decko_steps.rb +0 -532
  24. data/features/step_definitions/email_steps.rb +0 -216
  25. data/features/step_definitions/history_steps.rb +0 -5
  26. data/features/step_definitions/web_steps.rb +0 -155
  27. data/features/step_definitions/window_steps.rb +0 -27
  28. data/features/structure.feature +0 -41
  29. data/features/support/debugger.rb +0 -44
  30. data/features/support/delayed_job.rb +0 -20
  31. data/features/support/env.rb +0 -115
  32. data/features/support/file.txt +0 -1
  33. data/features/support/image.png +0 -0
  34. data/features/support/image2.jpg +0 -0
  35. data/features/support/paths.rb +0 -63
  36. data/features/support/scopes.rb +0 -34
  37. data/features/support/wagn_env.rb +0 -11
  38. data/features/table_of_contents.feature +0 -36
  39. data/features/toolbar.feature +0 -29
  40. data/features/update_includers.feature +0 -75
  41. data/lib/decko/tasks/.gitkeep +0 -0
  42. data/spec/controllers/card_controller_spec.rb +0 -407
  43. data/spec/controllers/location_spec.rb +0 -25
  44. data/spec/javascripts/helpers/.gitkeep +0 -0
  45. data/spec/javascripts/helpers/jasmine-jquery.js +0 -812
  46. data/spec/javascripts/support/jasmine.yml.erb +0 -79
  47. data/spec/javascripts/support/jasmine_config.rb +0 -21
  48. data/spec/javascripts/support/jasmine_runner.rb +0 -21
  49. data/spec/javascripts/wagn_spec.coffee +0 -42
  50. data/test/1.10.0-data-dump.sql +0 -359
  51. data/test/performance/card_create_test.rb +0 -21
  52. data/test/performance/fetch_test.rb +0 -9
  53. data/test/performance/homepage_test.rb +0 -9
  54. data/test/performance/render_test.rb +0 -10
  55. data/test/script/run_engine_deck.sh +0 -47
  56. data/test/script/run_mig.sh +0 -29
  57. data/test/test_helper.rb +0 -125
@@ -1,216 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- # rubocop:disable Lint/AmbiguousRegexpLiteral
3
- # Commonly used email steps
4
- #
5
- # To add your own steps make a custom_email_steps.rb
6
- # The provided methods are:
7
- #
8
- # last_email_address
9
- # reset_mailer
10
- # open_last_email
11
- # visit_in_email
12
- # unread_emails_for
13
- # mailbox_for
14
- # current_email
15
- # open_email
16
- # read_emails_for
17
- # find_email
18
- #
19
- # General form for email scenarios are:
20
- # - clear the email queue (done automatically by email_spec)
21
- # - execute steps that sends an email
22
- # - check the user received an/no/[0-9] emails
23
- # - open the email
24
- # - inspect the email contents
25
- # - interact with the email (e.g. click links)
26
- #
27
- # The Cucumber steps below are setup in this order.
28
-
29
- module EmailHelpers
30
- def current_email_address
31
- # Replace with your a way to find your current email. e.g session -> email
32
- # last_email_address will return the last email address used by email spec to find an email.
33
- # Note that last_email_address will be reset after each Scenario.
34
- last_email_address || "fixthis@wagn.org"
35
- end
36
- end
37
-
38
- World(EmailHelpers)
39
-
40
- #
41
- # Reset the e-mail queue within a scenario.
42
- # This is done automatically before each scenario.
43
- #
44
-
45
- Given /^(?:a clear email queue|no emails have been sent)$/ do
46
- reset_mailer
47
- end
48
-
49
- #
50
- # Check how many emails have been sent/received
51
- #
52
-
53
- Then /^(?:I|they|"([^"]*?)") should receive (an|no|\d+) emails?$/ do |address, amount|
54
- expect(unread_emails_for(address).size).to eq(parse_email_count(amount))
55
- end
56
-
57
- Then /^(?:I|they|"([^"]*?)") should have (an|no|\d+) emails?$/ do |address, amount|
58
- expect(mailbox_for(address).size).to eq(parse_email_count(amount))
59
- end
60
-
61
- Then /^(?:I|they|"([^"]*?)") should receive (an|no|\d+) emails? with subject "([^"]*?)"$/ do |address, amount, subject|
62
- # address = address_for_user address
63
- expect(unread_emails_for(address).count { |m| m.subject =~ Regexp.new(subject) }).to eq(parse_email_count(amount))
64
- end
65
-
66
- Then /^(?:I|they|"([^"]*?)") should receive an email with the following body:$/ do |address, expected_body|
67
- open_email(address, with_text: expected_body)
68
- end
69
-
70
- #
71
- # Accessing emails
72
- #
73
-
74
- # Opens the most recently received email
75
- When /^(?:I|they|"([^"]*?)") opens? the email$/ do |address|
76
- open_email(address)
77
- end
78
-
79
- When /^(?:I|they|"([^"]*?)") opens? the email with subject "([^"]*?)"$/ do |address, subject|
80
- open_email(address, with_subject: subject)
81
- end
82
-
83
- When /^(?:I|they|"([^"]*?)") opens? the email with text "([^"]*?)"$/ do |address, text|
84
- open_email(address, with_text: text)
85
- end
86
-
87
- #
88
- # Inspect the Email Contents
89
- #
90
-
91
- Then /^(?:I|they) should see "([^"]*?)" in the email subject$/ do |text|
92
- expect(current_email).to have_subject(text)
93
- end
94
-
95
- Then /^(?:I|they) should see \/([^"]*?)\/ in the email subject$/ do |text|
96
- expect(current_email).to have_subject(Regexp.new(text))
97
- end
98
-
99
- Then /^(?:I|they) should see \|(.*)\| in the email body$/ do |text|
100
- expect(current_email.text_part.body.raw_source).to include(text.to_s)
101
- end
102
-
103
- Then /^(?:I|they) should see "(.*)" in the email body$/ do |text|
104
- expect(current_email.text_part.body.raw_source).to include(text.to_s)
105
- end
106
-
107
- Then /^(?:I|they) should see \/([^\/]*?)\/ in the email body$/ do |text|
108
- expect(current_email.html_part.body).to match(Regexp.new(text))
109
- end
110
-
111
- Then /^(?:I|they) should see the email delivered from "([^"]*?)"$/ do |text|
112
- expect(current_email).to be_delivered_from(text)
113
- end
114
-
115
- Then /^(?:I|they) should see "([^\"]*)" in the email "([^"]*?)" header$/ do |text, name|
116
- expect(current_email).to have_header(name, text)
117
- end
118
-
119
- Then /^(?:I|they) should see \/([^\"]*)\/ in the email "([^"]*?)" header$/ do |text, name|
120
- expect(current_email).to have_header(name, Regexp.new(text))
121
- end
122
-
123
- #
124
- # Inspect the Email Attachments
125
- #
126
-
127
- Then /^(?:I|they) should see (an|no|\d+) attachments? with the email$/ do |amount|
128
- expect(current_email_attachments.size).to eq(parse_email_count(amount))
129
- end
130
-
131
- Then /^there should be (an|no|\d+) attachments? named "([^"]*?)"$/ do |amount, filename|
132
- expect(current_email_attachments.count { |a| a.original_filename == filename }).to eq(parse_email_count(amount))
133
- end
134
-
135
- Then /^attachment (\d+) should be named "([^"]*?)"$/ do |index, filename|
136
- expect(current_email_attachments[(index.to_i - 1)].original_filename).to eq(filename)
137
- end
138
-
139
- Then /^there should be (an|no|\d+) attachments? of type "([^"]*?)"$/ do |amount, content_type|
140
- expect(current_email_attachments.count { |a| a.content_type == content_type }).to eq(parse_email_count(amount))
141
- end
142
-
143
- Then /^attachment (\d+) should be of type "([^"]*?)"$/ do |index, content_type|
144
- expect(current_email_attachments[(index.to_i - 1)].content_type).to eq(content_type)
145
- end
146
-
147
- Then /^all attachments should not be blank$/ do
148
- current_email_attachments.each do |attachment|
149
- expect(attachment.size).not_to eq(0)
150
- end
151
- end
152
-
153
- Then /^show me a list of email attachments$/ do
154
- EmailSpec::EmailViewer.save_and_open_email_attachments_list(current_email)
155
- end
156
-
157
- #
158
- # Interact with Email Contents
159
- #
160
-
161
- When /^(?:I|they) follow "([^"]*?)" in the email$/ do |link| # "<- stop textmate from treating the rest of the file as a string
162
- visit_in_email(link)
163
- end
164
-
165
- When /^(?:I|they) follow "([^"]*?)" in the email to "([^"]*?)"$/ do |link, address| # "<- stop textmate from treating the rest of the file as a string
166
- visit_in_email(link, address)
167
- end
168
-
169
- When /^(?:I|they) click the first link in the email$/ do
170
- click_first_link_in_email
171
- end
172
-
173
- #
174
- # Debugging
175
- # These only work with Rails and OSx ATM since EmailViewer uses Rails.root and OSx's 'open' command.
176
- # Patches accepted. ;)
177
- #
178
-
179
- Then /^save and open current email$/ do
180
- EmailSpec::EmailViewer.save_and_open_email(current_email)
181
- end
182
-
183
- Then /^save and open all text emails$/ do
184
- EmailSpec::EmailViewer.save_and_open_all_text_emails
185
- end
186
-
187
- Then /^save and open all html emails$/ do
188
- EmailSpec::EmailViewer.save_and_open_all_html_emails
189
- end
190
-
191
- Then /^save and open all raw emails$/ do
192
- EmailSpec::EmailViewer.save_and_open_all_raw_emails
193
- end
194
-
195
- Then /^(.*) should be notified that "(.*)"$/ do |username, subject|
196
- wait_for_ajax
197
- Delayed::Worker.new.work_off
198
- email = address_for_user username
199
- begin
200
- step %("#{email}" should receive 1 email)
201
- rescue RSpec::Expectations::ExpectationNotMetError => e
202
- raise RSpec::Expectations::ExpectationNotMetError, %(#{e.message}\n Found the following emails:\n\n #{all_emails * "\n\n~~~~~~~~\n\n"})
203
- end
204
- open_email(email, with_subject: /#{subject}/)
205
- end
206
-
207
- Then /^No notification should be sent$/ do
208
- wait_for_ajax
209
- Delayed::Worker.new.work_off
210
- expect(all_emails).to be_empty
211
- end
212
-
213
- def address_for_user username
214
- card_with_acct = username == "I" ? Auth.current : Card[username]
215
- card_with_acct ? card_with_acct.account.email : username
216
- end
@@ -1,5 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- # rubocop:disable Lint/AmbiguousRegexpLiteral
3
- When /^I expand act (\d+)$/ do |index|
4
- all('.panel-heading[data-toggle="collapse"]')[-index.to_i].click
5
- end
@@ -1,155 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- # rubocop:disable Lint/AmbiguousRegexpLiteral
3
- # IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
4
- # It is recommended to regenerate this file in the future when you upgrade to a
5
- # newer version of cucumber-rails. Consider adding your own code to a new file
6
- # instead of editing this one. Cucumber will automatically load all
7
- # features/**/*.rb files.
8
-
9
- require "uri"
10
- require "cgi"
11
- require File.expand_path(
12
- File.join(File.dirname(__FILE__), "..", "support", "paths")
13
- )
14
-
15
- # Commonly used webrat steps
16
- # http://github.com/brynary/webrat
17
-
18
- Given /^(?:|I )am on (.+)$/ do |page_name|
19
- visit path_to(page_name)
20
- end
21
-
22
- When /^(?:|I )go to (.+)$/ do |page_name|
23
- visit path_to(page_name)
24
- end
25
-
26
- When /^(?:|I )press "([^"]*)"$/ do |button|
27
- click_button(button)
28
- wait_for_ajax if @javascript && (button == "Submit" || button =~ /rename/i)
29
- end
30
-
31
- When /^(?:|I )follow "([^"]*)"$/ do |link|
32
- click_link(link)
33
- end
34
-
35
- When /^(?:|I )click on "([^"]*)"$/ do |link|
36
- click_link_or_button(link)
37
- wait_for_ajax
38
- end
39
-
40
- When /^(?:|I )follow "([^"]*)" within "([^"]*)"$/ do |link, parent|
41
- click_link_within(parent, link)
42
- end
43
-
44
- When /^(?:|I )fill in "([^"]*)" with "([^"]*)"$/ do |field, value|
45
- fill_in(field, with: value)
46
- wait_for_ajax if @javascript && field == "card_name"
47
- end
48
-
49
- When /^(?:|I )fill in "([^"]*)" with '([^']*)'$/ do |field, value|
50
- fill_in(field, with: value)
51
- end
52
-
53
- When /^(?:|I )fill in "([^"]*)" for "([^"]*)"$/ do |value, field|
54
- fill_in(field, with: value)
55
- end
56
-
57
- When /^(?:|I )select "([^"]*)" from "([^"]*)"$/ do |value, field|
58
- select(value, from: field)
59
- end
60
-
61
- When /^(?:|I )submit form$/ do
62
- find(:css, "button[type='submit']").click
63
- end
64
-
65
- # Use this step in conjunction with Rail's datetime_select helper. For example:
66
- # When I select "December 25, 2008 10:00" as the date and time
67
- When /^(?:|I )select "([^"]*)" as the date and time$/ do |time|
68
- select_datetime(time)
69
- end
70
-
71
- # Use this step when using multiple datetime_select helpers on a page or
72
- # you want to specify which datetime to select. Given the following view:
73
- # <%= f.label :preferred %><br />
74
- # <%= f.datetime_select :preferred %>
75
- # <%= f.label :alternative %><br />
76
- # <%= f.datetime_select :alternative %>
77
- # The following steps would fill out the form:
78
- # When I select "November 23, 2004 11:20" as the "Preferred" date and time
79
- # And I select "November 25, 2004 10:30" as the "Alternative" date and time
80
- When /^(?:|I )select "([^"]*)" as the "([^"]*)" date and time$/ do |datetime, datetime_label|
81
- select_datetime(datetime, from: datetime_label)
82
- end
83
-
84
- # Use this step in conjunction with Rail's time_select helper. For example:
85
- # When I select "2:20PM" as the time
86
- # Note: Rail's default time helper provides 24-hour time-- not 12 hour time.
87
- # Webrat will convert the 2:20PM to 14:20 and then select it.
88
- When /^(?:|I )select "([^"]*)" as the time$/ do |time|
89
- select_time(time)
90
- end
91
-
92
- # Use this step when using multiple time_select helpers on a page or you want to
93
- # specify the name of the time on the form. For example:
94
- # When I select "7:30AM" as the "Gym" time
95
- When /^(?:|I )select "([^"]*)" as the "([^"]*)" time$/ do |time, time_label|
96
- select_time(time, from: time_label)
97
- end
98
-
99
- # Use this step in conjunction with Rail's date_select helper. For example:
100
- # When I select "February 20, 1981" as the date
101
- When /^(?:|I )select "([^"]*)" as the date$/ do |date|
102
- select_date(date)
103
- end
104
-
105
- # Use this step when using multiple date_select helpers on one page or
106
- # you want to specify the name of the date on the form. For example:
107
- # When I select "April 26, 1982" as the "Date of Birth" date
108
- When /^(?:|I )select "([^"]*)" as the "([^"]*)" date$/ do |date, date_label|
109
- select_date(date, from: date_label)
110
- end
111
-
112
- When /^(?:|I )check "([^"]*)"$/ do |field|
113
- check(field)
114
- end
115
-
116
- When /^(?:|I )uncheck "([^"]*)"$/ do |field|
117
- uncheck(field)
118
- end
119
-
120
- When /^(?:|I )choose "([^"]*)"$/ do |field|
121
- choose(field)
122
- end
123
-
124
- # Adds support for validates_attachment_content_type.
125
- # Without the mime-type getting passed to attach_file() you will get a
126
- # "Photo file is not one of the allowed file types."
127
- # error message
128
- When /^(?:|I )attach the file "([^"]*)" to "([^"]*)"$/ do |path, field|
129
- type = path.split(".")[1]
130
-
131
- case type
132
- when "jpg"
133
- type = "image/jpg"
134
- when "jpeg"
135
- type = "image/jpeg"
136
- when "png"
137
- type = "image/png"
138
- when "gif"
139
- type = "image/gif"
140
- end
141
-
142
- attach_file(field, path, type)
143
- end
144
-
145
- Then /^(?:|I )should see "([^"]*)"$/ do |text|
146
- expect(page).to have_content(text)
147
- end
148
-
149
- Then /^(?:|I )should not see "([^"]*)"$/ do |text|
150
- expect(page).to_not have_content(text)
151
- end
152
-
153
- Then /^show me the page$/ do
154
- save_and_open_page
155
- end
@@ -1,27 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- # rubocop:disable Lint/AmbiguousRegexpLiteral
3
-
4
- When /^I open a new window for (.*)$/ do |account_name|
5
- str =
6
- <<END_TAG
7
- window.open("", "#{account_name}", "height=600,width=800");
8
- END_TAG
9
- page.execute_script(str)
10
- page.driver.browser.switch_to.window(page.driver.browser.window_handles.last)
11
- email = Card[account_name].account.email
12
- visit "/update/:signin?card[subcards][%2B*email][content]=#{email}&"\
13
- "card[subcards][%2B*password][content]=joe_pass"
14
- end
15
-
16
- When /I switch to (.+) window$/ do |window|
17
- if window == "first"
18
- page.driver.browser.switch_to.window(page.driver.browser.window_handles.first)
19
- elsif window == "last"
20
- page.driver.browser.switch_to.window(page.driver.browser.window_handles.last)
21
- end
22
- end
23
-
24
- When /^I close window$/ do
25
- page.execute_script("window.close();")
26
- page.driver.browser.switch_to.window(page.driver.browser.window_handles.last)
27
- end
@@ -1,41 +0,0 @@
1
- @javascript
2
- Feature: Structure Rules
3
- In order to have patterned content
4
- As a Decker
5
- I want to manage structure through rules
6
-
7
- Background:
8
- Given I am signed in as Joe Admin
9
- And I create Cardtype card "Movie"
10
- And I create card "Movie+*type+*structure" with content "{{+director}} {{+lead}} {{+color}}"
11
- And I create Phrase card "color+*right+*default" with content "true dat"
12
-
13
- Scenario: New structured card
14
- When I edit "Movie+*type+*structure"
15
- Then I should see "{{+lead}}" in the editor
16
- When I go to new Movie
17
- Then I should see "+director"
18
- And I should see "+lead"
19
-
20
- Scenario: Create and edit templated card
21
- When I create Movie card "Star Wars" with plusses:
22
- |director|lead|
23
- |George Lucas|Harrison Ford|
24
- And I go to card "Star Wars"
25
- Then In the main card content I should see "George Lucas"
26
- And In the main card content I should see "Harrison Ford"
27
- When I edit "Star Wars" with plusses:
28
- |director|lead|
29
- |G. Lucas|H. Ford|
30
- And I go to card "Star Wars"
31
- Then In the main card content I should see "G. Lucas"
32
- And In the main card content I should see "H. Ford"
33
- And In the main card content I should see "true dat"
34
-
35
- Scenario: Default on a ranking set
36
- Given I create card "Home Movie+*right+*default" with content "Watch this"
37
- When I go to new Movie card named "Lew+Home Movie"
38
- Then I should see "Watch this" in the editor
39
-
40
-
41
-