File indexing completed on 2024-12-08 09:40:32

0001 /*
0002     This file is part of the KDE project
0003     SPDX-FileCopyrightText: 2004 David Faure <faure@kde.org>
0004     SPDX-FileCopyrightText: 2008 Norbert Frese <nf2@scheinwelt.at>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-or-later
0007 */
0008 
0009 /*
0010    Please set KIO_JOBREMOTETEST_REMOTETMP to test other protocols than kio_file.
0011    Don't forget the trailing slash!
0012 */
0013 
0014 #ifndef JOBREMOTETEST_H
0015 #define JOBREMOTETEST_H
0016 
0017 #include <QObject>
0018 #include <QString>
0019 
0020 #include <kio/global.h>
0021 #include <kio/udsentry.h>
0022 
0023 namespace KIO
0024 {
0025 class Job;
0026 class FileJob;
0027 }
0028 
0029 class KJob;
0030 
0031 class JobRemoteTest : public QObject
0032 {
0033     Q_OBJECT
0034 
0035 public:
0036     JobRemoteTest()
0037     {
0038     }
0039 
0040 private Q_SLOTS:
0041     void initTestCase();
0042     void cleanupTestCase();
0043 
0044     // Remote tests
0045     void putAndGet();
0046     void openFileWriting();
0047     void openFileReading();
0048     void openFileRead0Bytes();
0049     void openFileTruncating();
0050 
0051     // void calculateRemainingSeconds();
0052 
0053 Q_SIGNALS:
0054     void exitLoop();
0055 
0056 protected Q_SLOTS:
0057     // void slotEntries( KIO::Job*, const KIO::UDSEntryList& lst );
0058     void slotGetResult(KJob *);
0059     void slotDataReq(KIO::Job *, QByteArray &);
0060     void slotResult(KJob *);
0061     void slotMimetype(KIO::Job *, const QString &);
0062 
0063     void slotFileJobData(KIO::Job *job, const QByteArray &data);
0064     void slotFileJobRedirection(KIO::Job *job, const QUrl &url);
0065     void slotFileJobMimetype(KIO::Job *job, const QString &type);
0066     void slotFileJobOpen(KIO::Job *job);
0067     void slotFileJobWritten(KIO::Job *job, KIO::filesize_t written);
0068     void slotFileJobPosition(KIO::Job *job, KIO::filesize_t offset);
0069     void slotFileJobClose(KIO::Job *job);
0070 
0071     void slotFileJob2Data(KIO::Job *job, const QByteArray &data);
0072     void slotFileJob2Redirection(KIO::Job *job, const QUrl &url);
0073     void slotFileJob2Mimetype(KIO::Job *job, const QString &type);
0074     void slotFileJob2Open(KIO::Job *job);
0075     void slotFileJob2Written(KIO::Job *job, KIO::filesize_t written);
0076     void slotFileJob2Position(KIO::Job *job, KIO::filesize_t offset);
0077 
0078     void slotFileJob3Open(KIO::Job *job);
0079     void slotFileJob3Position(KIO::Job *job, KIO::filesize_t offset);
0080     void slotFileJob3Data(KIO::Job *job, const QByteArray &data);
0081 
0082     void slotFileJob4Open(KIO::Job *job);
0083     void slotFileJob4Truncated(KIO::Job *job, KIO::filesize_t length);
0084 
0085 private:
0086     void enterLoop();
0087     enum { AlreadyExists = 1 };
0088 
0089     int m_result;
0090     bool m_closeSignalCalled;
0091     QFile m_truncatedFile;
0092     QByteArray m_data;
0093     QStringList m_names;
0094     int m_dataReqCount;
0095     QString m_mimetype;
0096 
0097     // openReadWrite test
0098     KIO::FileJob *fileJob;
0099     int m_rwCount;
0100 };
0101 
0102 #endif