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
|
# --
# Copyright (C) 2001-2021 OTRS AG, https://otrs.com/
# Copyright (C) 2021 Znuny GmbH, https://znuny.org/
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (GPL). If you
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
# --
use strict;
use warnings;
use utf8;
use vars (qw($Self));
use Digest::MD5 qw(md5_hex);
# get needed objects
my $ConfigObject = $Kernel::OM->Get('Kernel::Config');
my $EncodeObject = $Kernel::OM->Get('Kernel::System::Encode');
my $MainObject = $Kernel::OM->Get('Kernel::System::Main');
# get command object
my $CommandObject = $Kernel::OM->Get('Kernel::System::Console::Command::Maint::WebUploadCache::Cleanup');
my ( $Result, $ExitCode );
my $HelperObject = $Kernel::OM->Get('Kernel::System::UnitTest::Helper');
for my $Module (qw(DB FS)) {
# make sure that the $UploadCacheObject gets recreated for each loop.
$Kernel::OM->ObjectsDiscard( Objects => ['Kernel::System::Web::UploadCache'] );
$ConfigObject->Set(
Key => 'WebUploadCacheModule',
Value => "Kernel::System::Web::UploadCache::$Module",
);
# get a new upload cache object
my $UploadCacheObject = $Kernel::OM->Get('Kernel::System::Web::UploadCache');
$Self->True(
$UploadCacheObject->{Backend}->isa("Kernel::System::Web::UploadCache::$Module"),
"Upload cache created with correct object",
);
my $FormID = $UploadCacheObject->FormIDCreate();
$Self->True(
$FormID,
"#$Module - FormIDCreate()",
);
my $Location = $ConfigObject->Get('Home')
. "/scripts/test/sample/WebUploadCache/WebUploadCache-Test1.txt";
my $ContentRef = $MainObject->FileRead(
Location => $Location,
Mode => 'binmode',
);
my $Content = ${$ContentRef};
$EncodeObject->EncodeOutput( \$Content );
my $MD5 = md5_hex($Content);
my $ContentID = undef;
my $Disposition = 'attachment';
my $Add = $UploadCacheObject->FormIDAddFile(
FormID => $FormID,
Filename => 'UploadCache Test1äöüß.txt',
Content => $Content,
ContentType => 'text/html',
ContentID => $ContentID,
Disposition => $Disposition,
);
$Self->True(
$Add || '',
"#$Module - FormIDAddFile()",
);
# delete upload cache - should not remove cached form
$ExitCode = $CommandObject->Execute();
$Self->Is(
$ExitCode,
0,
"#$Module - delete upload cache",
);
my @Data = $UploadCacheObject->FormIDGetAllFilesData(
FormID => $FormID,
);
$Self->True(
scalar @Data,
"#$Module - FormIDGetAllFilesData() check if formid is present",
);
@Data = $UploadCacheObject->FormIDGetAllFilesMeta( FormID => $FormID );
$Self->True(
scalar @Data,
"#$Module - FormIDGetAllFilesMeta() check if formid is present",
);
# set fixed time
$HelperObject->FixedTimeSet();
# wait 24h+1s to expire upload cache
$HelperObject->FixedTimeAddSeconds(86401);
# delete upload cache - should remove cached form
$ExitCode = $CommandObject->Execute();
$Self->Is(
$ExitCode,
0,
"#$Module - delete upload cache",
);
@Data = $UploadCacheObject->FormIDGetAllFilesData(
FormID => $FormID,
);
$Self->False(
scalar @Data,
"#$Module - FormIDGetAllFilesData() check if formid is absent",
);
@Data = $UploadCacheObject->FormIDGetAllFilesMeta(
FormID => $FormID,
);
$Self->False(
scalar @Data,
"#$Module - FormIDGetAllFilesMeta() check if formid is absent",
);
# unset fixed time
$HelperObject->FixedTimeUnset();
}
1;
|