trabajo-afectivo/test/browser/aaa_getting_started_test.rb
2022-01-19 09:31:25 +01:00

205 lines
4.6 KiB
Ruby

# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
require 'browser_test_helper'
class AaaGettingStartedTest < TestCase
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
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: 'Set up a new system',
)
click(css: '.js-start .btn--primary')
watch_for(
css: '.setup.wizard',
value: 'admin',
)
set(
css: '.js-admin input[name="firstname"]',
value: 'Test Admin',
)
set(
css: '.js-admin input[name="lastname"]',
value: 'Agent',
)
set(
css: '.js-admin input[name="email"]',
value: 'admin@example.com',
)
set(
css: '.js-admin input[name="firstname"]',
value: 'Test Admin',
)
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 this',
)
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',
)
watch_for(
css: '.js-agent input[name="firstname"]',
)
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"]',
# )
check(css: '.js-agent .js-groupListItem[value=full]')
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',
)
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,
)
end
end