#include "remoting/host/evaluate_capability.h"
#include "base/strings/string_util.h"
#include "remoting/host/base/switches.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace remoting {
namespace {
std::string NormalizeOutput(std::string output) {
base::ReplaceSubstringsAfterOffset(&output, 0, "\r\n", "\n");
base::ReplaceSubstringsAfterOffset(&output, 0, "\r", "\n");
while (output.find("\n\n") != std::string::npos) {
base::ReplaceSubstringsAfterOffset(&output, 0, "\n\n", "\n");
}
return output;
}
}
TEST(EvaluateCapabilityTest, DISABLED_ShouldReturnCrashResult) {
ASSERT_NE(EvaluateCapability("crash"), 0);
}
TEST(EvaluateCapabilityTest, ShouldReturnExitCodeAndOutput) {
std::string output;
ASSERT_EQ(EvaluateCapability("test", &output), 234);
ASSERT_EQ(
"In EvaluateTest(): Line 1\n"
"In EvaluateTest(): Line 2",
NormalizeOutput(output));
}
TEST(EvaluateCapabilityTest, ShouldReturnSuccessAndOutput) {
std::string output;
ASSERT_EQ(EvaluateCapability("success", &output), 0);
ASSERT_EQ("Success\n", NormalizeOutput(output));
}
}