blob: 28a0eb21a806f717fec6f0ab5a3e99f90c19b5b1 [file] [log] [blame]
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ASH_COMPONENTS_QUICK_ANSWERS_TEST_TEST_HELPERS_H_
#define ASH_COMPONENTS_QUICK_ANSWERS_TEST_TEST_HELPERS_H_
#include "ash/components/quick_answers/quick_answers_client.h"
#include "ash/components/quick_answers/quick_answers_model.h"
#include "ash/components/quick_answers/result_loader.h"
#include "ash/components/quick_answers/utils/quick_answers_utils.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace chromeos {
namespace quick_answers {
std::string GetQuickAnswerTextForTesting(
const std::vector<std::unique_ptr<QuickAnswerUiElement>>& elements);
class MockQuickAnswersDelegate : public QuickAnswersDelegate {
public:
MockQuickAnswersDelegate();
~MockQuickAnswersDelegate() override;
MockQuickAnswersDelegate(const MockQuickAnswersDelegate&) = delete;
MockQuickAnswersDelegate& operator=(const MockQuickAnswersDelegate&) = delete;
// QuickAnswersClient::QuickAnswersDelegate:
MOCK_METHOD1(OnQuickAnswerReceived, void(std::unique_ptr<QuickAnswer>));
MOCK_METHOD1(OnRequestPreprocessFinished, void(const QuickAnswersRequest&));
MOCK_METHOD0(OnNetworkError, void());
};
class MockResultLoaderDelegate : public ResultLoader::ResultLoaderDelegate {
public:
MockResultLoaderDelegate();
MockResultLoaderDelegate(const MockResultLoaderDelegate&) = delete;
MockResultLoaderDelegate& operator=(const MockResultLoaderDelegate&) = delete;
~MockResultLoaderDelegate() override;
// ResultLoader::ResultLoaderDelegate:
MOCK_METHOD0(OnNetworkError, void());
MOCK_METHOD1(OnQuickAnswerReceived, void(std::unique_ptr<QuickAnswer>));
};
MATCHER_P(QuickAnswerEqual, quick_answer, "") {
return (GetQuickAnswerTextForTesting(arg->first_answer_row) ==
GetQuickAnswerTextForTesting(quick_answer->first_answer_row) &&
GetQuickAnswerTextForTesting(arg->title) ==
GetQuickAnswerTextForTesting(quick_answer->title));
}
MATCHER_P(QuickAnswersRequestEqual, quick_answers_request, "") {
return (arg.selected_text == quick_answers_request.selected_text);
}
MATCHER_P(PreprocessedOutputEqual, preprocessed_output, "") {
return (arg.query == preprocessed_output.query);
}
} // namespace quick_answers
} // namespace chromeos
#endif // ASH_COMPONENTS_QUICK_ANSWERS_TEST_TEST_HELPERS_H_