forked from yoon/radiant-top-level-page-extension
/
top_level_page_users_scenario.rb
41 lines (37 loc) · 1.21 KB
/
top_level_page_users_scenario.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class TopLevelPageUsersScenario < Scenario::Base
# uses :users
def load
create_user "TopLevelSet", :page_id => Page.find_by_title("Child").id
create_user "TopLevelNil"
end
helpers do
def create_user(name, attributes={})
create_model :user, name.symbolize, user_attributes(attributes.update(:name => name))
end
def user_attributes(attributes={})
name = attributes[:name] || "John Doe"
symbol = name.symbolize
attributes = {
:name => name,
:email => "#{symbol}@example.com",
:login => symbol.to_s,
:password => "password"
}.merge(attributes)
attributes[:password_confirmation] = attributes[:password]
attributes
end
def user_params(attributes={})
password = attributes[:password] || "password"
user_attributes(attributes).update(:password => password, :password_confirmation => password)
end
def login_as(user)
login_user = user.is_a?(User) ? user : users(user)
flunk "Can't login as non-existing user #{user.to_s}." unless login_user
request.session['user_id'] = login_user.id
login_user
end
def logout
request.session['user_id'] = nil
end
end
end