Skip to content

Commit

Permalink
test: [file-preview] add UT of file preview
Browse files Browse the repository at this point in the history
add UT of file preview
  • Loading branch information
GongHeng2017 authored and deepin-bot[bot] committed Aug 7, 2023
1 parent 96074ed commit 81caa0f
Show file tree
Hide file tree
Showing 11 changed files with 1,213 additions and 45 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,50 @@
// SPDX-License-Identifier: GPL-3.0-or-later

#include "stubext.h"
#include "addr_any.h"

#include "plugins/common/dfmplugin-preview/filepreview/utils/previewdialogmanager.h"
#include "plugins/common/dfmplugin-preview/filepreview/utils/previewhelper.h"
#include "events/fileprevieweventreceiver.h"
#include "utils/previewhelper.h"
#include "utils/previewdialogmanager.h"

#include <dfm-base/base/configs/dconfig/dconfigmanager.h>

#include <dfm-framework/dpf.h>
#include <dfm-framework/event/event.h>

#include <gtest/gtest.h>

DFMBASE_USE_NAMESPACE
using namespace dfmplugin_filepreview;
class UT_FilePreviewEventReceiver : public testing::Test
DPFILEPREVIEW_USE_NAMESPACE
DPF_USE_NAMESPACE

TEST(UT_FilePreviewEventReceiver, connectService)
{
public:
virtual void SetUp() override {}
virtual void TearDown() override {}
};
TEST_F(UT_FilePreviewEventReceiver, ShowFilePreview)
bool isOk { false };

stub_ext::StubExt stub;
typedef bool(EventChannelManager::*FuncType)(const QString &, const QString &, FilePreviewEventReceiver *, void(FilePreviewEventReceiver::*)(quint64, const QList<QUrl> &, QList<QUrl>));
stub.set_lamda(static_cast<FuncType>(&EventChannelManager::connect), [ &isOk ]{
isOk = true;
return true;
});

FilePreviewEventReceiver::instance()->connectService();

EXPECT_TRUE(isOk);
}

TEST(UT_FilePreviewEventReceiver, showFilePreview)
{
const QList<QUrl>inputs1 = { QUrl::fromLocalFile("/") };
const QList<QUrl>inputs2 = { QUrl::fromLocalFile("/Hello") };
bool isOk { false };

stub_ext::StubExt stub;
stub.set_lamda(&PreviewHelper::isPreviewEnabled, [] { __DBG_STUB_INVOKE__ return true; });
stub.set_lamda(&PreviewDialogManager::showPreviewDialog, [](PreviewDialogManager *,const quint64, const QList<QUrl> &, const QList<QUrl>){});
EXPECT_NO_FATAL_FAILURE(PreviewDialogManager::instance()->showPreviewDialog(0,inputs1,inputs2));
stub.set_lamda(&PreviewHelper::isPreviewEnabled, []{
return true;
});
stub.set_lamda(&PreviewDialogManager::showPreviewDialog, [ &isOk ]{
isOk = true;
});

FilePreviewEventReceiver::instance()->showFilePreview(0, QList<QUrl>() << QUrl("file:///UT_TEST"), QList<QUrl>() << QUrl("file:///UT_TEST1"));

EXPECT_TRUE(isOk);
}

4 changes: 2 additions & 2 deletions tests/plugins/common/dfmplugin-preview/filepreview/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@

#include <gtest/gtest.h>
#include <sanitizer/asan_interface.h>
#include <QCoreApplication>
#include <QApplication>

int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QApplication app(argc, argv);

::testing::InitGoogleTest(&argc, argv);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
// SPDX-FileCopyrightText: 2022 - 2023 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: GPL-3.0-or-later

#include "stubext.h"
#include "pluginInterface/filepreviewfactory.h"
#include "pluginInterface/previewpluginloader.h"
#include "views/unknowfilepreview.h"

#include <gtest/gtest.h>

#include <dfm-base/interfaces/abstractbasepreview.h>
#include <dfm-base/interfaces/abstractfilepreviewplugin.h>

DPFILEPREVIEW_USE_NAMESPACE
DFMBASE_USE_NAMESPACE

TEST(UT_FilePreviewFactory, keys)
{
QMultiMap<int, QString> map;
map.insert(1, "UT_TEST");
stub_ext::StubExt stub;
stub.set_lamda(&PreviewPluginLoader::keyMap, [ &map ]{
return map;
});

QStringList result = FilePreviewFactory::keys();

EXPECT_TRUE(result.first() == "UT_TEST");
}

TEST(UT_FilePreviewFactory, create_one)
{
stub_ext::StubExt stub;
stub.set_lamda(dLoadPlugin<AbstractBasePreview, AbstractFilePreviewPlugin>, []{
return nullptr;
});

UnknowFilePreview *result = qobject_cast<UnknowFilePreview *>(FilePreviewFactory::create("UT_TEST"));

EXPECT_FALSE(result);
}

TEST(UT_FilePreviewFactory, create_two)
{
UnknowFilePreview view;

stub_ext::StubExt stub;
stub.set_lamda(dLoadPlugin<AbstractBasePreview, AbstractFilePreviewPlugin>, [ &view ]{
return &view;
});

UnknowFilePreview *result = qobject_cast<UnknowFilePreview *>(FilePreviewFactory::create("UT_TEST"));

EXPECT_TRUE(result);
}

TEST(UT_FilePreviewFactory, isSuitedWithKey_one)
{
bool isOk = FilePreviewFactory::isSuitedWithKey(nullptr, "UT_TEST");

EXPECT_FALSE(isOk);
}

TEST(UT_FilePreviewFactory, isSuitedWithKey_two)
{
UnknowFilePreview view;
FilePreviewFactory::previewToLoaderIndex.insert(&view, 1);

bool isOk = FilePreviewFactory::isSuitedWithKey(&view, "UT_TEST");

EXPECT_FALSE(isOk);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
// SPDX-FileCopyrightText: 2022 - 2023 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: GPL-3.0-or-later

#include "stubext.h"
#include "pluginInterface/previewpluginloader.h"
#include "pluginInterface/private/pluginloader_p.h"

#include <gtest/gtest.h>

#include <QDir>

DPFILEPREVIEW_USE_NAMESPACE

TEST(UT_PreviewPluginLoader, metaData)
{
stub_ext::StubExt stub;
stub.set_lamda(&PreviewPluginLoader::update, []{});

QPluginLoader qLoader;
PreviewPluginLoader loader("UT_TEST", "UT");
loader.dptr->pluginLoaderList.push_back(&qLoader);
QList<QJsonObject> result = loader.metaData();

EXPECT_FALSE(result.isEmpty());
}

TEST(UT_PreviewPluginLoader, instance_one)
{
stub_ext::StubExt stub;
stub.set_lamda(&PreviewPluginLoader::update, []{});

PreviewPluginLoader loader("UT_TEST", "UT");
QObject *result = loader.instance(-1);

EXPECT_FALSE(result);
}

TEST(UT_PreviewPluginLoader, instance_two)
{
stub_ext::StubExt stub;
stub.set_lamda(&PreviewPluginLoader::update, []{});

QPluginLoader qLoader;
PreviewPluginLoader loader("UT_TEST", "UT");
loader.dptr->pluginLoaderList.push_back(&qLoader);
QObject *result = loader.instance(0);

EXPECT_FALSE(result);
}

TEST(UT_PreviewPluginLoader, instance_three)
{
stub_ext::StubExt stub;
stub.set_lamda(&PreviewPluginLoader::update, []{});

QPluginLoader qLoader;
PreviewPluginLoader loader("UT_TEST", "UT");
loader.dptr->pluginLoaderList.clear();
QObject *result = loader.instance(0);

EXPECT_FALSE(result);
}

TEST(UT_PreviewPluginLoader, pluginLoader)
{
stub_ext::StubExt stub;
stub.set_lamda(&PreviewPluginLoader::update, []{});

PreviewPluginLoader loader("UT_TEST", "UT");
QPluginLoader *result = loader.pluginLoader("UT_TEST");

EXPECT_FALSE(result);
}

TEST(UT_PreviewPluginLoader, pluginLoaderList)
{
stub_ext::StubExt stub;
stub.set_lamda(&PreviewPluginLoader::update, []{});

PreviewPluginLoader loader("UT_TEST", "UT");
QList<QPluginLoader *> result = loader.pluginLoaderList("UT_TEST");

EXPECT_TRUE(result.isEmpty());
}

TEST(UT_PreviewPluginLoader, keyMap)
{
stub_ext::StubExt stub;
stub.set_lamda(&PreviewPluginLoader::update, []{});

QPluginLoader qLoader;
PreviewPluginLoader loader("UT_TEST", "UT");
loader.dptr->pluginLoaderList.push_back(&qLoader);
QMultiMap<int, QString> result = loader.keyMap();

EXPECT_TRUE(result.isEmpty());
}

TEST(UT_PreviewPluginLoader, indexOf)
{
stub_ext::StubExt stub;
stub.set_lamda(&PreviewPluginLoader::update, []{});

QPluginLoader qLoader;
PreviewPluginLoader loader("UT_TEST", "UT");
loader.dptr->pluginLoaderList.push_back(&qLoader);
int result = loader.indexOf("UT_TEST");

EXPECT_TRUE(result == -1);
}

TEST(UT_PreviewPluginLoader, getAllIndexByKey)
{
stub_ext::StubExt stub;
stub.set_lamda(&PreviewPluginLoader::update, []{});

QPluginLoader qLoader;
PreviewPluginLoader loader("UT_TEST", "UT");
loader.dptr->pluginLoaderList.push_back(&qLoader);
QList<int> result = loader.getAllIndexByKey("UT_TEST");

EXPECT_TRUE(result.isEmpty());
}

TEST(UT_PreviewPluginLoader, update_one)
{
bool isOk { false };

stub_ext::StubExt stub;
typedef bool(QDir::*FuncType)(const QString &)const;
stub.set_lamda(static_cast<FuncType>(&QDir::exists), [ &isOk ]{
isOk = true;
return false;
});

PreviewPluginLoader loader("UT_TEST", "UT");
loader.dptr->pluginPaths.push_back("UT_TEST");
loader.dptr->loadedPaths.clear();
loader.update();

EXPECT_TRUE(isOk);
}

TEST(UT_PreviewPluginLoader, update_two)
{
bool isOk { false };

stub_ext::StubExt stub;
typedef bool(QDir::*FuncType)(const QString &)const;
stub.set_lamda(static_cast<FuncType>(&QDir::exists), [ &isOk ]{
isOk = true;
return true;
});

PreviewPluginLoader loader("UT_TEST", "UT");
loader.dptr->pluginPaths.push_back("UT_TEST");
loader.dptr->loadedPaths.clear();
loader.update();

EXPECT_TRUE(isOk);
}

TEST(UT_PreviewPluginLoader, update_three)
{
bool isOk { false };

stub_ext::StubExt stub;
typedef bool(QDir::*FuncType)(const QString &)const;
stub.set_lamda(static_cast<FuncType>(&QDir::exists), []{
return true;
});
stub.set_lamda(&QPluginLoader::load, [ &isOk ]{
isOk = true;
return true;
});

PreviewPluginLoader loader("UT_TEST", "UT");
loader.dptr->pluginPaths.push_back("UT_TEST");
loader.dptr->loadedPaths.clear();
loader.update();

EXPECT_TRUE(isOk);
}

TEST(UT_PreviewPluginLoader, refreshAll)
{
bool isOk { false };

stub_ext::StubExt stub;
stub.set_lamda(&PreviewPluginLoader::update, [ &isOk ]{
isOk = true;
});

PreviewPluginLoader loader("UT_TEST", "UT");
loader.refreshAll();

EXPECT_TRUE(isOk);
}
Loading

0 comments on commit 81caa0f

Please sign in to comment.