Improved speed of tests.
This commit is contained in:
parent
6baf72a3c9
commit
809246aab5
2 changed files with 151 additions and 218 deletions
|
@ -4,185 +4,132 @@ require 'browser_test_helper'
|
||||||
class AgentOrganizationProfileTest < TestCase
|
class AgentOrganizationProfileTest < TestCase
|
||||||
def test_search_and_edit_verify_in_second
|
def test_search_and_edit_verify_in_second
|
||||||
message = 'comment 1 ' + rand(99999999999999999).to_s
|
message = 'comment 1 ' + rand(99999999999999999).to_s
|
||||||
tests = [
|
|
||||||
{
|
|
||||||
:name => 'start',
|
|
||||||
:instance1 => browser_instance,
|
|
||||||
:instance2 => browser_instance,
|
|
||||||
:instance1_username => 'master@example.com',
|
|
||||||
:instance1_password => 'test',
|
|
||||||
:instance2_username => 'agent1@example.com',
|
|
||||||
:instance2_password => 'test',
|
|
||||||
:url => browser_url,
|
|
||||||
:action => [
|
|
||||||
{
|
|
||||||
:where => :instance1,
|
|
||||||
:execute => 'close_all_tasks',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
:where => :instance2,
|
|
||||||
:execute => 'close_all_tasks',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
:where => :instance1,
|
|
||||||
:execute => 'search_organization',
|
|
||||||
:term => 'Zammad Foundation',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
:where => :instance2,
|
|
||||||
:execute => 'search_organization',
|
|
||||||
:term => 'Zammad Foundation',
|
|
||||||
},
|
|
||||||
|
|
||||||
# update note
|
browser1 = browser_instance
|
||||||
{
|
login(
|
||||||
:where => :instance1,
|
:browser => browser1,
|
||||||
:execute => 'set',
|
:username => 'master@example.com',
|
||||||
:css => '.active [data-name="note"]',
|
:password => 'test',
|
||||||
:value => message,
|
:url => browser_url,
|
||||||
},
|
)
|
||||||
{
|
tasks_close_all(
|
||||||
:where => :instance1,
|
:browser => browser1,
|
||||||
:execute => 'click',
|
)
|
||||||
:css => '.active .profile',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
:where => :instance1,
|
|
||||||
:execute => 'wait',
|
|
||||||
:value => 3,
|
|
||||||
},
|
|
||||||
|
|
||||||
# verify
|
browser2 = browser_instance
|
||||||
{
|
login(
|
||||||
:where => :instance2,
|
:browser => browser2,
|
||||||
:execute => 'match',
|
:username => 'agent1@example.com',
|
||||||
:css => '.active .profile-window',
|
:password => 'test',
|
||||||
:value => message,
|
:url => browser_url,
|
||||||
:match_result => true,
|
)
|
||||||
},
|
tasks_close_all(
|
||||||
],
|
:browser => browser2,
|
||||||
},
|
)
|
||||||
]
|
|
||||||
browser_double_test(tests)
|
organization_open_by_search(
|
||||||
|
:browser => browser1,
|
||||||
|
:value => 'Zammad Foundation',
|
||||||
|
)
|
||||||
|
organization_open_by_search(
|
||||||
|
:browser => browser2,
|
||||||
|
:value => 'Zammad Foundation',
|
||||||
|
)
|
||||||
|
|
||||||
|
# update note
|
||||||
|
set(
|
||||||
|
:browser => browser1,
|
||||||
|
:css => '.active [data-name="note"]',
|
||||||
|
:value => message,
|
||||||
|
)
|
||||||
|
click(
|
||||||
|
:browser => browser1,
|
||||||
|
:css => '.active .profile',
|
||||||
|
)
|
||||||
|
|
||||||
|
# verify
|
||||||
|
watch_for(
|
||||||
|
:browser => browser2,
|
||||||
|
:css => '.active .profile-window',
|
||||||
|
:value => message,
|
||||||
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_search_and_edit_in_one
|
def test_search_and_edit_in_one
|
||||||
message = '1 ' + rand(99999999).to_s
|
message = '1 ' + rand(99999999).to_s
|
||||||
tests = [
|
|
||||||
{
|
|
||||||
:name => 'search and edit',
|
|
||||||
:action => [
|
|
||||||
{
|
|
||||||
:execute => 'close_all_tasks',
|
|
||||||
},
|
|
||||||
|
|
||||||
# search and open org
|
@browser = browser_instance
|
||||||
{
|
login(
|
||||||
:execute => 'search_organization',
|
:username => 'master@example.com',
|
||||||
:term => 'Zammad Foundation',
|
:password => 'test',
|
||||||
},
|
:url => browser_url,
|
||||||
{
|
)
|
||||||
:execute => 'match',
|
tasks_close_all()
|
||||||
:css => '.active .profile-window',
|
sleep 1
|
||||||
:value => 'note',
|
|
||||||
:match_result => true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
:execute => 'match',
|
|
||||||
:css => '.active .profile-window',
|
|
||||||
:value => 'member',
|
|
||||||
:match_result => true,
|
|
||||||
|
|
||||||
},
|
# search and open org
|
||||||
|
organization_open_by_search(
|
||||||
|
:value => 'Zammad Foundation',
|
||||||
|
)
|
||||||
|
watch_for(
|
||||||
|
:css => '.active .profile-window',
|
||||||
|
:value => 'note',
|
||||||
|
)
|
||||||
|
watch_for(
|
||||||
|
:css => '.active .profile-window',
|
||||||
|
:value => 'member',
|
||||||
|
)
|
||||||
|
|
||||||
# update note
|
# update note
|
||||||
{
|
set(
|
||||||
:execute => 'set',
|
:css => '.active [data-name="note"]',
|
||||||
:css => '.active [data-name="note"]',
|
:value => 'some note 123'
|
||||||
:value => 'some note 123'
|
)
|
||||||
},
|
click( :css => '.active .profile' )
|
||||||
{
|
sleep 1
|
||||||
:execute => 'click',
|
|
||||||
:css => '.active .profile',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
:execute => 'wait',
|
|
||||||
:value => 1,
|
|
||||||
},
|
|
||||||
|
|
||||||
# check and change note again in edit screen
|
# check and change note again in edit screen
|
||||||
{
|
click( :css => '.active .js-action .select-arrow' )
|
||||||
:execute => 'click',
|
click( :css => '.active .js-action a[data-type="edit"]' )
|
||||||
:css => '.active .js-action .select-arrow',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
:execute => 'click',
|
|
||||||
:css => '.active .js-action a[data-type="edit"]',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
:execute => 'wait',
|
|
||||||
:value => 1,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
:execute => 'match',
|
|
||||||
:css => '.active .modal',
|
|
||||||
:value => 'note',
|
|
||||||
:match_result => true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
:execute => 'match',
|
|
||||||
:css => '.active .modal',
|
|
||||||
:value => 'some note 123',
|
|
||||||
:match_result => true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
:execute => 'set',
|
|
||||||
:css => '.active .modal [data-name="note"]',
|
|
||||||
:value => 'some note abc'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
:execute => 'click',
|
|
||||||
:css => '.active .modal button.js-submit',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
:execute => 'wait',
|
|
||||||
:value => 4,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
:execute => 'match',
|
|
||||||
:css => '.active .profile-window',
|
|
||||||
:value => 'some note abc',
|
|
||||||
:match_result => true,
|
|
||||||
},
|
|
||||||
|
|
||||||
# create new ticket
|
watch_for(
|
||||||
{
|
:css => '.active .modal',
|
||||||
:execute => 'create_ticket',
|
:value => 'note',
|
||||||
:group => 'Users',
|
)
|
||||||
:subject => 'org profile check ' + message,
|
watch_for(
|
||||||
:body => 'org profile check ' + message,
|
:css => '.active .modal',
|
||||||
},
|
:value => 'some note 123',
|
||||||
{
|
)
|
||||||
:execute => 'wait',
|
|
||||||
:value => 4,
|
|
||||||
},
|
|
||||||
|
|
||||||
# switch to org tab, verify if ticket is shown
|
set(
|
||||||
{
|
:css => '.active .modal [data-name="note"]',
|
||||||
:execute => 'search_organization',
|
:value => 'some note abc',
|
||||||
:term => 'Zammad Foundation',
|
)
|
||||||
},
|
click( :css => '.active .modal button.js-submit' )
|
||||||
|
|
||||||
{
|
watch_for(
|
||||||
:execute => 'match',
|
:css => '.active .profile-window',
|
||||||
:css => '.active .profile-window',
|
:value => 'some note abc',
|
||||||
:value => 'org profile check ' + message,
|
)
|
||||||
:match_result => true,
|
|
||||||
},
|
|
||||||
|
|
||||||
],
|
# create new ticket
|
||||||
|
ticket_create(
|
||||||
|
:data => {
|
||||||
|
:customer => 'nico',
|
||||||
|
:group => 'Users',
|
||||||
|
:title => 'org profile check ' + message,
|
||||||
|
:body => 'org profile check ' + message,
|
||||||
},
|
},
|
||||||
]
|
)
|
||||||
browser_signle_test_with_login(tests, { :username => 'master@example.com' })
|
sleep 1
|
||||||
|
|
||||||
|
# switch to org tab, verify if ticket is shown
|
||||||
|
organization_open_by_search(
|
||||||
|
:value => 'Zammad Foundation',
|
||||||
|
)
|
||||||
|
watch_for(
|
||||||
|
:css => '.active .profile-window',
|
||||||
|
:value => 'org profile check ' + message,
|
||||||
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
|
@ -887,6 +887,45 @@ class TestCase < Test::Unit::TestCase
|
||||||
overviews
|
overviews
|
||||||
end
|
end
|
||||||
|
|
||||||
|
=begin
|
||||||
|
|
||||||
|
organization_open_by_search(
|
||||||
|
:browser => browser2,
|
||||||
|
:value => 'some value',
|
||||||
|
)
|
||||||
|
|
||||||
|
=end
|
||||||
|
|
||||||
|
def organization_open_by_search(params = {})
|
||||||
|
instance = params[:browser] || @browser
|
||||||
|
|
||||||
|
element = instance.find_elements( { :css => '#global-search' } )[0]
|
||||||
|
|
||||||
|
element.click
|
||||||
|
element.clear
|
||||||
|
element.send_keys( params[:value] )
|
||||||
|
sleep 3
|
||||||
|
instance.find_elements( { :css => '.search .empty-search' } )[0].click
|
||||||
|
sleep 0.5
|
||||||
|
text = instance.find_elements( { :css => '#global-search' } )[0].attribute('value')
|
||||||
|
if !text
|
||||||
|
raise "#global-search is not empty!"
|
||||||
|
end
|
||||||
|
element = instance.find_elements( { :css => '#global-search' } )[0]
|
||||||
|
element.click
|
||||||
|
element.clear
|
||||||
|
element.send_keys( params[:value] )
|
||||||
|
sleep 2
|
||||||
|
element = instance.find_element( { :partial_link_text => params[:value] } ).click
|
||||||
|
name = instance.find_elements( { :css => '.active h1' } )[0].text
|
||||||
|
if name !~ /#{params[:value]}/
|
||||||
|
raise "unable to search/find org #{params[:value]}!"
|
||||||
|
return
|
||||||
|
end
|
||||||
|
assert( true, "org #{params[:value]} found" )
|
||||||
|
true
|
||||||
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
|
||||||
user_open_by_search(
|
user_open_by_search(
|
||||||
|
@ -1457,59 +1496,6 @@ class TestCase < Test::Unit::TestCase
|
||||||
assert( false, "(#{test[:name]}) ticket creation failed, can't get zoom url" )
|
assert( false, "(#{test[:name]}) ticket creation failed, can't get zoom url" )
|
||||||
return
|
return
|
||||||
|
|
||||||
# search user
|
|
||||||
elsif action[:execute] == 'search_user'
|
|
||||||
element = instance.find_elements( { :css => '#global-search' } )[0]
|
|
||||||
element.click
|
|
||||||
element.clear
|
|
||||||
if @stack
|
|
||||||
action[:term].gsub! '###stack###', @stack
|
|
||||||
end
|
|
||||||
element.send_keys( action[:term] )
|
|
||||||
sleep 3
|
|
||||||
element = instance.find_element( { :partial_link_text => action[:term] } ).click
|
|
||||||
name = instance.find_elements( { :css => '.active h1' } )[0].text
|
|
||||||
if name !~ /#{action[:term]}/
|
|
||||||
assert( false, "(#{test[:name]}) unable to search/find user #{action[:term]}!" )
|
|
||||||
return
|
|
||||||
end
|
|
||||||
assert( true, "(#{test[:name]}) user #{action[:term]} found" )
|
|
||||||
return
|
|
||||||
|
|
||||||
# search org
|
|
||||||
elsif action[:execute] == 'search_organization'
|
|
||||||
element = instance.find_elements( { :css => '#global-search' } )[0]
|
|
||||||
element.click
|
|
||||||
element.clear
|
|
||||||
if @stack
|
|
||||||
action[:term].gsub! '###stack###', @stack
|
|
||||||
end
|
|
||||||
element.send_keys( action[:term] )
|
|
||||||
sleep 3
|
|
||||||
instance.find_elements( { :css => '.search .empty-search' } )[0].click
|
|
||||||
sleep 0.5
|
|
||||||
text = instance.find_elements( { :css => '#global-search' } )[0].attribute('value')
|
|
||||||
if !text
|
|
||||||
assert( false, "(#{test[:name]}) #global-search is not empty!" )
|
|
||||||
return
|
|
||||||
end
|
|
||||||
element = instance.find_elements( { :css => '#global-search' } )[0]
|
|
||||||
element.click
|
|
||||||
element.clear
|
|
||||||
if @stack
|
|
||||||
action[:term].gsub! '###stack###', @stack
|
|
||||||
end
|
|
||||||
element.send_keys( action[:term] )
|
|
||||||
sleep 2
|
|
||||||
element = instance.find_element( { :partial_link_text => action[:term] } ).click
|
|
||||||
name = instance.find_elements( { :css => '.active h1' } )[0].text
|
|
||||||
if name !~ /#{action[:term]}/
|
|
||||||
assert( false, "(#{test[:name]}) unable to search/find org #{action[:term]}!" )
|
|
||||||
return
|
|
||||||
end
|
|
||||||
assert( true, "(#{test[:name]}) org #{action[:term]} found" )
|
|
||||||
return
|
|
||||||
|
|
||||||
# search ticket
|
# search ticket
|
||||||
elsif action[:execute] == 'search_ticket'
|
elsif action[:execute] == 'search_ticket'
|
||||||
element = instance.find_elements( { :css => '#global-search' } )[0]
|
element = instance.find_elements( { :css => '#global-search' } )[0]
|
||||||
|
|
Loading…
Reference in a new issue