mirror of
https://github.com/zammad/zammad
synced 2026-05-24 09:48:36 +00:00
337 lines
8.2 KiB
Ruby
337 lines
8.2 KiB
Ruby
# encoding: utf-8
|
|
require 'browser_test_helper'
|
|
|
|
class AaaGettingStartedTest < TestCase
|
|
def test_a_getting_started
|
|
#return # TODO: temp disable
|
|
if !ENV['MAILBOX_INIT']
|
|
#raise "Need MAILBOX_INIT as ENV variable like export MAILBOX_INIT='unittest01@znuny.com:somepass'"
|
|
puts "NOTICE: Need MAILBOX_INIT as ENV variable like export MAILBOX_INIT='unittest01@znuny.com:somepass'"
|
|
return
|
|
end
|
|
mailbox_user = ENV['MAILBOX_INIT'].split(':')[0]
|
|
mailbox_password = ENV['MAILBOX_INIT'].split(':')[1]
|
|
|
|
@browser = browser_instance
|
|
location( url: browser_url )
|
|
watch_for(
|
|
css: '.setup.wizard',
|
|
value: 'setup new system',
|
|
)
|
|
click( css: '.js-start .btn--primary' )
|
|
watch_for(
|
|
css: '.setup.wizard',
|
|
value: 'admin',
|
|
)
|
|
set(
|
|
css: '.js-admin input[name="firstname"]',
|
|
value: 'Test Master',
|
|
)
|
|
set(
|
|
css: '.js-admin input[name="lastname"]',
|
|
value: 'Agent',
|
|
)
|
|
set(
|
|
css: '.js-admin input[name="email"]',
|
|
value: 'master@example.com',
|
|
)
|
|
set(
|
|
css: '.js-admin input[name="firstname"]',
|
|
value: 'Test Master',
|
|
)
|
|
set(
|
|
css: '.js-admin input[name="password"]',
|
|
value: 'test1234äöüß',
|
|
)
|
|
set(
|
|
css: '.js-admin input[name="password_confirm"]',
|
|
value: 'test1234äöüß',
|
|
)
|
|
click( css: '.js-admin .btn--success' )
|
|
|
|
# getting started - base
|
|
watch_for(
|
|
css: '.js-base h2',
|
|
value: 'Organization',
|
|
)
|
|
set(
|
|
css: '.js-base input[name="organization"]',
|
|
value: 'Some Organization',
|
|
)
|
|
set(
|
|
css: '.js-base input[name="url"]',
|
|
value: 'some host',
|
|
)
|
|
click(
|
|
css: '.js-base .btn--primary',
|
|
)
|
|
watch_for(
|
|
css: 'body',
|
|
value: 'A URL looks like',
|
|
)
|
|
set(
|
|
css: '.js-base input[name="url"]',
|
|
value: browser_url,
|
|
)
|
|
click(
|
|
css: '.js-base .btn--primary',
|
|
)
|
|
|
|
# getting started - email notification
|
|
watch_for(
|
|
css: '.js-outbound h2',
|
|
value: 'Email Notification',
|
|
)
|
|
location_check(
|
|
url: '#getting_started/email_notification',
|
|
)
|
|
click(
|
|
css: '.js-outbound .btn--primary',
|
|
)
|
|
|
|
# getting started - create email account
|
|
watch_for(
|
|
css: '.js-channel h2',
|
|
value: 'Connect Channels',
|
|
)
|
|
location_check(
|
|
url: '#getting_started/channel',
|
|
)
|
|
click(
|
|
css: '.js-channel .email .provider_name',
|
|
)
|
|
set(
|
|
css: '.js-intro input[name="realname"]',
|
|
value: 'Some Realname',
|
|
)
|
|
set(
|
|
css: '.js-intro input[name="email"]',
|
|
value: mailbox_user,
|
|
)
|
|
set(
|
|
css: '.js-intro input[name="password"]',
|
|
value: mailbox_password,
|
|
)
|
|
click(
|
|
css: '.js-intro .btn--primary',
|
|
)
|
|
watch_for(
|
|
css: 'body',
|
|
value: 'verify',
|
|
timeout: 20,
|
|
)
|
|
watch_for(
|
|
css: 'body',
|
|
value: 'invite',
|
|
timeout: 100,
|
|
)
|
|
|
|
# invite agent1
|
|
location_check(
|
|
url: '#getting_started/agents',
|
|
)
|
|
set(
|
|
css: '.js-agent input[name="firstname"]',
|
|
value: 'Agent 1',
|
|
)
|
|
set(
|
|
css: '.js-agent input[name="lastname"]',
|
|
value: 'Test',
|
|
)
|
|
set(
|
|
css: '.js-agent input[name="email"]',
|
|
value: 'agent1@example.com',
|
|
)
|
|
# not needed since we hide group selections if only one group exists
|
|
#click(
|
|
# css: '.js-agent input[name="group_ids"][value="1"]',
|
|
#)
|
|
click(
|
|
css: '.js-agent .btn--success',
|
|
)
|
|
watch_for(
|
|
css: 'body',
|
|
value: 'Invitation sent',
|
|
)
|
|
location_check(
|
|
url: '#getting_started/agents',
|
|
)
|
|
click(
|
|
css: '.js-agent .btn--primary',
|
|
)
|
|
watch_for(
|
|
css: 'body',
|
|
value: 'My Stats',
|
|
)
|
|
location_check(
|
|
url: '#clues',
|
|
#url: '#dashboard',
|
|
)
|
|
end
|
|
|
|
def test_b_accounts_auto
|
|
#return # TODO: temp disable
|
|
accounts = []
|
|
(1..10).each {|count|
|
|
next if !ENV["MAILBOX_AUTO#{count}"]
|
|
mailbox_user = ENV["MAILBOX_AUTO#{count}"].split(':')[0]
|
|
mailbox_password = ENV["MAILBOX_AUTO#{count}"].split(':')[1]
|
|
account = {
|
|
realname: 'auto account',
|
|
email: mailbox_user,
|
|
password: mailbox_password,
|
|
}
|
|
accounts.push account
|
|
}
|
|
if accounts.empty?
|
|
#raise "Need min. MAILBOX_AUTO1 as ENV variable like export MAILBOX_AUTO1='nicole.braun2015@gmail.com:somepass'"
|
|
puts "NOTICE: Need min. MAILBOX_AUTO1 as ENV variable like export MAILBOX_AUTO1='nicole.braun2015@gmail.com:somepass'"
|
|
return
|
|
end
|
|
@browser = browser_instance
|
|
login(
|
|
username: 'master@example.com',
|
|
password: 'test',
|
|
url: browser_url,
|
|
)
|
|
accounts.each {|account|
|
|
|
|
# getting started - auto mail
|
|
location( url: browser_url + '/#getting_started/channel' )
|
|
click(
|
|
css: '.js-channel .email .provider_name',
|
|
)
|
|
set(
|
|
css: '.js-intro input[name="realname"]',
|
|
value: account[:realname],
|
|
)
|
|
set(
|
|
css: '.js-intro input[name="email"]',
|
|
value: account[:email],
|
|
)
|
|
set(
|
|
css: '.js-intro input[name="password"]',
|
|
value: account[:password],
|
|
)
|
|
click(
|
|
css: '.js-intro .btn--primary',
|
|
)
|
|
watch_for(
|
|
css: 'body',
|
|
value: 'verify',
|
|
timeout: 20,
|
|
)
|
|
watch_for(
|
|
css: 'body',
|
|
value: 'invite',
|
|
timeout: 100,
|
|
)
|
|
location_check(
|
|
url: '#getting_started/agents',
|
|
)
|
|
}
|
|
end
|
|
|
|
def test_b_accounts_manual
|
|
#return # TODO: temp disable
|
|
accounts = []
|
|
(1..10).each {|count|
|
|
next if !ENV["MAILBOX_MANUAL#{count}"]
|
|
mailbox_user = ENV["MAILBOX_MANUAL#{count}"].split(':')[0]
|
|
mailbox_password = ENV["MAILBOX_MANUAL#{count}"].split(':')[1]
|
|
mailbox_inbound = ENV["MAILBOX_MANUAL#{count}"].split(':')[2]
|
|
mailbox_outbound = ENV["MAILBOX_MANUAL#{count}"].split(':')[3]
|
|
account = {
|
|
realname: 'manual account',
|
|
email: mailbox_user,
|
|
password: mailbox_password,
|
|
inbound: {
|
|
'options::host' => mailbox_inbound,
|
|
},
|
|
outbound: {
|
|
'options::host' => mailbox_outbound,
|
|
},
|
|
}
|
|
accounts.push account
|
|
}
|
|
if accounts.empty?
|
|
#raise "Need min. MAILBOX_MANUAL1 as ENV variable like export MAILBOX_MANUAL1='nicole.bauer2015@yahoo.de:somepass:imap.mail.yahoo.com:smtp.mail.yahoo.com'"
|
|
puts "NOTICE: Need min. MAILBOX_MANUAL1 as ENV variable like export MAILBOX_MANUAL1='nicole.bauer2015@yahoo.de:somepass:imap.mail.yahoo.com:smtp.mail.yahoo.com'"
|
|
return
|
|
end
|
|
|
|
@browser = browser_instance
|
|
login(
|
|
username: 'master@example.com',
|
|
password: 'test',
|
|
url: browser_url,
|
|
)
|
|
accounts.each {|account|
|
|
|
|
# getting started - manual mail
|
|
location( url: browser_url + '/#getting_started/channel' )
|
|
|
|
click(
|
|
css: '.js-channel .email .provider_name',
|
|
)
|
|
set(
|
|
css: '.js-intro input[name="realname"]',
|
|
value: account[:realname],
|
|
)
|
|
set(
|
|
css: '.js-intro input[name="email"]',
|
|
value: account[:email],
|
|
)
|
|
set(
|
|
css: '.js-intro input[name="password"]',
|
|
value: account[:password],
|
|
)
|
|
click(
|
|
css: '.js-intro .btn--primary',
|
|
)
|
|
watch_for(
|
|
css: '.js-inbound h2',
|
|
value: 'inbound',
|
|
timeout: 220,
|
|
)
|
|
watch_for(
|
|
css: '.js-inbound',
|
|
value: 'manual',
|
|
)
|
|
set(
|
|
css: '.js-inbound input[name="options::host"]',
|
|
value: account[:inbound]['options::host'],
|
|
)
|
|
click(
|
|
css: '.js-inbound .btn--primary',
|
|
)
|
|
watch_for(
|
|
css: '.js-outbound h2',
|
|
value: 'outbound',
|
|
)
|
|
select(
|
|
css: '.js-outbound select[name="adapter"]',
|
|
value: 'SMTP - configure your own outgoing SMTP settings',
|
|
)
|
|
set(
|
|
css: '.js-outbound input[name="options::host"]',
|
|
value: account[:outbound]['options::host'],
|
|
)
|
|
click(
|
|
css: '.js-outbound .btn--primary',
|
|
)
|
|
watch_for(
|
|
css: 'body',
|
|
value: 'verify',
|
|
)
|
|
watch_for(
|
|
css: 'body',
|
|
value: 'invite',
|
|
timeout: 190,
|
|
)
|
|
location_check(
|
|
url: '#getting_started/agents',
|
|
)
|
|
}
|
|
end
|
|
end
|