trabajo-afectivo/test/browser/aaa_getting_started_test.rb

371 lines
8.8 KiB
Ruby
Raw Normal View History

require 'browser_test_helper'
class AaaGettingStartedTest < TestCase
2014-11-18 21:09:01 +00:00
def test_a_getting_started
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
2014-11-18 21:09:01 +00:00
end
mailbox_user = ENV['MAILBOX_INIT'].split(':')[0]
mailbox_password = ENV['MAILBOX_INIT'].split(':')[1]
2014-11-16 23:46:39 +00:00
2015-03-01 23:16:36 +00:00
@browser = browser_instance
2016-03-23 07:24:25 +00:00
location(url: browser_url)
2015-03-01 23:16:36 +00:00
watch_for(
css: '.setup.wizard',
value: 'setup new system',
2015-03-01 23:16:36 +00:00
)
2016-03-23 07:24:25 +00:00
click(css: '.js-start .btn--primary')
2015-09-29 08:51:15 +00:00
watch_for(
css: '.setup.wizard',
value: 'admin',
)
2015-03-01 23:16:36 +00:00
set(
css: '.js-admin input[name="firstname"]',
value: 'Test Master',
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-admin input[name="lastname"]',
value: 'Agent',
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-admin input[name="email"]',
value: 'master@example.com',
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-admin input[name="firstname"]',
value: 'Test Master',
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-admin input[name="password"]',
value: 'test1234äöüß',
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-admin input[name="password_confirm"]',
value: 'test1234äöüß',
2015-03-01 23:16:36 +00:00
)
2016-03-23 07:24:25 +00:00
click(css: '.js-admin .btn--success')
2013-04-21 23:03:19 +00:00
2015-03-01 23:16:36 +00:00
# getting started - base
2015-08-28 00:53:14 +00:00
watch_for(
css: '.js-base h2',
value: 'Organization',
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-base input[name="organization"]',
value: 'Some Organization',
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-base input[name="url"]',
value: 'some host',
2015-03-01 23:16:36 +00:00
)
click(
css: '.js-base .btn--primary',
2015-03-01 23:16:36 +00:00
)
watch_for(
css: 'body',
value: 'A URL looks like',
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-base input[name="url"]',
2016-02-01 22:21:47 +00:00
value: browser_url,
2015-03-01 23:16:36 +00:00
)
click(
css: '.js-base .btn--primary',
2015-03-01 23:16:36 +00:00
)
2015-08-28 00:53:14 +00:00
# getting started - email notification
2015-03-01 23:16:36 +00:00
watch_for(
2015-08-28 00:53:14 +00:00
css: '.js-outbound h2',
value: 'Email Notification',
2015-03-01 23:16:36 +00:00
)
location_check(
2015-08-28 00:53:14 +00:00
url: '#getting_started/email_notification',
)
click(
css: '.js-outbound .btn--primary',
2015-03-01 23:16:36 +00:00
)
2014-11-16 23:46:39 +00:00
2015-03-01 23:16:36 +00:00
# getting started - create email account
2015-08-28 00:53:14 +00:00
watch_for(
css: '.js-channel h2',
value: 'Connect Channels',
2015-03-01 23:16:36 +00:00
)
2015-08-28 00:53:14 +00:00
location_check(
url: '#getting_started/channel',
)
2015-03-01 23:16:36 +00:00
click(
css: '.js-channel .email .provider_name',
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-intro input[name="realname"]',
value: 'Some Realname',
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-intro input[name="email"]',
value: mailbox_user,
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-intro input[name="password"]',
value: mailbox_password,
2015-03-01 23:16:36 +00:00
)
click(
css: '.js-intro .btn--primary',
2015-03-01 23:16:36 +00:00
)
watch_for(
css: 'body',
value: 'verify',
timeout: 20,
2015-03-01 23:16:36 +00:00
)
watch_for(
css: 'body',
value: 'invite',
timeout: 100,
2015-03-01 23:16:36 +00:00
)
2014-11-16 23:46:39 +00:00
2015-03-01 23:16:36 +00:00
# invite agent1
2015-08-28 00:53:14 +00:00
location_check(
url: '#getting_started/agents',
2015-03-01 23:16:36 +00:00
)
watch_for(
css: '.js-agent input[name="firstname"]',
)
2015-03-01 23:16:36 +00:00
set(
css: '.js-agent input[name="firstname"]',
value: 'Agent 1',
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-agent input[name="lastname"]',
value: 'Test',
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-agent input[name="email"]',
value: 'agent1@example.com',
2015-03-01 23:16:36 +00:00
)
# not needed since we hide group selections if only one group exists
#click(
# css: '.js-agent input[name="group_ids"][value="1"]',
#)
2015-03-01 23:16:36 +00:00
click(
css: '.js-agent .btn--success',
2015-03-01 23:16:36 +00:00
)
watch_for(
css: 'body',
value: 'Invitation sent',
2015-03-01 23:16:36 +00:00
)
location_check(
url: '#getting_started/agents',
2015-03-01 23:16:36 +00:00
)
click(
css: '.js-agent .btn--primary',
2015-03-01 23:16:36 +00:00
)
watch_for(
css: 'body',
value: 'My Stats',
2015-03-01 23:16:36 +00:00
)
location_check(
2016-02-11 02:31:18 +00:00
url: '#clues',
)
clues_close(
optional: false,
)
# verify organization and fqdn
click(
css: 'a[href="#manage"]',
)
click(
css: '.content.active a[href="#settings/branding"]',
)
match(
css: '.content.active input[name="organization"]',
value: 'Some Organization',
)
click(
css: '.content.active a[href="#settings/system"]',
)
fqdn = nil
if browser_url =~ %r{://(.+?)(:.+?|/.+?|)$}
fqdn = $1
end
raise "Unable to get fqdn based on #{browser_url}" if !fqdn
match(
css: '.content.active input[name="fqdn"]',
value: fqdn,
2015-03-01 23:16:36 +00:00
)
end
2014-11-18 21:09:01 +00:00
def test_b_accounts_auto
#return # TODO: temp disable
accounts = []
(1..10).each do |count|
2015-04-27 19:56:07 +00:00
next if !ENV["MAILBOX_AUTO#{count}"]
2015-04-27 19:56:07 +00:00
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
end
2017-11-23 08:09:44 +00:00
if accounts.blank?
#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
2015-03-01 23:16:36 +00:00
@browser = browser_instance
login(
username: 'master@example.com',
password: 'test',
url: browser_url,
2015-03-01 23:16:36 +00:00
)
accounts.each do |account|
2015-03-01 23:16:36 +00:00
# getting started - auto mail
2016-03-23 07:24:25 +00:00
location(url: browser_url + '/#getting_started/channel')
2015-03-01 23:16:36 +00:00
click(
css: '.js-channel .email .provider_name',
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-intro input[name="realname"]',
value: account[:realname],
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-intro input[name="email"]',
value: account[:email],
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-intro input[name="password"]',
value: account[:password],
2015-03-01 23:16:36 +00:00
)
click(
css: '.js-intro .btn--primary',
2015-03-01 23:16:36 +00:00
)
watch_for(
css: 'body',
value: 'verify',
timeout: 20,
2015-03-01 23:16:36 +00:00
)
watch_for(
css: 'body',
value: 'invite',
timeout: 100,
2015-03-01 23:16:36 +00:00
)
location_check(
url: '#getting_started/agents',
2015-03-01 23:16:36 +00:00
)
end
2014-11-18 21:09:01 +00:00
end
def test_b_accounts_manual
#return # TODO: temp disable
accounts = []
(1..10).each do |count|
2015-04-27 19:56:07 +00:00
next if !ENV["MAILBOX_MANUAL#{count}"]
2015-04-27 19:56:07 +00:00
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: {
2014-11-18 21:09:01 +00:00
'options::host' => mailbox_inbound,
},
outbound: {
2014-11-18 21:09:01 +00:00
'options::host' => mailbox_outbound,
},
}
accounts.push account
end
2017-11-23 08:09:44 +00:00
if accounts.blank?
#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
2015-03-01 23:16:36 +00:00
@browser = browser_instance
login(
username: 'master@example.com',
password: 'test',
url: browser_url,
2015-03-01 23:16:36 +00:00
)
accounts.each do |account|
2015-03-01 23:16:36 +00:00
# getting started - manual mail
2016-03-23 07:24:25 +00:00
location(url: browser_url + '/#getting_started/channel')
2015-03-01 23:16:36 +00:00
click(
css: '.js-channel .email .provider_name',
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-intro input[name="realname"]',
value: account[:realname],
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-intro input[name="email"]',
value: account[:email],
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-intro input[name="password"]',
value: account[:password],
2015-03-01 23:16:36 +00:00
)
click(
css: '.js-intro .btn--primary',
2015-03-01 23:16:36 +00:00
)
watch_for(
css: '.js-inbound h2',
value: 'inbound',
timeout: 220,
2015-03-01 23:16:36 +00:00
)
watch_for(
css: '.js-inbound',
value: 'manual',
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-inbound input[name="options::host"]',
value: account[:inbound]['options::host'],
2015-03-01 23:16:36 +00:00
)
click(
css: '.js-inbound .btn--primary',
2015-03-01 23:16:36 +00:00
)
watch_for(
css: '.js-outbound h2',
value: 'outbound',
2015-03-01 23:16:36 +00:00
)
select(
css: '.js-outbound select[name="adapter"]',
value: 'SMTP - configure your own outgoing SMTP settings',
2015-03-01 23:16:36 +00:00
)
set(
css: '.js-outbound input[name="options::host"]',
value: account[:outbound]['options::host'],
2015-03-01 23:16:36 +00:00
)
click(
css: '.js-outbound .btn--primary',
2015-03-01 23:16:36 +00:00
)
watch_for(
css: 'body',
value: 'verify',
2015-03-01 23:16:36 +00:00
)
watch_for(
css: 'body',
value: 'invite',
timeout: 190,
2015-03-01 23:16:36 +00:00
)
location_check(
url: '#getting_started/agents',
2015-03-01 23:16:36 +00:00
)
end
2014-11-18 21:09:01 +00:00
end
end