Commit 84dcd99f authored by Yue Li's avatar Yue Li Committed by Chromium LUCI CQ

Reland "Quick Answers: Add page size options for Search request"

This is a reland of 8144dae3

Original change's description:
> Quick Answers: Add page size options for Search request
>
> Since we only use the first result from search request, set the page
> size to 1 to reduce the delay.
>
> Bug: b/173239982
> Test: None
> Change-Id: Ib2abd92e23b430b837f0556c31bcc0d17873256e
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2574072
> Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
> Reviewed-by: Jeroen Dhollander <jeroendh@chromium.org>
> Reviewed-by: Xiaohui Chen <xiaohuic@chromium.org>
> Commit-Queue: Yue Li <updowndota@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#833940}

Bug: b/173239982
Change-Id: I357edef540563fdbc8b5ba93bbb78ac127d827b4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2578262Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Reviewed-by: default avatarJeroen Dhollander <jeroendh@chromium.org>
Reviewed-by: default avatarXiaohui Chen <xiaohuic@chromium.org>
Commit-Queue: Yue Li <updowndota@chromium.org>
Cr-Commit-Position: refs/heads/master@{#835849}
parent 039e566d
......@@ -30,6 +30,9 @@ using network::mojom::URLLoaderFactory;
// "client_id": {
// "client_type": "EXPERIMENTAL"
// }
// "options": {
// "page_size": "1"
// }
// }
//
// Which is:
......@@ -38,12 +41,17 @@ using network::mojom::URLLoaderFactory;
// "raw_query": STRING
// "client_id": DICT
// "client_type": STRING
// "options": DICT
// "page_size": STRING
constexpr base::StringPiece kQueryKey = "query";
constexpr base::StringPiece kRawQueryKey = "rawQuery";
constexpr base::StringPiece kClientTypeKey = "clientType";
constexpr base::StringPiece kClientIdKey = "clientId";
constexpr base::StringPiece kClientType = "QUICK_ANSWERS_CROS";
constexpr base::StringPiece kPageSizeKey = "pageSize";
constexpr base::StringPiece kOptionsKey = "options";
constexpr base::StringPiece kPageSize = "1";
std::string BuildSearchRequestPayload(const std::string& selected_text) {
Value payload(Value::Type::DICTIONARY);
......@@ -57,6 +65,10 @@ std::string BuildSearchRequestPayload(const std::string& selected_text) {
client_id.SetKey(kClientTypeKey, Value(kClientType));
payload.SetKey(kClientIdKey, std::move(client_id));
Value options(Value::Type::DICTIONARY);
options.SetKey(kPageSizeKey, Value(kPageSize));
payload.SetKey(kOptionsKey, std::move(options));
std::string request_payload_str;
base::JSONWriter::Write(payload, &request_payload_str);
......
......@@ -73,33 +73,39 @@ TEST_F(SearchResultLoaderTest, Success) {
std::unique_ptr<QuickAnswer> expected_quick_answer =
std::make_unique<QuickAnswer>();
expected_quick_answer->primary_answer = "9.055 inches";
test_url_loader_factory_.AddResponse(assistant::kSampleKnowledgeApiRequest,
kValidResponse);
EXPECT_CALL(
*mock_delegate_,
OnQuickAnswerReceived(QuickAnswerEqual(expected_quick_answer.get())));
EXPECT_CALL(*mock_delegate_, OnNetworkError()).Times(0);
loader_->Fetch(PreprocessRequest(IntentInfo("23cm", IntentType::kUnknown)));
test_url_loader_factory_.SimulateResponseForPendingRequest(
assistant::kKnowledgeApiEndpoint, kValidResponse, net::HTTP_OK,
network::TestURLLoaderFactory::ResponseMatchFlags::kUrlMatchPrefix);
base::RunLoop().RunUntilIdle();
}
TEST_F(SearchResultLoaderTest, NetworkError) {
test_url_loader_factory_.AddResponse(
GURL(assistant::kSampleKnowledgeApiRequest),
network::mojom::URLResponseHead::New(), std::string(),
network::URLLoaderCompletionStatus(net::HTTP_NOT_FOUND));
EXPECT_CALL(*mock_delegate_, OnNetworkError());
EXPECT_CALL(*mock_delegate_, OnQuickAnswerReceived(testing::_)).Times(0);
loader_->Fetch(PreprocessRequest(IntentInfo("23cm", IntentType::kUnknown)));
test_url_loader_factory_.SimulateResponseForPendingRequest(
assistant::kKnowledgeApiEndpoint, std::string(), net::HTTP_NOT_FOUND,
network::TestURLLoaderFactory::ResponseMatchFlags::kUrlMatchPrefix);
base::RunLoop().RunUntilIdle();
}
TEST_F(SearchResultLoaderTest, EmptyResponse) {
test_url_loader_factory_.AddResponse(assistant::kSampleKnowledgeApiRequest,
std::string());
EXPECT_CALL(*mock_delegate_, OnQuickAnswerReceived(testing::Eq(nullptr)));
EXPECT_CALL(*mock_delegate_, OnNetworkError()).Times(0);
loader_->Fetch(PreprocessRequest(IntentInfo("23cm", IntentType::kUnknown)));
test_url_loader_factory_.SimulateResponseForPendingRequest(
assistant::kKnowledgeApiEndpoint, std::string(), net::HTTP_OK,
network::TestURLLoaderFactory::ResponseMatchFlags::kUrlMatchPrefix);
base::RunLoop().RunUntilIdle();
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment