-
Notifications
You must be signed in to change notification settings - Fork 433
/
users_test.rb
165 lines (131 loc) · 4.65 KB
/
users_test.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
# -*- coding: utf-8 -*-
require 'test_helper'
class Webui::EditPackageUsersTest < Webui::IntegrationTest
# ============================================================================
#
def edit_user options
assert !options[:name].blank?
row = find(:css, "tr#user-#{options[:name]}")
cell = row.all(:css, "td")
def edit_role cell, new_value
unless new_value.nil?
input = cell.first(:css, "input")
input.click unless input.selected? == new_value
end
end
edit_role cell[1], options[:maintainer]
edit_role cell[2], options[:bugowner]
edit_role cell[3], options[:reviewer]
edit_role cell[4], options[:downloader]
edit_role cell[5], options[:reader]
end
# ============================================================================
#
def add_user user, role, options = {}
find(:id, 'add-user').click
page.must_have_text %r{Add New User to}
page.must_have_field "userid"
page.must_have_selector "select#role"
curl = page.current_url
options[:expect] ||= :success
fill_in 'userid', with: user
find('select#role').select(role)
click_button('Add user')
if options[:expect] == :success
flash_message_type.must_equal :info
flash_message.must_equal "Added user #{user} with role #{role}"
assert page.current_url.end_with? @userspath
elsif options[:expect] == :unknown_user
flash_message_type.must_equal :alert
flash_message.must_equal "Couldn't find User with login = #{user}".strip
assert curl, page.current_url
# go back manually
visit @userspath
else
raise ArgumentError
end
end
# ============================================================================
#
def delete_user user
# overwrite confirm function to avoid the dialog - they are very racy with selenium
page.evaluate_script('window.confirm = function() { return true; }')
find(:css, "table#user_table tr#user-#{user} a.remove-user").click
flash_message_type.must_equal :info
flash_message.must_equal "Removed user #{user}"
end
test "add and edit package people" do
login_user("fred", "geröllheimer")
@project = 'kde4'
@package = 'kdelibs'
@userspath = webui_engine.package_users_path(project: @project, package: @package)
visit @userspath
add_user "user2", "maintainer"
add_user "user3", "bugowner"
add_user "user4", "reviewer"
add_user "user5", "downloader"
add_user "user6", "reader"
add_user "user6", "reviewer"
add_user "user6", "downloader"
add_user "sadasxsacxsacsa", "reader", :expect => :unknown_user
add_user "", "maintainer", :expect => :unknown_user
add_user '~@$@#%#%@$0-=<m,.,\/\/12`;.{{}}{}', "maintainer", :expect => :unknown_user
# add_package_role_to_username_with_question_sign do
add_user 'still-buggy?', "maintainer", :expect => :unknown_user
edit_user :name => :user3,
:reviewer => true,
:downloader => true
edit_user :name => :user3,
:reviewer => false,
:downloader => false
edit_user :name => :user6,
:maintainer => false,
:bugowner => false,
:reviewer => false,
:downloader => false,
:reader => false
edit_user :name => :user4,
:maintainer => true,
:bugowner => true,
:reviewer => true,
:downloader => true,
:reader => true
delete_user :user4
page.wont_have_selector "table#user_table tr#user-user4"
end
test "add and edit project users" do
login_user("fred", "geröllheimer")
@project = 'kde4'
@userspath = webui_engine.project_users_path(project: @project)
visit @userspath
add_user "user2", "maintainer"
add_user "user3", "bugowner"
add_user "user4", "reviewer"
add_user "user5", "downloader"
add_user "user6", "reader"
add_user "user6", "reviewer"
add_user "user6", "downloader"
add_user "sadasxsacxsacsa", "reader", :expect => :unknown_user
add_user "", "maintainer", :expect => :unknown_user
add_user '~@$@#%#%@$0-=<m,.,\/\/12`;.{{}}{}', "maintainer", :expect => :unknown_user
add_user 'still-buggy?', "maintainer", :expect => :unknown_user
edit_user :name => :user3,
:reviewer => true,
:downloader => true
edit_user :name => :user3,
:reviewer => false,
:downloader => false
edit_user :name => :user6,
:maintainer => false,
:bugowner => false,
:reviewer => false,
:downloader => false,
:reader => false
edit_user :name => :user4,
:maintainer => true,
:bugowner => true,
:reviewer => true,
:downloader => true,
:reader => true
end
end