summaryrefslogtreecommitdiffstats
path: root/tests/auto/client/shared/datadevice.cpp
diff options
context:
space:
mode:
authorJohan Klokkhammer Helsing <johan.helsing@qt.io>2018-12-13 09:58:50 +0100
committerJohan Helsing <johan.helsing@qt.io>2019-01-30 15:02:31 +0000
commit0ff8a6b14d2668ced57e83219b541cb9b70caae2 (patch)
tree11e466c7b01ec38ed1012d8094d53688a07aa0c2 /tests/auto/client/shared/datadevice.cpp
parent276b15fa355ce3a2e92b307d340f2367ccac1843 (diff)
Add client test for data device
Change-Id: Id89ec40a3f484808385401829a09a43781a1bed7 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Diffstat (limited to 'tests/auto/client/shared/datadevice.cpp')
-rw-r--r--tests/auto/client/shared/datadevice.cpp70
1 files changed, 70 insertions, 0 deletions
diff --git a/tests/auto/client/shared/datadevice.cpp b/tests/auto/client/shared/datadevice.cpp
new file mode 100644
index 000000000..c136c7596
--- /dev/null
+++ b/tests/auto/client/shared/datadevice.cpp
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "datadevice.h"
+
+namespace MockCompositor {
+
+void DataDeviceManager::data_device_manager_get_data_device(Resource *resource, uint32_t id, wl_resource *seatResource)
+{
+ auto *seat = fromResource<Seat>(seatResource);
+ QVERIFY(seat);
+ QVERIFY(!seat->m_dataDevice);
+ seat->m_dataDevice.reset(new DataDevice(resource->client(), id, resource->version()));
+}
+
+DataDevice::~DataDevice()
+{
+ // If the client hasn't deleted the wayland object, just ignore subsequent events
+ if (auto *r = resource()->handle)
+ wl_resource_set_implementation(r, nullptr, nullptr, nullptr);
+}
+
+void DataDevice::sendDataOffer(DataOffer *offer)
+{
+ wl_data_device::send_data_offer(offer->resource()->handle);
+}
+
+void DataDevice::sendSelection(DataOffer *offer)
+{
+ wl_data_device::send_selection(offer->resource()->handle);
+}
+
+void DataOffer::data_offer_destroy_resource(Resource *resource)
+{
+ Q_UNUSED(resource);
+ delete this;
+}
+
+void DataOffer::data_offer_receive(Resource *resource, const QString &mime_type, int32_t fd)
+{
+ Q_UNUSED(resource);
+ emit receive(mime_type, fd);
+}
+
+} // namespace MockCompositor