trabajo-afectivo/test/browser/admin_channel_email_test.rb
2021-09-20 12:47:05 +02:00

180 lines
4.3 KiB
Ruby

# Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/
require 'browser_test_helper'
class AdminChannelEmailTest < TestCase
def test_account_add
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
login(
username: 'admin@example.com',
password: 'test',
url: browser_url,
)
tasks_close_all
click(css: 'a[href="#manage"]')
click(css: '.content.active a[href="#channels/email"]')
# check if postmaster filter are shown
click(css: '.content.active a[href="#c-filter"]')
match(
css: '.content.active #c-filter .overview',
value: 'No Entries',
)
# check if signatures are shown
click(css: '.content.active a[href="#c-signature"]')
match(
css: '.content.active #c-signature .overview',
value: 'default',
)
click(css: '.content.active a[href="#c-account"]')
click(css: '.content.active .js-channelNew')
modal_ready
set(
css: '.modal input[name="realname"]',
value: 'My System',
)
set(
css: '.modal input[name="email"]',
value: mailbox_user,
)
set(
css: '.modal input[name="password"]',
value: mailbox_password,
)
select(
css: '.modal select[name="group_id"]',
value: 'Users',
)
click(css: '.modal button.js-submit')
sleep 4
watch_for(
css: '.modal',
value: '(already exists|unknown mailbox)',
)
click(css: '.modal .js-close')
# delete all channels
loop do
break if !@browser.find_elements(css: '.content.active .js-channelDelete')[0]
click(css: '.content.active .js-channelDelete')
sleep 2
# flanky
click(css: '.modal .js-submit')
sleep 2
end
# re-create
click(css: '.content.active .js-channelNew')
modal_ready
set(
css: '.modal input[name="realname"]',
value: 'My System',
)
set(
css: '.modal input[name="email"]',
value: mailbox_user,
)
set(
css: '.modal input[name="password"]',
value: mailbox_password,
)
select(
css: '.modal select[name="group_id"]',
value: 'Users',
)
click(css: '.modal button.js-submit')
modal_disappear(timeout: 20)
watch_for(
css: '.content.active',
value: mailbox_user,
)
# set invalid folder
click(css: '.content.active .js-editInbound')
modal_ready
set(
css: '.modal input[name="options::folder"]',
value: 'not_existing_folder',
)
click(css: '.modal .js-inbound button.js-submit')
watch_for(
css: '.modal',
value: 'Mailbox doesn\'t exist',
)
end
# test the creation and cloning of Postmaster filters
# confirm fix for issue #2170 - Cannot clone PostmasterFilter
def test_filter_clone
filter_name = "Test Filter #{SecureRandom.uuid}"
@browser = browser_instance
login(
username: 'admin@example.com',
password: 'test',
url: browser_url,
)
tasks_close_all
click(css: 'a[href="#manage"]')
click(css: '.content.active a[href="#channels/email"]')
click(css: '.content.active a[href="#c-filter"]')
# create a new email filter
click(css: '.content.active a[data-type="new"]')
modal_ready
set(
css: '.modal input[name="name"]',
value: filter_name,
)
set(
css: '.modal input[name="match::from::value"]',
value: 'target',
)
click(css: '.modal .js-submit')
modal_disappear
watch_for(
css: '.content.active .table',
value: filter_name,
)
# now clone filter that we just created
click(css: '.content.active .table .dropdown .btn--table')
click(css: '.content.active .table .dropdown .js-clone')
modal_ready
click(css: '.modal .js-submit')
modal_disappear
# confirm the clone exists in the table
watch_for(
css: '.content.active .table',
value: "Clone: #{filter_name}",
)
end
end