/* ============================================================ * The rekonq project * ============================================================ * SPDX-License-Identifier: GPL-3.0-only * Copyright (C) 2022 aqua * ============================================================ */ #include "../searchengine.hpp" #include "settings_mock.hpp" #include using ::testing::_; // NOLINT(bugprone-reserved-identifier) using ::testing::Matcher; using ::testing::Return; MATCHER_P(QStringEq, a, "") { *result_listener << "where the arg is " << qUtf8Printable(arg); return arg.compare(a) == 0; } TEST(SearchEngine, reload) { MockSettings settings; EXPECT_CALL(settings, beginGroup(QStringEq("SearchEngines"))).Times(1); EXPECT_CALL(settings, beginGroup(QStringEq("SearchEngines.ddg"))).Times(1); EXPECT_CALL(settings, endGroup).Times(2); EXPECT_CALL(settings, value(QStringEq("engines"))).Times(1).WillOnce(Return(QVariant{"ddg"})); EXPECT_CALL(settings, value(QStringEq("default"))).Times(1).WillOnce(Return(QVariant{"ddg"})); EXPECT_CALL(settings, value(QStringEq("name"))).Times(1).WillOnce(Return(QVariant{"DuckDuckGo"})); EXPECT_CALL(settings, value(QStringEq("url"))).Times(1).WillOnce(Return(QVariant{"https://dd.go/&q=%1"})); EXPECT_CALL(settings, value(QString("enabled"))).Times(1).WillOnce(Return(QVariant{true})); SearchEngine::reload(&settings); const auto engines = SearchEngine::engines(); EXPECT_EQ(engines.count(), 1); const auto *e = SearchEngine::defaultEngine(); ASSERT_NE(e, nullptr); EXPECT_THAT(e->name(), QStringEq("DuckDuckGo")); EXPECT_THAT(e->query("cats"), QStringEq("https://dd.go/&q=cats")); EXPECT_TRUE(e->isEnabled()); }