-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup_openfire.rb
47 lines (43 loc) · 1.23 KB
/
setup_openfire.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
#!/usr/bin/env ruby
require 'rubygems'
require 'mechanize'
require 'socket'
openfire = {
:domain => Socket.gethostname,
:password => "admin"
}
# Returns the form element, based on the given id
def get_form_by_action(page, action)
form = page.search(".//form[@action='#{action}']")[0]
form = Mechanize::Form.new(form, page.mech, page)
return form
end
def title(page)
puts page.search(".//title")[0].text
end
agent = Mechanize.new
agent.get("http://localhost:9090/index.jsp") do |page|
page = page.form_with(:name => "sform").click_button
title(page)
page = page.form_with(:name => "f") do |form|
form['domain'] = openfire[:domain]
end.click_button
title(page)
form = get_form_by_action(page, "setup-datasource-settings.jsp")
form.radiobuttons_with(:name => "mode").each do |field|
if field.value == "embedded"
field.check
else
field.uncheck
end
end
button = form.button_with(:value => "Continue")
page = form.click_button(button)
page = page.form_with(:name => "profileform").click_button
title(page)
page = page.form_with(:name => "acctform") do |form|
form['newPassword'] = openfire[:password]
form['newPasswordConfirm'] = openfire[:password]
end.click_button
title(page)
end