1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
|
# --
# Copyright (C) 2001-2017 OTRS AG, http://otrs.com/
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
# did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
# --
use strict;
use warnings;
use utf8;
use vars (qw($Self));
# get selenium object
my $Selenium = $Kernel::OM->Get('Kernel::System::UnitTest::Selenium');
$Selenium->RunTest(
sub {
# get helper object
my $Helper = $Kernel::OM->Get('Kernel::System::UnitTest::Helper');
# do not check Service
$Helper->ConfigSettingChange(
Valid => 1,
Key => 'Ticket::Service',
Value => 1,
);
# do not check Type
$Helper->ConfigSettingChange(
Valid => 1,
Key => 'Ticket::Type',
Value => 1,
);
# create test customer user and login
my $TestCustomerUserLogin = $Helper->TestCustomerUserCreate(
) || die "Did not get test customer user";
$Selenium->Login(
Type => 'Customer',
User => $TestCustomerUserLogin,
Password => $TestCustomerUserLogin,
);
# get script alias
my $ScriptAlias = $Kernel::OM->Get('Kernel::Config')->Get('ScriptAlias');
# navigate to CustomerTicketSearch screen
$Selenium->VerifiedGet("${ScriptAlias}customer.pl?Action=CustomerTicketSearch");
# check overview screen
for my $ID (
qw(Profile TicketNumber CustomerID From To Cc Subject Body ServiceIDs TypeIDs PriorityIDs StateIDs
NoTimeSet Date DateRange TicketCreateTimePointStart TicketCreateTimePoint TicketCreateTimePointFormat
TicketCreateTimeStartMonth TicketCreateTimeStartDay TicketCreateTimeStartYear TicketCreateTimeStartDayDatepickerIcon
TicketCreateTimeStopMonth TicketCreateTimeStopDay TicketCreateTimeStopYear TicketCreateTimeStopDayDatepickerIcon
SaveProfile Submit ResultForm)
)
{
my $Element = $Selenium->find_element( "#$ID", 'css' );
$Element->is_enabled();
$Element->is_displayed();
}
# get ticket object
my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket');
# create ticket for test scenario
my $TitleRandom = 'Title' . $Helper->GetRandomID();
my $TicketID = $TicketObject->TicketCreate(
Title => $TitleRandom,
Queue => 'Raw',
Lock => 'unlock',
Priority => '3 normal',
State => 'open',
CustomerUser => $TestCustomerUserLogin,
OwnerID => 1,
UserID => 1,
);
$Self->True(
$TicketID,
"Ticket ID $TicketID - created",
);
# Add test article to the ticket.
# Make it email-internal, with sender type customer, in order to check if it's filtered out correctly.
my $InternalArticleMessage = 'not for the customer';
my $ArticleID = $TicketObject->ArticleCreate(
TicketID => $TicketID,
ArticleType => 'email-internal',
SenderType => 'customer',
Subject => $TitleRandom,
Body => $InternalArticleMessage,
ContentType => 'text/plain; charset=ISO-8859-15',
HistoryType => 'EmailCustomer',
HistoryComment => 'Some free text!',
UserID => 1,
);
$Self->True(
$ArticleID,
"Article is created - ID $ArticleID"
);
# get test ticket number
my %Ticket = $TicketObject->TicketGet(
TicketID => $TicketID,
);
# input ticket number as search parameter
$Selenium->find_element( "#TicketNumber", 'css' )->send_keys( $Ticket{TicketNumber} );
$Selenium->find_element( "#TicketNumber", 'css' )->VerifiedSubmit();
# check for expected result
$Self->True(
index( $Selenium->get_page_source(), $TitleRandom ) > -1,
"Ticket $TitleRandom found on page",
);
# Check if internal article was not shown.
$Self->True(
index( $Selenium->get_page_source(), $InternalArticleMessage ) == -1,
'Internal article not found on page'
);
# click on '← Change search options'
$Selenium->find_element( "← Change search options", 'link_text' )->VerifiedClick();
# input more search filters, result should be 'No data found'
$Selenium->find_element( "#TicketNumber", 'css' )->clear();
$Selenium->find_element( "#TicketNumber", 'css' )->send_keys("123456789012345");
$Selenium->execute_script("\$('#StateIDs').val([1, 4]).trigger('redraw.InputField').trigger('change');");
$Selenium->execute_script("\$('#PriorityIDs').val([2, 3]).trigger('redraw.InputField').trigger('change');");
$Selenium->find_element( "#TicketNumber", 'css' )->VerifiedSubmit();
# check for expected result
$Self->True(
index( $Selenium->get_page_source(), "No data found." ) > -1,
"Ticket is not found on page",
);
# check search filter data
$Self->True(
index( $Selenium->get_page_source(), "Search Results for:" ) > -1,
"Filter data is found - Search Results for:",
);
$Self->True(
index( $Selenium->get_page_source(), "TicketNumber: 123456789012345" ) > -1,
"Filter data is found - TicketNumber: 123456789012345",
);
$Self->True(
index( $Selenium->get_page_source(), "State: new+open" ) > -1,
"Filter data is found - State: new+open",
);
$Self->True(
index( $Selenium->get_page_source(), "Priority: 2 low+3 normal" ) > -1,
"Filter data is found - Priority: 2 low+3 normal",
);
# clean up test data from the DB
my $Success = $TicketObject->TicketDelete(
TicketID => $TicketID,
UserID => 1,
);
$Self->True(
$Success,
"Ticket is deleted - $TicketID"
);
# make sure the cache is correct
$Kernel::OM->Get('Kernel::System::Cache')->CleanUp( Type => 'Ticket' );
}
);
1;
|