wagn 1.13.0.pre → 1.13.0.pre1
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.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/app/controllers/card_controller.rb +4 -2
- data/db/bootstrap/card_references.yml +443 -408
- data/db/bootstrap/card_revisions.yml +1025 -1116
- data/db/bootstrap/cards.yml +2168 -2151
- data/db/migrate_cards/20140512155840_add_script_cards.rb +1 -0
- data/features/step_definitions/wagn_steps.rb +16 -3
- data/features/watch.feature +1 -1
- data/lib/card/content.rb +1 -1
- data/lib/card/format.rb +6 -4
- data/lib/card/generators/card_migration/USAGE +1 -1
- data/lib/card/mailer.rb +2 -1
- data/lib/card/mailer/confirmation_email.html.erb +6 -2
- data/lib/wagn/all.rb +0 -8
- data/lib/wagn/application.rb +29 -19
- data/lib/wagn/commands.rb +104 -2
- data/{config → lib/wagn/config}/environments/cucumber.rb +0 -0
- data/{config → lib/wagn/config}/environments/development.rb +0 -0
- data/{config → lib/wagn/config}/environments/production.rb +0 -0
- data/{config → lib/wagn/config}/environments/profile.rb +0 -0
- data/{config → lib/wagn/config}/environments/test.rb +0 -0
- data/{config → lib/wagn/config}/initializers/01_init_ruby_extensions.rb +0 -0
- data/{config → lib/wagn/config}/initializers/airbrake.rb +0 -1
- data/{config → lib/wagn/config}/initializers/inflections.rb +0 -0
- data/{config → lib/wagn/config}/initializers/mime_types.rb +0 -0
- data/{config → lib/wagn/config}/initializers/notification.rb +0 -0
- data/{config → lib/wagn/config}/initializers/recaptcha.rb +0 -0
- data/{config → lib/wagn/config}/initializers/secret_token.rb +0 -0
- data/{config → lib/wagn/config}/initializers/session_store.rb +0 -0
- data/{config → lib/wagn/config}/initializers/uuid_state_file.rb +0 -0
- data/lib/wagn/generators/wagn/USAGE +5 -4
- data/lib/wagn/generators/wagn/templates/Gemfile +67 -2
- data/lib/wagn/generators/wagn/templates/config/application.rb +1 -1
- data/lib/wagn/generators/wagn/templates/config/cucumber.yml +1 -0
- data/lib/wagn/generators/wagn/templates/config/databases/frontbase.yml +4 -2
- data/lib/wagn/generators/wagn/templates/config/databases/ibm_db.yml +4 -2
- data/lib/wagn/generators/wagn/templates/config/databases/jdbc.yml +5 -3
- data/lib/wagn/generators/wagn/templates/config/databases/jdbcmysql.yml +4 -2
- data/lib/wagn/generators/wagn/templates/config/databases/jdbcpostgresql.yml +4 -2
- data/lib/wagn/generators/wagn/templates/config/databases/jdbcsqlite3.yml +4 -2
- data/lib/wagn/generators/wagn/templates/config/databases/mysql.yml +5 -10
- data/lib/wagn/generators/wagn/templates/config/databases/oracle.yml +4 -2
- data/lib/wagn/generators/wagn/templates/config/databases/postgresql.yml +4 -15
- data/lib/wagn/generators/wagn/templates/config/databases/sqlite3.yml +4 -6
- data/lib/wagn/generators/wagn/templates/rspec +5 -0
- data/lib/wagn/generators/wagn/wagn_generator.rb +84 -1
- data/lib/wagn/mods_spec_helper.rb +66 -0
- data/lib/wagn/tasks/db.rake +2 -1
- data/lib/wagn/tasks/wagn.rake +5 -1
- data/lib/wagn/wagn_spec_helper.rb +49 -0
- data/mods/core/sets/all/content.rb +3 -3
- data/mods/core/sets/all/phases.rb +1 -2
- data/mods/standard/sets/all/attach.rb +1 -1
- data/mods/standard/sets/all/comment.rb +3 -3
- data/mods/standard/sets/all/rich_html.rb +6 -7
- data/mods/standard/sets/right/account.rb +14 -5
- data/mods/standard/sets/rstar/rules.rb +17 -4
- data/mods/standard/sets/self/signin.rb +2 -2
- data/mods/standard/sets/type/pointer.rb +1 -3
- data/mods/standard/sets/type/scss.rb +1 -1
- data/mods/standard/sets/type/signup.rb +33 -12
- data/mods/standard/sets/type/user.rb +1 -1
- data/spec/javascripts/support/jasmine_runner.rb +1 -1
- data/spec/mods/standard/sets/all/base_spec.rb +4 -0
- data/spec/mods/standard/sets/type/signup_spec.rb +52 -15
- data/spec/spec_helper.rb +12 -53
- data/test/fixtures/card_references.yml +688 -653
- data/test/fixtures/card_revisions.yml +1741 -1832
- data/test/fixtures/cards.yml +3484 -3467
- metadata +20 -21
- data/Gemfile +0 -77
- data/config/application.rb +0 -15
- data/config/boot.rb +0 -8
- data/config/environment.rb +0 -8
- data/lib/wagn/generators/wagn/templates/config/database.yml +0 -35
data/lib/wagn/tasks/db.rake
CHANGED
@@ -29,6 +29,7 @@ unless Rake::TaskManager.methods.include?(:redefine_task)
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
+
|
32
33
|
namespace :db do
|
33
34
|
namespace :fixtures do
|
34
35
|
desc "Load fixtures into the current environment's database. Load specific fixtures using FIXTURES=x,y"
|
@@ -36,7 +37,7 @@ namespace :db do
|
|
36
37
|
require 'active_record/fixtures'
|
37
38
|
ActiveRecord::Base.establish_connection(::Rails.env.to_sym)
|
38
39
|
(ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/) : Dir.glob(File.join(Wagn.gem_root.to_s, 'test', 'fixtures', '*.{yml,csv}'))).each do |fixture_file|
|
39
|
-
ActiveRecord::Fixtures.create_fixtures('test
|
40
|
+
ActiveRecord::Fixtures.create_fixtures(File.join(Wagn.gem_root.to_s, 'test', 'fixtures'), File.basename(fixture_file, '.*'))
|
40
41
|
end
|
41
42
|
end
|
42
43
|
end
|
data/lib/wagn/tasks/wagn.rake
CHANGED
@@ -38,6 +38,10 @@ namespace :wagn do
|
|
38
38
|
desc "update wagn gems and database"
|
39
39
|
task :update do
|
40
40
|
#system 'bundle update'
|
41
|
+
if Wagn.paths["tmp"].existent
|
42
|
+
FileUtils.rm_rf Wagn.paths["tmp"].first, :secure=>true
|
43
|
+
Dir.mkdir Wagn.paths["tmp"].first
|
44
|
+
end
|
41
45
|
Rake::Task['wagn:migrate'].invoke
|
42
46
|
# FIXME remove tmp dir / clear cache
|
43
47
|
puts "set symlink for assets"
|
@@ -51,7 +55,7 @@ namespace :wagn do
|
|
51
55
|
|
52
56
|
desc "set symlink for assets"
|
53
57
|
task :update_assets_symlink do
|
54
|
-
|
58
|
+
if Rails.root.to_s != Wagn.gem_root and not File.exists? File.join(Rails.public_path, "assets")
|
55
59
|
FileUtils.ln_s( Wagn.paths['gem-assets'].first, File.join(Rails.public_path, "assets") )
|
56
60
|
end
|
57
61
|
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Wagn::WagnSpecHelper
|
2
|
+
|
3
|
+
include ActionDispatch::Assertions::SelectorAssertions
|
4
|
+
#~~~~~~~~~ HELPER METHODS ~~~~~~~~~~~~~~~#
|
5
|
+
|
6
|
+
def login_as user
|
7
|
+
Card::Auth.current_id = (uc=Card[user.to_s] and uc.id)
|
8
|
+
if @request
|
9
|
+
@request.session[:user] = Card::Auth.current_id
|
10
|
+
end
|
11
|
+
#warn "(ath)login_as #{user.inspect}, #{Card::Auth.current_id}, #{@request.session[:user]}"
|
12
|
+
end
|
13
|
+
|
14
|
+
def newcard name, content=""
|
15
|
+
#FIXME - misleading name; sounds like it doesn't save.
|
16
|
+
Card.create! :name=>name, :content=>content
|
17
|
+
end
|
18
|
+
|
19
|
+
def assert_view_select(view_html, *args, &block)
|
20
|
+
node = HTML::Document.new(view_html).root
|
21
|
+
if block_given?
|
22
|
+
assert_select node, *args, &block
|
23
|
+
else
|
24
|
+
assert_select node, *args
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def render_editor(type)
|
29
|
+
card = Card.create(:name=>"my favority #{type} + #{rand(4)}", :type=>type)
|
30
|
+
card.format.render(:edit)
|
31
|
+
end
|
32
|
+
|
33
|
+
def render_content content, format_args={}
|
34
|
+
@card ||= Card.new :name=>"Tempo Rary 2"
|
35
|
+
@card.content = content
|
36
|
+
@card.format(format_args)._render :core
|
37
|
+
end
|
38
|
+
|
39
|
+
def render_card view, card_args={}, format_args={}
|
40
|
+
card = begin
|
41
|
+
if card_args[:name]
|
42
|
+
Card.fetch card_args[:name], :new=>card_args
|
43
|
+
else
|
44
|
+
Card.new card_args.merge( :name=> 'Tempo Rary' )
|
45
|
+
end
|
46
|
+
end
|
47
|
+
card.format(format_args)._render(view)
|
48
|
+
end
|
49
|
+
end
|
@@ -106,11 +106,10 @@ end
|
|
106
106
|
event :process_subcards, :after=>:approve, :on=>:save do
|
107
107
|
|
108
108
|
subcards.keys.each do |sub_name|
|
109
|
-
opts = @subcards[sub_name]
|
109
|
+
opts = @subcards[sub_name] || {}
|
110
110
|
ab_name = sub_name.to_name.to_absolute_name name
|
111
111
|
next if ab_name.key == key # don't resave self!
|
112
112
|
|
113
|
-
|
114
113
|
opts = opts.stringify_keys
|
115
114
|
opts['subcards'] = extract_subcard_args! opts
|
116
115
|
|
@@ -75,7 +75,7 @@ def attachment_link(rev_id) # create filesystem links to previous revision
|
|
75
75
|
end
|
76
76
|
|
77
77
|
def before_post_attach
|
78
|
-
Rails.logger.info "bpa called for #{name}"
|
78
|
+
# Rails.logger.info "bpa called for #{name}"
|
79
79
|
at=self.attach
|
80
80
|
at.instance_write :file_name, at.original_filename
|
81
81
|
|
@@ -18,17 +18,17 @@ view( :comment_box, :denial=>:blank, :tags=>:unknown_ok, :perms=>lambda { |r| r.
|
|
18
18
|
|
19
19
|
|
20
20
|
%{<div class="comment-box nodblclick"> #{
|
21
|
-
card_form :update do
|
21
|
+
card_form :update do
|
22
22
|
%{
|
23
23
|
#{ hidden_field_tag( 'card[name]', card.name ) if card.new_card?
|
24
24
|
# FIXME wish we had more generalized solution for names. without this, nonexistent cards will often take left's linkname. (needs test)
|
25
25
|
}
|
26
|
-
#{
|
26
|
+
#{ form.text_area :comment, :rows=>3 }
|
27
27
|
<div class="comment-buttons">
|
28
28
|
#{
|
29
29
|
unless Auth.signed_in?
|
30
30
|
card.comment_author= (session[:comment_author] || params[:comment_author] || "Anonymous") #ENGLISH
|
31
|
-
%{<label>My Name is:</label> #{
|
31
|
+
%{<label>My Name is:</label> #{ form.text_field :comment_author }}
|
32
32
|
end
|
33
33
|
}
|
34
34
|
<input type="submit" value="Comment"/>
|
@@ -195,7 +195,7 @@ format :html do
|
|
195
195
|
end
|
196
196
|
|
197
197
|
args[:buttons] ||= %{
|
198
|
-
#{
|
198
|
+
#{ button_tag 'Submit', :class=>'create-submit-button', :disable_with=>'Submitting' }
|
199
199
|
#{ button_tag 'Cancel', :type=>'button', :class=>"create-cancel-button #{cancel[:class]}", :href=>cancel[:href] }
|
200
200
|
}
|
201
201
|
|
@@ -215,7 +215,7 @@ format :html do
|
|
215
215
|
args[:optional_help] = :show
|
216
216
|
|
217
217
|
args[:buttons] = %{
|
218
|
-
#{
|
218
|
+
#{ button_tag 'Submit', :class=>'submit-button' }
|
219
219
|
#{ button_tag 'Cancel', :class=>'cancel-button slotter', :href=>path, :type=>'button' }
|
220
220
|
}
|
221
221
|
end
|
@@ -256,8 +256,8 @@ format :html do
|
|
256
256
|
:card => { :update_referencers => false }
|
257
257
|
)
|
258
258
|
args[:buttons] = %{
|
259
|
-
#{
|
260
|
-
#{
|
259
|
+
#{ button_tag 'Rename and Update', :class=>'renamer-updater' }
|
260
|
+
#{ button_tag 'Rename', :class=>'renamer' }
|
261
261
|
#{ button_tag 'Cancel', :class=>'slotter', :type=>'button', :href=>path(:view=>:edit, :id=>card.id)}
|
262
262
|
}
|
263
263
|
|
@@ -278,7 +278,7 @@ format :html do
|
|
278
278
|
args[:variety] = :edit #YUCK!
|
279
279
|
args[:hidden] ||= { :view=>:edit }
|
280
280
|
args[:buttons] = %{
|
281
|
-
#{
|
281
|
+
#{ button_tag 'Submit', :disable_with=>'Submitting' }
|
282
282
|
#{ button_tag 'Cancel', :href=>path(:view=>:edit), :type=>'button', :class=>'slotter' }
|
283
283
|
}
|
284
284
|
end
|
@@ -406,8 +406,7 @@ format :html do
|
|
406
406
|
text = if args[:help_text]
|
407
407
|
args[:help_text]
|
408
408
|
else
|
409
|
-
setting = card.new_card? ? :add_help : :help
|
410
|
-
setting = [ :add_help, { :fallback => :help } ] if setting == :add_help
|
409
|
+
setting = card.new_card? ? [ :add_help, { :fallback => :help } ] : :help
|
411
410
|
|
412
411
|
if help_card = card.rule_card( *setting ) and help_card.ok? :read
|
413
412
|
with_inclusion_mode :normal do
|
@@ -52,7 +52,11 @@ event :set_default_status, :on=>:create, :before=>:process_subcards do
|
|
52
52
|
subcards["+#{Card[:status].name}"] = { :content => default_status }
|
53
53
|
end
|
54
54
|
|
55
|
-
|
55
|
+
def confirm_ok?
|
56
|
+
Card.new( :type_id=>Card.default_accounted_type_id ).ok? :create
|
57
|
+
end
|
58
|
+
|
59
|
+
event :generate_confirmation_token, :on=>:create, :before=>:process_subcards, :when=>proc{ |c| c.confirm_ok? } do
|
56
60
|
subcards["+#{Card[:token].name}"] = {:content => generate_token }
|
57
61
|
end
|
58
62
|
|
@@ -82,16 +86,21 @@ def has_reset_token?
|
|
82
86
|
@env_token = Env.params[:reset_token]
|
83
87
|
end
|
84
88
|
|
85
|
-
event :
|
89
|
+
event :reset_token do
|
90
|
+
Auth.as_bot do
|
91
|
+
token_card.update_attributes! :content => generate_token
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
|
96
|
+
event :send_account_confirmation_email, :on=>:create, :after=>:extend do
|
86
97
|
if self.email.present?
|
87
98
|
Mailer.confirmation_email( self ).deliver
|
88
99
|
end
|
89
100
|
end
|
90
101
|
|
91
102
|
event :send_reset_password_token do
|
92
|
-
|
93
|
-
token_card.update_attributes! :content => generate_token
|
94
|
-
end
|
103
|
+
reset_token
|
95
104
|
Mailer.password_reset(self).deliver
|
96
105
|
end
|
97
106
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
|
1
2
|
format :html do
|
2
3
|
|
3
4
|
view :closed_rule, :tags=>:unknown_ok do |args|
|
@@ -39,6 +40,7 @@ format :html do
|
|
39
40
|
setting_name = card.cardname.tag
|
40
41
|
current_rule ||= Card.new :name=> "*all+#{setting_name}" #FIXME use codename
|
41
42
|
set_selected = false
|
43
|
+
edit_mode = !params[:success] && card.ok?( ( card.new_card? ? :create : :update ) )
|
42
44
|
|
43
45
|
#~~~~~~ handle reloading due to type change
|
44
46
|
if params[:type_reload] && card_args=params[:card]
|
@@ -49,11 +51,10 @@ format :html do
|
|
49
51
|
current_rule.assign_attributes card_args
|
50
52
|
current_rule.include_set_modules
|
51
53
|
end
|
52
|
-
|
53
54
|
set_selected = card_args[:name].to_name.left_name.to_s
|
55
|
+
edit_mode = true
|
54
56
|
end
|
55
57
|
|
56
|
-
edit_mode = !params[:success] && card.ok?( ( card.new_card? ? :create : :update ) )
|
57
58
|
|
58
59
|
opts = {
|
59
60
|
:open_rule => card,
|
@@ -188,14 +189,26 @@ format :html do
|
|
188
189
|
%{<span class="rule-delete-section">#{ button_tag 'Delete', b_args }</span>}
|
189
190
|
end
|
190
191
|
}
|
191
|
-
#{
|
192
|
+
#{ button_tag 'Submit', :class=>'rule-submit-button' }
|
192
193
|
#{ button_tag 'Cancel', :class=>'rule-cancel-button slotter', :type=>'button',
|
193
|
-
:href=>path( :view=>( card.new_card? ? :closed_rule : :open_rule ), :
|
194
|
+
:href=>path( :view=>( card.new_card? ? :closed_rule : :open_rule ), :success=>true ) }
|
194
195
|
</div>
|
195
196
|
}
|
196
197
|
end
|
197
198
|
end
|
198
199
|
|
200
|
+
=begin
|
201
|
+
view :edit_rule2 do |args|
|
202
|
+
card_form :update do
|
203
|
+
[
|
204
|
+
_optional_render( :type_fieldset, args ),
|
205
|
+
_optional_render( :content_fieldset, args ),
|
206
|
+
_optional_render( :set_fieldset, args ),
|
207
|
+
_optional_render( :button_fieldset, args )
|
208
|
+
]
|
209
|
+
end
|
210
|
+
end
|
211
|
+
=end
|
199
212
|
|
200
213
|
private
|
201
214
|
|
@@ -13,7 +13,7 @@ format :html do
|
|
13
13
|
|
14
14
|
|
15
15
|
view :core do |args|
|
16
|
-
args[:buttons] =
|
16
|
+
args[:buttons] = button_tag 'Sign in'
|
17
17
|
if Card.new(:type_id=>Card::SignupID).ok? :create
|
18
18
|
args[:buttons] += link_to( '...or sign up!', wagn_path("account/signup"))
|
19
19
|
end
|
@@ -43,7 +43,7 @@ format :html do
|
|
43
43
|
args.merge!( {
|
44
44
|
:title=>'Forgot Password',
|
45
45
|
:optional_help=>:hide,
|
46
|
-
:buttons =>
|
46
|
+
:buttons => button_tag( 'Reset my password' ),
|
47
47
|
:structure => true,
|
48
48
|
:hidden => {
|
49
49
|
:reset_password => true,
|
@@ -147,8 +147,6 @@ end
|
|
147
147
|
|
148
148
|
|
149
149
|
event :standardize_items, :before=>:approve, :on=>:save do
|
150
|
-
Rails.logger.info "create.rb standardize_items base"
|
151
|
-
|
152
150
|
if updates.for? :content
|
153
151
|
self.content = item_names(:context=>:raw).map { |name| "[[#{name}]]" }.join "\n"
|
154
152
|
end
|
@@ -172,7 +170,7 @@ end
|
|
172
170
|
|
173
171
|
def item_names args={}
|
174
172
|
context = args[:context] || self.cardname
|
175
|
-
self.raw_content.split(/\n+/).map do |line|
|
173
|
+
self.raw_content.to_s.split(/\n+/).map do |line|
|
176
174
|
item_name = line.gsub /\[\[|\]\]/, ''
|
177
175
|
if context == :raw
|
178
176
|
item_name
|
@@ -5,7 +5,7 @@ format :html do
|
|
5
5
|
#FIXME - make more use of standard new view
|
6
6
|
args.merge!(
|
7
7
|
:optional_help => :show, #, :optional_menu=>:never
|
8
|
-
:buttons =>
|
8
|
+
:buttons => button_tag( 'Submit' ),
|
9
9
|
:hidden => {
|
10
10
|
:success => (card.rule(:thanks) || '_self'),
|
11
11
|
'card[type_id]' => card.type_id
|
@@ -26,11 +26,30 @@ format :html do
|
|
26
26
|
|
27
27
|
|
28
28
|
view :core do |args|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
29
|
+
headings, links = [], []
|
30
|
+
if !card.new_card? #necessary?
|
31
|
+
headings << %(<strong>#{ card.name }</strong> requested an account on #{ format_date card.created_at })
|
32
|
+
if account = card.account
|
33
|
+
if account.token
|
34
|
+
headings << "An activation token has been sent for this account"
|
35
|
+
else
|
36
|
+
if account.confirm_ok?
|
37
|
+
links << link_to( "Approve #{card.name}", wagn_path("/update/~#{card.id}?approve=true") )
|
38
|
+
end
|
39
|
+
if card.ok? :delete
|
40
|
+
links << link_to( "Deny #{card.name}", wagn_path("/delete/~#{card.id}") )
|
41
|
+
end
|
42
|
+
headings << links * '' if links.any?
|
43
|
+
end
|
44
|
+
else
|
45
|
+
headings << "ERROR: signup card missing account"
|
46
|
+
end
|
33
47
|
end
|
48
|
+
%{<div class="invite-links">
|
49
|
+
#{ headings.map { |h| "<div>#{h}</div>"} * "\n" }
|
50
|
+
</div>
|
51
|
+
#{ process_content render_raw }
|
52
|
+
}
|
34
53
|
end
|
35
54
|
end
|
36
55
|
|
@@ -56,12 +75,16 @@ def has_token?
|
|
56
75
|
end
|
57
76
|
|
58
77
|
|
78
|
+
event :approve_account, :on=>:update, :before=>:process_subcards, :when=>proc {|c| Env.params[:approve] } do
|
79
|
+
account.reset_token
|
80
|
+
account.send_account_confirmation_email
|
81
|
+
end
|
82
|
+
|
83
|
+
|
59
84
|
event :resend_activation_token do
|
60
|
-
Auth.
|
61
|
-
|
62
|
-
|
63
|
-
token_card.left.send_new_account_confirmation_email
|
64
|
-
end
|
85
|
+
account = Auth.find_token_card( @env_token ).left
|
86
|
+
account.reset_token
|
87
|
+
account.send_account_confirmation_email
|
65
88
|
Env.params[:success] = {
|
66
89
|
:id => '_self',
|
67
90
|
:view => 'message',
|
@@ -88,5 +111,3 @@ event :signup_notifications, :after=>:extend, :on=>:create, :when=>send_signup_n
|
|
88
111
|
Mailer.signup_alert(self).deliver
|
89
112
|
end
|
90
113
|
|
91
|
-
|
92
|
-
|
@@ -30,7 +30,7 @@ format :html do
|
|
30
30
|
:optional_help=>:show,
|
31
31
|
:optional_menu=>:never,
|
32
32
|
:help_text=>'To get started, set up an account.',
|
33
|
-
:buttons =>
|
33
|
+
:buttons => button_tag( 'Submit' ),
|
34
34
|
:hidden => {
|
35
35
|
:success => "REDIRECT: #{ Card.path_setting '/' }",
|
36
36
|
'card[type_id]' => Card.default_accounted_type_id,
|
@@ -8,7 +8,7 @@ describe Card::Set::Type::Signup do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
|
11
|
-
context '
|
11
|
+
context 'signup form form' do
|
12
12
|
before do
|
13
13
|
card = Card.new :type_id=>Card::SignupID
|
14
14
|
@form = card.format.render_new
|
@@ -29,17 +29,17 @@ describe Card::Set::Type::Signup do
|
|
29
29
|
|
30
30
|
Card::Auth.as_bot do
|
31
31
|
Card.create! :name=>'User+*type+*create', :content=>'[[Anyone]]'
|
32
|
-
Card.create! :name=>'*request+*to', :content=>'
|
32
|
+
Card.create! :name=>'*request+*to', :content=>'signups@wagn.org'
|
33
33
|
end
|
34
|
-
@
|
34
|
+
@signup = Card.create! :name=>'Big Bad Wolf', :type_id=>Card::SignupID, '+*account'=>{
|
35
35
|
'+*email'=>'wolf@wagn.org', '+*password'=>'wolf'
|
36
36
|
}
|
37
|
-
@account = @
|
37
|
+
@account = @signup.account
|
38
38
|
@token = @account.token
|
39
39
|
end
|
40
40
|
|
41
41
|
it 'should create all the necessary cards' do
|
42
|
-
@
|
42
|
+
@signup.type_id.should == Card::SignupID
|
43
43
|
@account.email.should == 'wolf@wagn.org'
|
44
44
|
@account.status.should == 'pending'
|
45
45
|
@account.salt.should_not == ''
|
@@ -51,19 +51,19 @@ describe Card::Set::Type::Signup do
|
|
51
51
|
end
|
52
52
|
|
53
53
|
it 'should create an authenticable token' do
|
54
|
-
Card::Auth.authenticate_by_token(@token).should == @
|
54
|
+
Card::Auth.authenticate_by_token(@token).should == @signup.id
|
55
55
|
end
|
56
56
|
|
57
57
|
it 'should notify someone' do
|
58
|
-
ActionMailer::Base.deliveries.last.to.should == ['
|
58
|
+
ActionMailer::Base.deliveries.last.to.should == ['signups@wagn.org']
|
59
59
|
end
|
60
60
|
|
61
61
|
it 'should be activated by an update' do
|
62
62
|
Card::Env.params[:token] = @token
|
63
|
-
@
|
64
|
-
#puts @
|
65
|
-
@
|
66
|
-
@
|
63
|
+
@signup.update_attributes({})
|
64
|
+
#puts @signup.errors.full_messages * "\n"
|
65
|
+
@signup.errors.should be_empty
|
66
|
+
@signup.type_id.should == Card::UserID
|
67
67
|
@account.status.should == 'active'
|
68
68
|
Card[ @account.name ].active?.should be_true
|
69
69
|
end
|
@@ -73,7 +73,7 @@ describe Card::Set::Type::Signup do
|
|
73
73
|
@account.token_card.expire
|
74
74
|
Card::Env.params[:token] = @token
|
75
75
|
|
76
|
-
result = @
|
76
|
+
result = @signup.update_attributes!({})
|
77
77
|
result.should == true # successfully completes save
|
78
78
|
@account.token.should_not == @token # token gets updated
|
79
79
|
success = Card::Env.params[:success]
|
@@ -84,10 +84,47 @@ describe Card::Set::Type::Signup do
|
|
84
84
|
|
85
85
|
|
86
86
|
context 'signup (with approval)' do
|
87
|
+
before do
|
88
|
+
# NOTE: by default Anonymous does not have permission to create User cards.
|
89
|
+
Card::Auth.as_bot do
|
90
|
+
Card.create! :name=>'*request+*to', :content=>'signups@wagn.org'
|
91
|
+
end
|
92
|
+
@signup = Card.create! :name=>'Big Bad Wolf', :type_id=>Card::SignupID, '+*account'=>{
|
93
|
+
'+*email'=>'wolf@wagn.org', '+*password'=>'wolf'
|
94
|
+
}
|
95
|
+
@account = @signup.account
|
96
|
+
end
|
97
|
+
|
98
|
+
|
99
|
+
it 'should create all the necessary cards, but no token' do
|
100
|
+
@signup.type_id.should == Card::SignupID
|
101
|
+
@account.email.should == 'wolf@wagn.org'
|
102
|
+
@account.status.should == 'pending'
|
103
|
+
@account.salt.should_not == ''
|
104
|
+
@account.password.length.should > 10 #encrypted
|
105
|
+
end
|
106
|
+
|
107
|
+
it 'should not create a token' do
|
108
|
+
@account.token.should_not be_present
|
109
|
+
end
|
110
|
+
|
111
|
+
it 'should notify someone' do
|
112
|
+
ActionMailer::Base.deliveries.last.to.should == ['signups@wagn.org']
|
113
|
+
end
|
114
|
+
|
115
|
+
context 'approval' do
|
116
|
+
before do
|
117
|
+
Card::Env.params[:approve] = true
|
118
|
+
Card::Auth.as :joe_admin
|
119
|
+
end
|
120
|
+
|
121
|
+
it 'should create token' do
|
122
|
+
@signup = Card.fetch @signup.id
|
123
|
+
@signup.save!
|
124
|
+
@signup.account.token.should be_present
|
125
|
+
end
|
126
|
+
end
|
87
127
|
|
88
128
|
end
|
89
|
-
|
90
|
-
|
91
|
-
|
92
129
|
|
93
130
|
end
|