aboutsummaryrefslogtreecommitdiff
path: root/engines/testbed
diff options
context:
space:
mode:
authorAlexander Tkachev2016-07-18 14:58:10 +0600
committerAlexander Tkachev2016-08-24 16:07:55 +0600
commit04888cf454fb3243e82d424d46af1e2ca74d0b8c (patch)
tree2e3e2e4a3529e600957e6b12d9441e773dceab9a /engines/testbed
parent4e2725135674515821247307ab8358069d1db48c (diff)
downloadscummvm-rg350-04888cf454fb3243e82d424d46af1e2ca74d0b8c.tar.gz
scummvm-rg350-04888cf454fb3243e82d424d46af1e2ca74d0b8c.tar.bz2
scummvm-rg350-04888cf454fb3243e82d424d46af1e2ca74d0b8c.zip
TESTBED: Add CloudTests::testSavesSync()
Diffstat (limited to 'engines/testbed')
-rw-r--r--engines/testbed/cloud.cpp55
-rw-r--r--engines/testbed/cloud.h2
2 files changed, 57 insertions, 0 deletions
diff --git a/engines/testbed/cloud.cpp b/engines/testbed/cloud.cpp
index 9c6563c292..9d10d7d051 100644
--- a/engines/testbed/cloud.cpp
+++ b/engines/testbed/cloud.cpp
@@ -43,6 +43,7 @@ CloudTestSuite::CloudTestSuite() {
addTest("FileUpload", &CloudTests::testUploading, true);
addTest("FileDownload", &CloudTests::testDownloading, true);
addTest("FolderDownload", &CloudTests::testFolderDownloading, true);
+ addTest("SyncSaves", &CloudTests::testSavesSync, true);
}
/*
@@ -148,6 +149,15 @@ void CloudTests::directoryDownloadedCallback(Cloud::Storage::FileArrayResponse r
}
}
+void CloudTests::savesSyncedCallback(Cloud::Storage::BoolResponse response) {
+ ConfParams.setCloudTestCallbackCalled(true);
+ if (response.value) {
+ Testsuite::logPrintf("Info! Saves are synced successfully!\n");
+ } else {
+ Testsuite::logPrintf("Warning! Saves were not synced!\n");
+ }
+}
+
void CloudTests::errorCallback(Networking::ErrorResponse response) {
ConfParams.setCloudTestErrorCallbackCalled(true);
Testsuite::logPrintf("Info! Error Callback was called\n");
@@ -501,4 +511,49 @@ TestExitStatus CloudTests::testFolderDownloading() {
return kTestPassed;
}
+TestExitStatus CloudTests::testSavesSync() {
+ ConfParams.setCloudTestCallbackCalled(false);
+ ConfParams.setCloudTestErrorCallbackCalled(false);
+
+ if (CloudMan.getCurrentStorage() == nullptr) {
+ Testsuite::logPrintf("Couldn't find connected Storage\n");
+ return kTestFailed;
+ }
+
+ Common::String info = "Testing Cloud Storage API syncSaves() method.\n"
+ "In this test we'll try to sync your saves.";
+
+ if (Testsuite::handleInteractiveInput(info, "OK", "Skip", kOptionRight)) {
+ Testsuite::logPrintf("Info! Skipping test : syncSaves()\n");
+ return kTestSkipped;
+ }
+
+ const Common::String &path = ConfMan.get("path");
+ Common::FSDirectory gameRoot(path);
+ Common::FSNode node = gameRoot.getFSNode().getChild("downloaded_directory");
+ Common::String filepath = node.getPath();
+ if (CloudMan.syncSaves(
+ new Common::GlobalFunctionCallback<Cloud::Storage::BoolResponse>(&savesSyncedCallback),
+ new Common::GlobalFunctionCallback<Networking::ErrorResponse>(&errorCallback)
+ ) == nullptr) {
+ Testsuite::logPrintf("Warning! No Request is returned!\n");
+ }
+
+ if (!waitForCallbackMore()) return kTestSkipped;
+ Testsuite::clearScreen();
+
+ if (ConfParams.isCloudTestErrorCallbackCalled()) {
+ Testsuite::logPrintf("Error callback was called\n");
+ return kTestFailed;
+ }
+
+ if (Testsuite::handleInteractiveInput("Was the CloudMan able to sync saves?", "Yes", "No", kOptionRight)) {
+ Testsuite::logDetailedPrintf("Error! Saves were not synced!\n");
+ return kTestFailed;
+ }
+
+ Testsuite::logDetailedPrintf("Saves were synced successfully\n");
+ return kTestPassed;
+}
+
} // End of namespace Testbed
diff --git a/engines/testbed/cloud.h b/engines/testbed/cloud.h
index e9df51c27b..aa6ed8706e 100644
--- a/engines/testbed/cloud.h
+++ b/engines/testbed/cloud.h
@@ -42,6 +42,7 @@ void directoryCreatedCallback(Cloud::Storage::BoolResponse response);
void fileUploadedCallback(Cloud::Storage::UploadResponse response);
void fileDownloadedCallback(Cloud::Storage::BoolResponse response);
void directoryDownloadedCallback(Cloud::Storage::FileArrayResponse response);
+void savesSyncedCallback(Cloud::Storage::BoolResponse response);
void errorCallback(Networking::ErrorResponse response);
TestExitStatus testInfo();
@@ -50,6 +51,7 @@ TestExitStatus testDirectoryCreating();
TestExitStatus testUploading();
TestExitStatus testDownloading();
TestExitStatus testFolderDownloading();
+TestExitStatus testSavesSync();
} // End of namespace CloudTests