/* * Strawberry Music Player * This file was part of Clementine. * Copyright 2010, David Sansome * * Strawberry is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Strawberry is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Strawberry. If not, see . * */ #ifndef TEST_UTILS_H #define TEST_UTILS_H #include #include #include #include class QNetworkRequest; class QString; class QUrl; class QVariant; std::ostream& operator <<(std::ostream& stream, const QString& str); std::ostream& operator <<(std::ostream& stream, const QVariant& var); std::ostream& operator <<(std::ostream& stream, const QUrl& url); std::ostream& operator <<(std::ostream& stream, const QNetworkRequest& req); template std::ostream& operator <<(std::ostream& stream, const QList& list) { stream << "QList("; for (const T& item : list) { stream << item << ","; } stream << ")"; return stream; } void PrintTo(const ::QString& str, std::ostream& os); void PrintTo(const ::QVariant& var, std::ostream& os); void PrintTo(const ::QUrl& url, std::ostream& os); #define EXPOSE_SIGNAL0(n) \ void Emit##n() { emit n(); } #define EXPOSE_SIGNAL1(n, t1) \ void Emit##n(const t1& a1) { emit n(a1); } #define EXPOSE_SIGNAL2(n, t1, t2) \ void Emit##n(const t1& a1, const t2& a2) { emit n(a1, a2); } Q_DECLARE_METATYPE(QModelIndex) class TemporaryResource : public QTemporaryFile { public: explicit TemporaryResource(const QString& filename); }; class TestQObject : public QObject { Q_OBJECT public: explicit TestQObject(QObject* parent = nullptr); void Emit(); int invoked() const { return invoked_; } signals: void Emitted(); public slots: void Invoke(); private: int invoked_; }; #endif // TEST_UTILS_H