@@ -308,6 +308,46 @@ private slots:
308308 }
309309 }
310310 }
311+
312+ #ifdef BUILD_FILE_PROVIDER_MODULE
313+ void testEmptyFileId ()
314+ {
315+ _model.setAccountState (&_fakeFolder->accountState ());
316+ const auto unsyncedFile = QStringLiteral (" unsynced.odt" );
317+ _model.setLocalPath (_fakeFolder->localPath () + unsyncedFile);
318+ QVERIFY (_model.fileId ().isEmpty ());
319+ QCOMPARE (_model.rowCount (), 0 );
320+ _model.parseEndpoints ();
321+ QVERIFY (_model.responseLabel ().contains (QStringLiteral (" The file ID is empty" )));
322+
323+ _fakeFolder->localModifier ().insert (_fakeFolder->localPath () + unsyncedFile);
324+ QVERIFY (_fakeFolder->syncOnce ());
325+ const auto fileInfo = _fakeFolder->remoteModifier ().find (unsyncedFile);
326+ QVERIFY (fileInfo);
327+ QVERIFY (!fileInfo->fileId .isEmpty ());
328+ _model.setFileId (fileInfo->fileId );
329+ QCOMPARE (_model.fileId (), fileInfo->fileId );
330+ _model.parseEndpoints ();
331+ QVERIFY (_model.responseLabel ().isEmpty ());
332+ QCOMPARE (_model.rowCount (), 6 );
333+
334+ FileActionsModel fileProviderModel;
335+ QSignalSpy fileActionModelChangedSpy (&fileProviderModel, &FileActionsModel::fileActionModelChanged);
336+ fileProviderModel.setAccountState (&_fakeFolder->accountState ());
337+ fileProviderModel.setLocalPath (QDir::tempPath () + QStringLiteral (" /fileprovider.odt" ));
338+ QVERIFY (fileProviderModel.fileId ().isEmpty ());
339+ QCOMPARE (fileProviderModel.rowCount (), 0 );
340+
341+ fileProviderModel.parseEndpoints ();
342+ QVERIFY (fileProviderModel.responseLabel ().contains (QStringLiteral (" The file ID is empty" )));
343+
344+ fileProviderModel.setFileId (" test-file-provider-id" );
345+ QCOMPARE (fileProviderModel.fileId (), QByteArray (" test-file-provider-id" ));
346+ QVERIFY (fileActionModelChangedSpy.count () > 0 );
347+ QVERIFY (fileProviderModel.rowCount () > 0 );
348+ QVERIFY (fileProviderModel.responseLabel ().isEmpty ());
349+ }
350+ #endif
311351};
312352
313353QTEST_MAIN (TestFileActionsModel)
0 commit comments