Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions assets/dbus/org.deepin.Filemanager.ShareControl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@
<arg type="b" direction="out"/>
<arg name="credentialsFd" type="h" direction="in"/>
</method>
<method name="EnableSmbServices">
<arg type="b" direction="out"/>
</method>
<method name="IsUserSharePasswordSet">
<arg type="b" direction="out"/>
<arg name="username" type="s" direction="in"/>
Expand Down
2 changes: 0 additions & 2 deletions autotests/plugins/dfmplugin-dirshare/test_usersharehelper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -339,8 +339,6 @@ TEST_F(UT_UserShareHelper, SetSmbdAutoStart)
DeclareDBusCallFunc_Custom(const QString &);
auto call = static_cast<Call>(&QDBusAbstractInterface::call);
stub.set_lamda(call, [] { __DBG_STUB_INVOKE__ return QDBusMessage(); });
EXPECT_NO_FATAL_FAILURE(UserShareHelperInstance->setSmbdAutoStart());
EXPECT_FALSE(UserShareHelperInstance->setSmbdAutoStart());
}

TEST_F(UT_UserShareHelper, IsValidShare)
Expand Down
31 changes: 1 addition & 30 deletions autotests/plugins/dfmplugin-smbbrowser/test_smbbrowserutils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,6 @@ TEST_F(UT_SmbBrowserUtils, IsServiceRuninig)

TEST_F(UT_SmbBrowserUtils, StartService)
{
EXPECT_FALSE(smb_browser_utils::startService(""));
EXPECT_FALSE(smb_browser_utils::startService("hello"));
EXPECT_FALSE(smb_browser_utils::startService("xxx..."));

#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
// stub.set_lamda(&QDBusAbstractInterface::asyncCall, [] { __DBG_STUB_INVOKE__ return QDBusPendingCall::fromError(QDBusError()); });
typedef QDBusPendingCall (QDBusAbstractInterface::*AsyncCall)(const QString &method,
Expand All @@ -116,28 +112,6 @@ TEST_F(UT_SmbBrowserUtils, StartService)

stub.set_lamda(&QDBusPendingCall::waitForFinished, [] { __DBG_STUB_INVOKE__ });
stub.set_lamda(&QDBusPendingCall::isValid, [] { __DBG_STUB_INVOKE__ return true; });
EXPECT_TRUE(smb_browser_utils::startService("smb"));
EXPECT_TRUE(smb_browser_utils::startService("nmb"));
EXPECT_FALSE(smb_browser_utils::startService("nmbd"));
}

TEST_F(UT_SmbBrowserUtils, EnableServiceAsync)
{
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
typedef QDBusPendingCall (QDBusAbstractInterface::*AsyncCall)(const QString &method,
const QVariant &arg1,
const QVariant &arg2,
const QVariant &arg3,
const QVariant &arg4,
const QVariant &arg5,
const QVariant &arg6,
const QVariant &arg7,
const QVariant &arg8);
stub.set_lamda(static_cast<AsyncCall>(&QDBusAbstractInterface::asyncCall), []() { __DBG_STUB_INVOKE__ return QDBusPendingCall::fromError(QDBusError()); });
#else
stub.set_lamda(&QDBusAbstractInterface::doAsyncCall, [] { __DBG_STUB_INVOKE__ return QDBusPendingCall::fromError(QDBusError()); });
#endif
EXPECT_NO_FATAL_FAILURE(smb_browser_utils::enableServiceAsync());
}

TEST_F(UT_SmbBrowserUtils, CheckAndEnableService)
Expand All @@ -147,12 +121,9 @@ TEST_F(UT_SmbBrowserUtils, CheckAndEnableService)
EXPECT_TRUE(smb_browser_utils::checkAndEnableService("smbd"));

serviceRunning = false;
bool startServiceResult = true;
stub.set_lamda(smb_browser_utils::startService, [&] { __DBG_STUB_INVOKE__ return startServiceResult; });
stub.set_lamda(smb_browser_utils::enableServiceAsync, [] { __DBG_STUB_INVOKE__ });
stub.set_lamda(smb_browser_utils::enableServiceNow, [] { return true; });
EXPECT_TRUE(smb_browser_utils::checkAndEnableService("smb"));

startServiceResult = false;
EXPECT_FALSE(smb_browser_utils::checkAndEnableService("sb"));
}

Expand Down
52 changes: 7 additions & 45 deletions autotests/services/sharecontrol/test_sharecontrol.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,18 +34,18 @@ class UT_ShareControlDBus : public testing::Test
{
// Reset read call counter for each test
readCallCount = 0;

// Mock QDBusContext::message to prevent crashes
stub.set_lamda(&QDBusContext::message, [](const QDBusContext *) -> const QDBusMessage& {
stub.set_lamda(&QDBusContext::message, [](const QDBusContext *) -> const QDBusMessage & {
__DBG_STUB_INVOKE__
// Create a static message to ensure it has valid service data
static QDBusMessage msg = QDBusMessage::createMethodCall("org.test.service", "/test", "org.test.Interface", "testMethod");
return msg;
});

shareControlDBus = new ShareControlDBus("test_sharecontrol");
}

virtual void TearDown() override
{
stub.clear();
Expand All @@ -56,7 +56,7 @@ class UT_ShareControlDBus : public testing::Test
protected:
ShareControlDBus *shareControlDBus = nullptr;
stub_ext::StubExt stub;
int readCallCount = 0; // Track read system call count
int readCallCount = 0; // Track read system call count
};

class UT_PolicyKitHelper : public testing::Test
Expand Down Expand Up @@ -278,13 +278,13 @@ TEST_F(UT_ShareControlDBus, SetUserSharePassword_Success_ReturnsTrue)
stub.set_lamda(read, [this](int, void *buf, size_t count) -> ssize_t {
__DBG_STUB_INVOKE__
this->readCallCount++;

if (this->readCallCount == 1) {
// First call: return serialized credentials data
QByteArray data;
QDataStream stream(&data, QIODevice::WriteOnly);
stream << QString("testuser") << QString("testpassword");

// Copy data to buffer (ensure we don't exceed buffer size)
size_t dataSize = std::min(static_cast<size_t>(data.size()), count);
memcpy(buf, data.constData(), dataSize);
Expand Down Expand Up @@ -332,44 +332,6 @@ TEST_F(UT_ShareControlDBus, SetUserSharePassword_Success_ReturnsTrue)
EXPECT_TRUE(result);
}

// Test EnableSmbServices with authentication failure
TEST_F(UT_ShareControlDBus, EnableSmbServices_AuthenticationFailed_ReturnsFalse)
{
// Mock authentication failure
stub.set_lamda(&PolicyKitHelper::checkAuthorization, [](PolicyKitHelper *, const QString &, const QString &) {
__DBG_STUB_INVOKE__
return false;
});

bool result = shareControlDBus->EnableSmbServices();
EXPECT_FALSE(result);
}

// Test EnableSmbServices successful execution
TEST_F(UT_ShareControlDBus, EnableSmbServices_Success_ReturnsTrue)
{
// Mock successful authentication
stub.set_lamda(&PolicyKitHelper::checkAuthorization, [](PolicyKitHelper *, const QString &, const QString &) {
__DBG_STUB_INVOKE__
return true;
});

// Mock QProcess success for both services - use function pointer to specify overload
using ProcessStartFunc = void (QProcess::*)(const QString &, const QStringList &, QIODevice::OpenMode);
stub.set_lamda(static_cast<ProcessStartFunc>(&QProcess::start), [](QProcess *, const QString &, const QStringList &, QIODevice::OpenMode) {
__DBG_STUB_INVOKE__
});

using ProcessWaitFunc = bool (QProcess::*)(int);
stub.set_lamda(static_cast<ProcessWaitFunc>(&QProcess::waitForFinished), [](QProcess *, int) {
__DBG_STUB_INVOKE__
return true;
});

bool result = shareControlDBus->EnableSmbServices();
EXPECT_TRUE(result);
}

// Test IsUserSharePasswordSet with process failure
TEST_F(UT_ShareControlDBus, IsUserSharePasswordSet_ProcessFailed_ReturnsFalse)
{
Expand Down
7 changes: 7 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
dde-file-manager (6.5.102) unstable; urgency=medium

* fix bugs
* security enhancement

-- Zhang Sheng <[email protected]> Thu, 06 Nov 2025 21:21:57 +0800

dde-file-manager (6.5.101) unstable; urgency=medium

* fix bugs
Expand Down
1 change: 0 additions & 1 deletion debian/compat

This file was deleted.

33 changes: 18 additions & 15 deletions debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ Section: libdevel
Priority: optional
Maintainer: Deepin Packages Builder <[email protected]>
Build-Depends:
debhelper-compat (= 12),
cmake,
doxygen,
debhelper (>=9),
pkg-config,
libffmpegthumbnailer-dev,
libpolkit-agent-1-dev,
Expand All @@ -26,7 +26,6 @@ Build-Depends:
libcryptsetup-dev,
libpcre2-dev,
libdde-shell-dev (>= 0.0.10),
deepin-desktop-base | deepin-desktop-server | deepin-desktop-device,
qt6-base-dev,
qt6-base-private-dev,
qt6-svg-dev,
Expand All @@ -51,18 +50,18 @@ Build-Depends:
libdeepin-service-framework-dev,
libheif-dev,
libappimage-dev
Standards-Version: 3.9.8
Standards-Version: 4.5.0
Homepage: http://www.deepin.org

Package: dde-desktop
Architecture: any
Depends:
${shlibs:Depends},
${misc:Depends},
Depends:
${shlibs:Depends},
${misc:Depends},
libdde-file-manager (=${binary:Version}),
libqt6sql6-sqlite,
qt6-translations-l10n,
libimageeditor6 | hello
libimageeditor6
Conflicts: dde-workspace (<< 2.90.5), dde-file-manager-oem, dde-desktop-plugins
Replaces: dde-file-manager-oem, dde-file-manager (<< 6.0.1), dde-desktop-plugins
Recommends: deepin-screensaver
Expand All @@ -74,6 +73,8 @@ Architecture: any
Depends:
${shlibs:Depends},
${misc:Depends},
pkexec,
deepin-desktop-base | deepin-desktop-server | deepin-desktop-device,
libdde-file-manager (=${binary:Version}),
socat,
cryfs,
Expand All @@ -85,14 +86,17 @@ Depends:
qml6-module-qtquick-window,
tpm2-abrmd,
libtss2-tcti-pcap0,
libtss2-tcti-tabrmd0,
libusec-recoverykey | hello
Replaces: dde-file-manager-oem, dde-desktop (<< 6.0.1),
libtss2-tcti-tabrmd0
Replaces: dde-file-manager-oem,
dde-desktop (<< 6.5.101),
dde-file-manager-preview,
dde-file-manager-preview-plugins,
dde-file-manager-plugins,
dde-file-manager-daemon-plugins,
dde-file-manager-common-plugins
dde-file-manager-common-plugins,
dde-file-manager-services-plugins (<< 6.5.101)
Breaks: dde-desktop (<< 6.5.101),
dde-file-manager-services-plugins (<< 6.5.101)
Conflicts: dde-file-manager-preview,
dde-file-manager-preview-plugins,
dde-file-manager-plugins,
Expand All @@ -111,8 +115,7 @@ Depends:
gvfs-backends (>=1.27.3),
cryptsetup,
gnome-keyring,
libdfm-extension (=${binary:Version}),
dlnfs | hello
libdfm-extension (=${binary:Version})
Multi-Arch: same
Description: DDE File Manager core librarys
This package contains the shared libraries.
Expand All @@ -136,7 +139,7 @@ Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: deepin desktop-environment - deepin-service-manager plugins module
Deepin Desktop Environment (DDE) - deepin-service-manager plugins module.

Package: libdfm-extension-dev
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, libdfm-extension (=${binary:Version})
Expand All @@ -146,7 +149,7 @@ Description: Development package for libdfm-extension

Package: dde-file-manager-dev
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, dde-file-manager (=${binary:Version}),
Depends: ${shlibs:Depends}, ${misc:Depends}, libdde-file-manager (=${binary:Version}),
libdfm6-io-dev, libdfm6-mount-dev, libdfm6-burn-dev
Description: DDE File Manager Devel library
This package contains the header files and static libraries
Expand Down
Loading
Loading