wagn 1.13.0.pre → 1.13.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|