59
61
EXPECT_NE(QDBusMessage::ErrorMessage, msg.type()) << qPrintable(msg.errorMessage());
61
63
// ask for a list of backup choices
62
QDBusReply<QVariantDictMap> choices = user_iface_->call("GetBackupChoices");
63
EXPECT_TRUE(choices.isValid()) << qPrintable(choices.error().message());
66
const auto expected_choices = QVariantDictMap{{uuid, props}};
67
ASSERT_EQ(expected_choices, choices);
71
// test that StartBackup() fails if we pass an invalid arg
72
TEST_F(KeeperTemplateTest, StartBackupWithInvalidArg)
74
const auto invalid_uuid = QUuid::createUuid().toString();
76
QDBusReply<void> reply = user_iface_->call("StartBackup", QStringList{invalid_uuid});
77
EXPECT_FALSE(reply.isValid());
78
EXPECT_EQ(QDBusError::InvalidArgs, reply.error().type());
82
// test GetRestoreChoices() returns what we give to AddRestoreChoice()
83
TEST_F(KeeperTemplateTest, RestoreChoices)
85
// build a restore choice
86
const auto uuid = QUuid::createUuid().toString();
87
const auto blob = QUuid::createUuid().toByteArray();
88
const QMap<QString,QVariant> props {
89
{ KEY_NAME, QStringLiteral("some-name") },
90
{ KEY_TYPE, QStringLiteral("some-type") },
91
{ KEY_SUBTYPE, QStringLiteral("some-subtype") },
92
{ KEY_HELPER, QString::fromUtf8("/dev/null") },
93
{ KEY_SIZE, quint64(blob.size()) },
94
{ KEY_CTIME, quint64(time(nullptr)) },
99
auto msg = mock_iface_->call(QStringLiteral("AddRestoreChoice"), uuid, props);
100
EXPECT_NE(QDBusMessage::ErrorMessage, msg.type()) << qPrintable(msg.errorMessage());
102
// ask for a list of restore choices
103
QDBusReply<QVariantDictMap> choices = user_iface_->call("GetRestoreChoices");
104
EXPECT_TRUE(choices.isValid()) << qPrintable(choices.error().message());
107
const auto expected_choices = QVariantDictMap{{uuid, props}};
108
ASSERT_EQ(expected_choices, choices);
112
// test that StartRestore() fails if we pass an invalid arg
113
TEST_F(KeeperTemplateTest, StartRestoreWithInvalidArg)
115
const auto invalid_uuid = QUuid::createUuid().toString();
117
QDBusReply<void> reply = user_iface_->call("StartRestore", QStringList{invalid_uuid});
118
EXPECT_FALSE(reply.isValid());
119
EXPECT_EQ(QDBusError::InvalidArgs, reply.error().type());
123
// test that Status() returns empty if we haven't done anything yet
124
TEST_F(KeeperTemplateTest, TestEmptyStatus)
126
EXPECT_TRUE(user_iface_->state().isEmpty());
131
**** Make a real backup
134
TEST_F(KeeperTemplateTest, BackupRun)
136
QTemporaryDir sandbox;
138
// build a backup choice
139
const auto uuid = QUuid::createUuid().toString();
140
const QMap<QString,QVariant> props {
141
{ KEY_NAME, QStringLiteral("Music") },
142
{ KEY_TYPE, QStringLiteral("folder") },
143
{ KEY_SUBTYPE, sandbox.path() },
144
{ KEY_HELPER, QString::fromUtf8(FAKE_BACKUP_HELPER_EXEC) }
148
auto msg = mock_iface_->call(QStringLiteral("AddBackupChoice"), uuid, props);
149
EXPECT_NE(QDBusMessage::ErrorMessage, msg.type()) << qPrintable(msg.errorMessage());
152
QDBusReply<void> reply = user_iface_->call("StartBackup", QStringList{uuid});
153
EXPECT_TRUE(reply.isValid()) << qPrintable(reply.error().message());
154
ASSERT_TRUE(wait_for_tasks_to_finish());
156
// ask keeper for the blob
157
QDBusReply<QByteArray> blob = mock_iface_->call(QStringLiteral("GetBackupData"), uuid);
158
EXPECT_TRUE(reply.isValid()) << qPrintable(reply.error().message());
161
const auto expected_blob = QByteArray(FAKE_BACKUP_HELPER_PAYLOAD);
162
ASSERT_EQ(expected_blob, blob);
64
QDBusPendingReply<keeper::Items> choices_reply = user_iface_->call("GetBackupChoices");
65
choices_reply.waitForFinished();
66
if (!choices_reply.isValid())
68
qDebug() << "-------------------" << choices_reply.error().message();
70
EXPECT_TRUE(choices_reply.isValid()) << qPrintable(choices_reply.error().message());
72
auto choices = choices_reply.value();
74
const auto expected_choices = QVariantDictMap{{uuid, props}};
75
auto iter = choices.find(uuid);
76
ASSERT_NE(iter, choices.end());
78
ASSERT_EQ((*iter), props);
82
//// test that StartBackup() fails if we pass an invalid arg
83
//TEST_F(KeeperTemplateTest, StartBackupWithInvalidArg)
85
// const auto invalid_uuid = QUuid::createUuid().toString();
87
// QDBusReply<void> reply = user_iface_->call("StartBackup", QStringList{invalid_uuid});
88
// EXPECT_FALSE(reply.isValid());
89
// EXPECT_EQ(QDBusError::InvalidArgs, reply.error().type());
93
//// test GetRestoreChoices() returns what we give to AddRestoreChoice()
94
//TEST_F(KeeperTemplateTest, RestoreChoices)
96
// // build a restore choice
97
// const auto uuid = QUuid::createUuid().toString();
98
// const auto blob = QUuid::createUuid().toByteArray();
99
// const QMap<QString,QVariant> props {
100
// { KEY_NAME, QStringLiteral("some-name") },
101
// { KEY_TYPE, QStringLiteral("some-type") },
102
// { KEY_SUBTYPE, QStringLiteral("some-subtype") },
103
// { KEY_HELPER, QString::fromUtf8("/dev/null") },
104
// { KEY_SIZE, quint64(blob.size()) },
105
// { KEY_CTIME, quint64(time(nullptr)) },
106
// { KEY_BLOB, blob }
110
// auto msg = mock_iface_->call(QStringLiteral("AddRestoreChoice"), uuid, props);
111
// EXPECT_NE(QDBusMessage::ErrorMessage, msg.type()) << qPrintable(msg.errorMessage());
113
// // ask for a list of restore choices
114
// QDBusReply<QVariantDictMap> choices = user_iface_->call("GetRestoreChoices");
115
// EXPECT_TRUE(choices.isValid()) << qPrintable(choices.error().message());
117
// // check the results
118
// const auto expected_choices = QVariantDictMap{{uuid, props}};
119
// ASSERT_EQ(expected_choices, choices);
123
//// test that StartRestore() fails if we pass an invalid arg
124
//TEST_F(KeeperTemplateTest, StartRestoreWithInvalidArg)
126
// const auto invalid_uuid = QUuid::createUuid().toString();
128
// QDBusReply<void> reply = user_iface_->call("StartRestore", QStringList{invalid_uuid});
129
// EXPECT_FALSE(reply.isValid());
130
// EXPECT_EQ(QDBusError::InvalidArgs, reply.error().type());
134
//// test that Status() returns empty if we haven't done anything yet
135
//TEST_F(KeeperTemplateTest, TestEmptyStatus)
137
// EXPECT_TRUE(user_iface_->state().isEmpty());
142
//**** Make a real backup
145
//TEST_F(KeeperTemplateTest, BackupRun)
147
// QTemporaryDir sandbox;
149
// // build a backup choice
150
// const auto uuid = QUuid::createUuid().toString();
151
// const QMap<QString,QVariant> props {
152
// { KEY_NAME, QStringLiteral("Music") },
153
// { KEY_TYPE, QStringLiteral("folder") },
154
// { KEY_SUBTYPE, sandbox.path() },
155
// { KEY_HELPER, QString::fromUtf8(FAKE_BACKUP_HELPER_EXEC) }
159
// auto msg = mock_iface_->call(QStringLiteral("AddBackupChoice"), uuid, props);
160
// EXPECT_NE(QDBusMessage::ErrorMessage, msg.type()) << qPrintable(msg.errorMessage());
162
// // start the backup
163
// QDBusReply<void> reply = user_iface_->call("StartBackup", QStringList{uuid});
164
// EXPECT_TRUE(reply.isValid()) << qPrintable(reply.error().message());
165
// ASSERT_TRUE(wait_for_tasks_to_finish());
167
// // ask keeper for the blob
168
// QDBusReply<QByteArray> blob = mock_iface_->call(QStringLiteral("GetBackupData"), uuid);
169
// EXPECT_TRUE(reply.isValid()) << qPrintable(reply.error().message());
171
// // check the results
172
// const auto expected_blob = QByteArray(FAKE_BACKUP_HELPER_PAYLOAD);
173
// ASSERT_EQ(expected_blob, blob);