#include "test/application_mock.hpp" #include // NOLINTNEXTLINE(modernize-avoid-c-arrays) Application::Application(int &argc, char *argv[]) : SingleApplication(argc, argv) {} Application::~Application() = default; using ::testing::_; // NOLINT(bugprone-reserved-identifier) MATCHER_P(QStringEq, a, "") { *result_listener << "where the arg is " << qUtf8Printable(arg); return arg.compare(a) == 0; } MATCHER_P(QUrlEq, a, "") { *result_listener << "where the arg is " << qUtf8Printable(arg.toString()); return arg.toString().compare(a) == 0; } TEST(Application, parseCommandLine_url) { int argc = 2; // NOLINTNEXTLINE(modernize-avoid-c-arrays) char *argv[]{(char *)"FakeApplication", (char *)"about:blank"}; FakeApplication app(argc, argv); EXPECT_CALL(app, registerPlugin).Times(0); EXPECT_CALL(app, newView(QUrlEq("about:blank"), nullptr)).Times(1); EXPECT_CALL(app, newWindow).Times(1); ASSERT_TRUE(Application::instance() != nullptr); EXPECT_TRUE(app.pluginList().isEmpty()); EXPECT_TRUE(app.windowList().isEmpty()); EXPECT_TRUE(app.viewList().isEmpty()); app.parseCommandLine(app.instanceId(), {}); } TEST(Application, parseCommandLine_webapp) { int argc = 3; // NOLINTNEXTLINE(modernize-avoid-c-arrays) char *argv[]{(char *)"FakeApplication", (char *)"--webapp", (char *)"about:blank"}; FakeApplication app(argc, argv); EXPECT_CALL(app, registerPlugin).Times(0); EXPECT_CALL(app, newView(QUrlEq("about:blank"), nullptr)).Times(1); EXPECT_CALL(app, newWindow).Times(0); ASSERT_TRUE(Application::instance() != nullptr); EXPECT_TRUE(app.pluginList().isEmpty()); EXPECT_TRUE(app.windowList().isEmpty()); EXPECT_TRUE(app.viewList().isEmpty()); app.parseCommandLine(app.instanceId(), {}); } TEST(Application, parseCommandLine_load) { int argc = 3; // NOLINTNEXTLINE(modernize-avoid-c-arrays) char *argv[]{(char *)"FakeApplication", (char *)"--load", (char *)"libPlugin.so"}; FakeApplication app(argc, argv); EXPECT_CALL(app, registerPlugin(QStringEq("libPlugin.so"))).Times(1); EXPECT_CALL(app, newView).Times(1); EXPECT_CALL(app, newWindow).Times(1); ASSERT_TRUE(Application::instance() != nullptr); EXPECT_TRUE(app.pluginList().isEmpty()); EXPECT_TRUE(app.windowList().isEmpty()); EXPECT_TRUE(app.viewList().isEmpty()); app.parseCommandLine(app.instanceId(), {}); }