| // Copyright 2014 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. |
| |
| #include "chrome/common/instant_types.h" |
| |
| #include "base/strings/utf_string_conversions.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| struct TestData { |
| const char* search_request_url; |
| const char* expected_search_query; |
| const char* expected_original_query; |
| const char* expected_rlz_param; |
| const char* expected_input_encoding; |
| const char* expected_assisted_query_stats; |
| }; |
| |
| TEST(EmbeddedSearchRequestParams, ExtractParams) { |
| TestData cases[] = { |
| {"https://foo/search?q=google&oq=g&rlz=30ls&ie=utf-8&aqs=chrome..6l5.j04", |
| "google", |
| "g", |
| "30ls", |
| "utf-8", |
| "chrome..6l5.j04" |
| }, |
| // Do not populate "rlz" param. |
| {"https://foo/search?q=google%20j&oq=g&ie=utf-8&aqs=chrome.2.65.j04", |
| "google j", |
| "g", |
| "", |
| "utf-8", |
| "chrome.2.65.j04" |
| }, |
| // Unescape search query. |
| {"https://foo/search?q=google+j&oq=g&rlz=30&ie=utf-8&aqs=chrome.2.65.j04", |
| "google j", |
| "g", |
| "30", |
| "utf-8", |
| "chrome.2.65.j04" |
| }, |
| // Unescape original query. |
| {"https://foo/search?q=g+j%20j&oq=g+j&rlz=30&ie=utf-8&aqs=chrome.2.65.j04", |
| "g j j", |
| "g j", |
| "30", |
| "utf-8", |
| "chrome.2.65.j04" |
| }, |
| }; |
| |
| for (size_t i = 0; i < arraysize(cases); ++i) { |
| EmbeddedSearchRequestParams params(GURL(cases[i].search_request_url)); |
| EXPECT_EQ(cases[i].expected_search_query, |
| base::UTF16ToASCII(params.search_query)) << "For index: " << i; |
| EXPECT_EQ(cases[i].expected_original_query, |
| base::UTF16ToASCII(params.original_query)) << "For index: " << i; |
| EXPECT_EQ(cases[i].expected_rlz_param, |
| base::UTF16ToASCII(params.rlz_parameter_value)) << |
| "For index: " << i; |
| EXPECT_EQ(cases[i].expected_input_encoding, |
| base::UTF16ToASCII(params.input_encoding)) << "For index: " << i; |
| EXPECT_EQ(cases[i].expected_assisted_query_stats, |
| base::UTF16ToASCII(params.assisted_query_stats)) << |
| "For index: " << i; |
| } |
| } |