|
@@ -2188,6 +2188,162 @@ TEST(testStatus, Test) {
|
|
|
EXPECT_TRUE(cm.isLoggedIn());
|
|
|
}
|
|
|
|
|
|
+/* =====================================
|
|
|
+ * test for extendedstatus
|
|
|
+ */
|
|
|
+
|
|
|
+TEST(testExtendedstatus, Negative) {
|
|
|
+ FileManMock fm;
|
|
|
+ CmdManForTest cm(fm, dummyDebugPrint);
|
|
|
+ cm.initLoggedIn();
|
|
|
+
|
|
|
+ std::string cmd;
|
|
|
+ std::vector<std::string> args;
|
|
|
+ Json::Value root;
|
|
|
+ CmdMan::CmdRet retvalCmd;
|
|
|
+ CmdMan::CmdRet retvalHdl;
|
|
|
+
|
|
|
+ // prepare cmd/args/root
|
|
|
+ cmd = "extendedstatus";
|
|
|
+ args = {};
|
|
|
+ root["command"] = "extendedstatus";
|
|
|
+ root["accept"] = false;
|
|
|
+ root["error"] = "some foobar went wrong";
|
|
|
+
|
|
|
+ // stick into cmdman
|
|
|
+ retvalCmd = cm.execute(cmd, args);
|
|
|
+ retvalHdl = cm.handle(root);
|
|
|
+
|
|
|
+ // check things
|
|
|
+ EXPECT_EQ(retvalCmd.type, CmdMan::send);
|
|
|
+ EXPECT_EQ(retvalCmd.msg["command"].asString(), "extendedstatus");
|
|
|
+ EXPECT_EQ(retvalHdl.type, CmdMan::error);
|
|
|
+ EXPECT_EQ(retvalHdl.msg["command"].asString(), "extendedstatus");
|
|
|
+ EXPECT_FALSE(retvalHdl.msg["accept"].asBool());
|
|
|
+ EXPECT_THAT(retvalHdl.msg["error"].asString(), testing::HasSubstr("some foobar went wrong"));
|
|
|
+
|
|
|
+ EXPECT_TRUE(cm.isLoggedIn());
|
|
|
+}
|
|
|
+
|
|
|
+TEST(testExtendedstatus, Positive) {
|
|
|
+ FileManMock fm;
|
|
|
+ CmdManForTest cm(fm, dummyDebugPrint);
|
|
|
+ cm.initLoggedIn();
|
|
|
+
|
|
|
+ std::string cmd;
|
|
|
+ std::vector<std::string> args;
|
|
|
+ Json::Value root, transfersclientserver, tcs1, tcs2, transfersserverserver, tss1, tss2, tss3;
|
|
|
+ CmdMan::CmdRet retvalCmd;
|
|
|
+ CmdMan::CmdRet retvalHdl;
|
|
|
+
|
|
|
+ // prepare cmd/args/root
|
|
|
+ cmd = "extendedstatus";
|
|
|
+ args = {};
|
|
|
+ root["command"] = "extendedstatus";
|
|
|
+ root["accept"] = true;
|
|
|
+
|
|
|
+ tcs1["upload"] = true;
|
|
|
+ tcs1["file"] = "green.txt";
|
|
|
+ tcs1["progress"] = 99;
|
|
|
+ transfersclientserver.append(tcs1);
|
|
|
+ tcs2["upload"] = false;
|
|
|
+ tcs2["file"] = "red.txt";
|
|
|
+ tcs2["progress"] = 2;
|
|
|
+ transfersclientserver.append(tcs2);
|
|
|
+ root["transfersclientserver"] = transfersclientserver;
|
|
|
+
|
|
|
+ tss1["type"] = "upload";
|
|
|
+ tss1["file"] = "cyan.txt";
|
|
|
+ tss1["progress"] = 100;
|
|
|
+ tss1["method"] = "urg field";
|
|
|
+ tss1["speed"] = 42.0f;
|
|
|
+ transfersserverserver.append(tss1);
|
|
|
+ tss2["type"] = "download";
|
|
|
+ tss2["file"] = "magenta.txt";
|
|
|
+ tss2["progress"] = 42;
|
|
|
+ tss2["method"] = "fancy thing";
|
|
|
+ tss2["speed"] = 0.1f;
|
|
|
+ transfersserverserver.append(tss2);
|
|
|
+ tss3["type"] = "queued";
|
|
|
+ tss3["file"] = "yellow.txt";
|
|
|
+ tss3["progress"] = 42;
|
|
|
+ tss3["method"] = "cool timing stuff";
|
|
|
+ tss3["speed"] = 9000.001f;
|
|
|
+ transfersserverserver.append(tss3);
|
|
|
+ root["transfersserverserver"] = transfersserverserver;
|
|
|
+
|
|
|
+ // stick into cmdman
|
|
|
+ retvalCmd = cm.execute(cmd, args);
|
|
|
+ retvalHdl = cm.handle(root);
|
|
|
+
|
|
|
+ // check things
|
|
|
+ EXPECT_EQ(retvalCmd.type, CmdMan::send);
|
|
|
+ EXPECT_EQ(retvalCmd.msg["command"].asString(), "extendedstatus");
|
|
|
+ EXPECT_EQ(retvalHdl.type, CmdMan::print);
|
|
|
+ EXPECT_EQ(retvalHdl.msg["command"].asString(), "extendedstatus");
|
|
|
+ EXPECT_TRUE(retvalHdl.msg["accept"].asBool());
|
|
|
+
|
|
|
+ EXPECT_TRUE(retvalHdl.msg["transfersclientserver"][0]["upload"].asBool());
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersclientserver"][0]["file"].asString(), "green.txt");
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersclientserver"][0]["progress"].asInt(), 99);
|
|
|
+ EXPECT_FALSE(retvalHdl.msg["transfersclientserver"][1]["upload"].asBool());
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersclientserver"][1]["file"].asString(), "red.txt");
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersclientserver"][1]["progress"].asInt(), 2);
|
|
|
+
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersserverserver"][0]["type"].asString(), "upload");
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersserverserver"][0]["file"].asString(), "cyan.txt");
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersserverserver"][0]["progress"].asInt(), 100);
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersserverserver"][0]["method"].asString(), "urg field");
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersserverserver"][0]["speed"].asFloat(), 42.0f);
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersserverserver"][1]["type"].asString(), "download");
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersserverserver"][1]["file"].asString(), "magenta.txt");
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersserverserver"][1]["progress"].asInt(), 42);
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersserverserver"][1]["method"].asString(), "fancy thing");
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersserverserver"][1]["speed"].asFloat(), 0.1f);
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersserverserver"][2]["type"].asString(), "queued");
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersserverserver"][2]["file"].asString(), "yellow.txt");
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersserverserver"][2]["progress"].asInt(), 42);
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersserverserver"][2]["method"].asString(), "cool timing stuff");
|
|
|
+ EXPECT_EQ(retvalHdl.msg["transfersserverserver"][2]["speed"].asFloat(), 9000.001f);
|
|
|
+
|
|
|
+ EXPECT_TRUE(cm.isLoggedIn());
|
|
|
+}
|
|
|
+
|
|
|
+TEST(testExtendedstatus, Positive_NoTransfersRunning) {
|
|
|
+ FileManMock fm;
|
|
|
+ CmdManForTest cm(fm, dummyDebugPrint);
|
|
|
+ cm.initLoggedIn();
|
|
|
+
|
|
|
+ std::string cmd;
|
|
|
+ std::vector<std::string> args;
|
|
|
+ Json::Value root, transfersclientserver, transfersserverserver;
|
|
|
+ CmdMan::CmdRet retvalCmd;
|
|
|
+ CmdMan::CmdRet retvalHdl;
|
|
|
+
|
|
|
+ // prepare cmd/args/root
|
|
|
+ cmd = "extendedstatus";
|
|
|
+ args = {};
|
|
|
+ root["command"] = "extendedstatus";
|
|
|
+ root["accept"] = true;
|
|
|
+ root["transfersclientserver"] = transfersclientserver;
|
|
|
+ root["transfersserverserver"] = transfersserverserver;
|
|
|
+
|
|
|
+ // stick into cmdman
|
|
|
+ retvalCmd = cm.execute(cmd, args);
|
|
|
+ retvalHdl = cm.handle(root);
|
|
|
+
|
|
|
+ // check things
|
|
|
+ EXPECT_EQ(retvalCmd.type, CmdMan::send);
|
|
|
+ EXPECT_EQ(retvalCmd.msg["command"].asString(), "extendedstatus");
|
|
|
+ EXPECT_EQ(retvalHdl.type, CmdMan::print);
|
|
|
+ EXPECT_EQ(retvalHdl.msg["command"].asString(), "extendedstatus");
|
|
|
+ EXPECT_TRUE(retvalHdl.msg["accept"].asBool());
|
|
|
+ EXPECT_TRUE(retvalHdl.msg["transfersclientserver"].empty());
|
|
|
+ EXPECT_TRUE(retvalHdl.msg["transfersserverserver"].empty());
|
|
|
+
|
|
|
+ EXPECT_TRUE(cm.isLoggedIn());
|
|
|
+}
|
|
|
+
|
|
|
/* =====================================
|
|
|
* tests for help
|
|
|
*/
|
|
@@ -2656,7 +2812,8 @@ TEST(testCommandsWithRequiredLogin, NotLoggedInOrNotConnected) {
|
|
|
CmdMan::CmdRet retval1, retval2, retval3;
|
|
|
|
|
|
// prepare cmd/args
|
|
|
- std::vector<std::string> cmds = {"put", "get", "list", "putdata", "getdata", "listdata", "head", "deletefile", "deleteme", "keyfile", "closekey"};
|
|
|
+ std::vector<std::string> cmds = {"put", "get", "list", "putdata", "getdata", "listdata",
|
|
|
+ "head", "deletefile", "deleteme", "keyfile", "closekey", "extendedstatus"};
|
|
|
// as every command works fine with too many args, we will simply pass three to all of them
|
|
|
std::vector<std::string> args = {"arg1", "arg2", "arg3"};
|
|
|
|