mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-23 15:25:35 +08:00
QSysInfo::machineUniqueId() was added in Qt 5.11 and is using DBus independent unique machine ids everywhere except on Linux. This prevents running into an assert in case DBus is not properly installed at a very early stage of the application without any chance to give the user a warning and handle it gracefully.
82 lines
2.2 KiB
C++
82 lines
2.2 KiB
C++
/* Copyright (C) 2013
|
|
* swift Project Community / Contributors
|
|
*
|
|
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
|
|
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
|
|
* including this file, may be copied, modified, propagated, or distributed except according to the terms
|
|
* contained in the LICENSE file.
|
|
*/
|
|
|
|
//! \cond PRIVATE_TESTS
|
|
//! \file
|
|
//! \ingroup testblackmisc
|
|
|
|
#include "blackmisc/compare.h"
|
|
#include "blackmisc/identifier.h"
|
|
#include "blackmisc/identifiable.h"
|
|
#include "test.h"
|
|
|
|
#include <QObject>
|
|
#include <QString>
|
|
#include <QTest>
|
|
|
|
using namespace BlackMisc;
|
|
|
|
namespace BlackMiscTest
|
|
{
|
|
//! Testing object identifier
|
|
class CTestIdentifier : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
private slots:
|
|
//! Identifier tests
|
|
void identifierBasics();
|
|
|
|
//! Machine unique id tests
|
|
void machineUniqueId();
|
|
};
|
|
|
|
//! Test identifiable object
|
|
class CTestIdentifiable : public BlackMisc::CIdentifiable
|
|
{
|
|
public:
|
|
//! Constructor
|
|
CTestIdentifiable(QObject *nameObject);
|
|
};
|
|
|
|
void CTestIdentifier::identifierBasics()
|
|
{
|
|
CIdentifier o1;
|
|
CIdentifier o2;
|
|
CIdentifier o3("foobar");
|
|
QVERIFY2(o1 == o2, "Two default identifiers shall be equal");
|
|
QVERIFY2(o1 != o3, "Those identifiers shall be unequal");
|
|
|
|
// test object name change
|
|
QObject q;
|
|
q.setObjectName("foo");
|
|
CTestIdentifiable oa(&q);
|
|
QVERIFY2(oa.identifier().getName() == q.objectName(), "Names shall be equal");
|
|
q.setObjectName("bar");
|
|
QVERIFY2(oa.identifier().getName() == q.objectName(), "Names shall be equal");
|
|
}
|
|
|
|
void CTestIdentifier::machineUniqueId()
|
|
{
|
|
CIdentifier o;
|
|
QVERIFY2(!o.getMachineId().isEmpty(), "Machine id shall never be empty! If this test failed on a supported platform, get a fallback solution!");
|
|
}
|
|
|
|
CTestIdentifiable::CTestIdentifiable(QObject *nameObject) : CIdentifiable(nameObject)
|
|
{ }
|
|
|
|
} //namespace
|
|
|
|
//! main
|
|
BLACKTEST_APPLESS_MAIN(BlackMiscTest::CTestIdentifier);
|
|
|
|
#include "testidentifier.moc"
|
|
|
|
//! \endcond
|