blob: e7e27dc3fbb5d4c55bd8baeb2fb344163a9dd90b [file] [log] [blame]
Avi Drissman8ba1bad2022-09-13 19:22:361// Copyright 2021 The Chromium Authors
Duncan Mercer9c46b902022-08-19 17:55:112// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "components/lens/lens_url_utils.h"
6
7#include "base/strings/string_number_conversions.h"
Duncan Mercer0a35f5e7d2023-09-26 00:15:538#include "base/test/metrics/histogram_tester.h"
Duncan Mercer9c46b902022-08-19 17:55:119#include "base/time/time.h"
10#include "components/lens/lens_entrypoints.h"
11#include "components/lens/lens_rendering_environment.h"
12#include "testing/gmock/include/gmock/gmock.h"
13#include "testing/gtest/include/gtest/gtest.h"
14#include "url/gurl.h"
15
16using ::testing::MatchesRegex;
17
18namespace lens {
19
Jason Hu941e938492023-05-11 23:35:4620TEST(LensUrlUtilsTest, NonSidePanelRequestHasNoSidePanelSizeParams) {
21 lens::EntryPoint lens_region_search_ep =
22 lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
23 std::string query_param = lens::GetQueryParametersForLensRequest(
Jason Hubaf33a762023-06-15 17:45:3724 lens_region_search_ep, /*is_lens_side_panel_request=*/false,
Xiaohan Wang7b894e52023-11-01 20:07:4325 /*is_full_screen_request=*/false);
Jason Hu941e938492023-05-11 23:35:4626
27 // Despite passing in a nonzero size, there should not be any side panel
28 // viewport size params.
29 EXPECT_THAT(query_param, MatchesRegex("ep=crs&re=df&s=4&st=\\d+"));
30}
31
Jason Hu954b73282023-07-10 20:58:4532TEST(LensUrlUtilsTest,
33 AppendOrReplaceViewportSizeForRequestSetsSidePanelSizeParams) {
Duncan Mercer0a35f5e7d2023-09-26 00:15:5334 base::HistogramTester histogram_tester;
Jason Hu954b73282023-07-10 20:58:4535 GURL original_url = GURL("https://lens.google.com/");
36 GURL url = lens::AppendOrReplaceViewportSizeForRequest(original_url,
37 gfx::Size(10, 10));
38 EXPECT_THAT(url.query(), MatchesRegex("vpw=10&vph=10"));
Duncan Mercer0a35f5e7d2023-09-26 00:15:5339 histogram_tester.ExpectBucketCount(
40 "Search.Lens.ViewportDimensionsSent.Success", true, 1);
41}
42
43TEST(LensUrlUtilsTest,
44 AppendOrReplaceViewportSizeForRequestOnlySetsNonZeroSizes) {
45 base::HistogramTester histogram_tester;
46 GURL original_url = GURL("https://lens.google.com/");
47 GURL url_with_height = lens::AppendOrReplaceViewportSizeForRequest(
48 original_url, gfx::Size(0, 10));
49 EXPECT_THAT(url_with_height.query(), MatchesRegex("vph=10"));
50 GURL url_with_width = lens::AppendOrReplaceViewportSizeForRequest(
51 original_url, gfx::Size(10, 0));
52 EXPECT_THAT(url_with_width.query(), MatchesRegex("vpw=10"));
53 GURL url_with_neither = lens::AppendOrReplaceViewportSizeForRequest(
54 original_url, gfx::Size(0, 0));
55 EXPECT_THAT(url_with_neither.query(), MatchesRegex(""));
56 histogram_tester.ExpectBucketCount(
57 "Search.Lens.ViewportDimensionsSent.Success", false, 3);
Jason Hubaf33a762023-06-15 17:45:3758}
59
Duncan Mercer9c46b902022-08-19 17:55:1160TEST(LensUrlUtilsTest, GetRegionSearchNewTabQueryParameterTest) {
61 lens::EntryPoint lens_region_search_ep =
62 lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
Duncan Mercer9c46b902022-08-19 17:55:1163 std::string query_param = lens::GetQueryParametersForLensRequest(
Jason Hubaf33a762023-06-15 17:45:3764 lens_region_search_ep, /*is_lens_side_panel_request=*/false,
Xiaohan Wang7b894e52023-11-01 20:07:4365 /*is_full_screen_request=*/false);
Duncan Mercer14dd5c022023-01-11 19:57:4666 EXPECT_THAT(query_param, MatchesRegex("ep=crs&re=df&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:1167}
68
69TEST(LensUrlUtilsTest, GetImageSearchNewTabQueryParameterTest) {
70 lens::EntryPoint lens_image_search_ep =
71 lens::EntryPoint::CHROME_SEARCH_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
Duncan Mercer9c46b902022-08-19 17:55:1172 std::string query_param = lens::GetQueryParametersForLensRequest(
Jason Hubaf33a762023-06-15 17:45:3773 lens_image_search_ep, /*is_lens_side_panel_request=*/false,
Xiaohan Wang7b894e52023-11-01 20:07:4374 /*is_full_screen_request=*/false);
Duncan Mercer14dd5c022023-01-11 19:57:4675 EXPECT_THAT(query_param, MatchesRegex("ep=ccm&re=df&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:1176}
77
Bryan Nguyen252f9ac02023-01-31 00:05:1078TEST(LensUrlUtilsTest, GetImageTranslateNewTabQueryParameterTest) {
79 lens::EntryPoint lens_image_translate_ep = lens::EntryPoint::
80 CHROME_TRANSLATE_IMAGE_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
81 std::string query_param = lens::GetQueryParametersForLensRequest(
Jason Hubaf33a762023-06-15 17:45:3782 lens_image_translate_ep, /*is_lens_side_panel_request=*/false,
Xiaohan Wang7b894e52023-11-01 20:07:4383 /*is_full_screen_request=*/false);
Bryan Nguyenf0dbd082023-02-16 21:13:2284 EXPECT_THAT(query_param, MatchesRegex("ep=ctrcm&re=df&s=4&st=\\d+"));
Bryan Nguyen252f9ac02023-01-31 00:05:1085}
86
Duncan Mercer9c46b902022-08-19 17:55:1187TEST(LensUrlUtilsTest, GetRegionSearchSidePanelQueryParameterTest) {
88 lens::EntryPoint lens_region_search_ep =
89 lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
Duncan Mercer9c46b902022-08-19 17:55:1190 std::string query_param = lens::GetQueryParametersForLensRequest(
Jason Hubaf33a762023-06-15 17:45:3791 lens_region_search_ep, /*is_lens_side_panel_request=*/true,
Xiaohan Wang7b894e52023-11-01 20:07:4392 /*is_full_screen_request=*/false);
Duncan Mercer14dd5c022023-01-11 19:57:4693 EXPECT_THAT(query_param, MatchesRegex("ep=crs&re=dcsp&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:1194}
95
Ali Stanfielda8ecbd8a2023-07-28 00:28:3896TEST(LensUrlUtilsTest, GetRegionSearchCompanionQueryParameterTest) {
97 lens::EntryPoint lens_region_search_ep =
98 lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
99 std::string query_param = lens::GetQueryParametersForLensRequest(
100 lens_region_search_ep, /*is_lens_side_panel_request=*/true,
Xiaohan Wang7b894e52023-11-01 20:07:43101 /*is_full_screen_request=*/false,
Ali Stanfielda8ecbd8a2023-07-28 00:28:38102 /*is_companion_request=*/true);
103 EXPECT_THAT(query_param,
104 MatchesRegex("ep=crs&re=csc&s=4&source=chrome.gsc&st=\\d+"));
105}
106
Juan Mojica76c30452023-08-11 18:03:44107TEST(LensUrlUtilsTest, GetCompanionRegionSearchQueryParameterTest) {
108 lens::EntryPoint csc_region_search_ep =
109 lens::EntryPoint::COMPANION_REGION_SEARCH;
110 std::string query_param = lens::GetQueryParametersForLensRequest(
111 csc_region_search_ep, /*is_lens_side_panel_request=*/true,
Xiaohan Wang7b894e52023-11-01 20:07:43112 /*is_full_screen_request=*/false,
Juan Mojica76c30452023-08-11 18:03:44113 /*is_companion_request=*/true);
114 EXPECT_THAT(query_param,
115 MatchesRegex("ep=cscidr&re=csc&s=4&source=chrome.gsc&st=\\d+"));
116}
117
Duncan Mercer9c46b902022-08-19 17:55:11118TEST(LensUrlUtilsTest, GetImageSearchSidePanelQueryParameterTest) {
119 lens::EntryPoint lens_image_search_ep =
120 lens::EntryPoint::CHROME_SEARCH_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
Duncan Mercer9c46b902022-08-19 17:55:11121 std::string query_param = lens::GetQueryParametersForLensRequest(
Jason Hubaf33a762023-06-15 17:45:37122 lens_image_search_ep, /*is_lens_side_panel_request=*/true,
Xiaohan Wang7b894e52023-11-01 20:07:43123 /*is_full_screen_request=*/false);
Duncan Mercer14dd5c022023-01-11 19:57:46124 EXPECT_THAT(query_param, MatchesRegex("ep=ccm&re=dcsp&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:11125}
126
Ali Stanfielda8ecbd8a2023-07-28 00:28:38127TEST(LensUrlUtilsTest, GetImageSearchCompanionQueryParameterTest) {
128 lens::EntryPoint lens_image_search_ep =
129 lens::EntryPoint::CHROME_SEARCH_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
130 std::string query_param = lens::GetQueryParametersForLensRequest(
131 lens_image_search_ep, /*is_lens_side_panel_request=*/true,
Xiaohan Wang7b894e52023-11-01 20:07:43132 /*is_full_screen_request=*/false,
Ali Stanfielda8ecbd8a2023-07-28 00:28:38133 /*is_companion_request=*/true);
134 EXPECT_THAT(query_param,
135 MatchesRegex("ep=ccm&re=csc&s=4&source=chrome.gsc&st=\\d+"));
136}
137
Bryan Nguyen252f9ac02023-01-31 00:05:10138TEST(LensUrlUtilsTest, GetImageTranslateSidePanelQueryParameterTest) {
139 lens::EntryPoint lens_image_translate_ep = lens::EntryPoint::
140 CHROME_TRANSLATE_IMAGE_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
141 std::string query_param = lens::GetQueryParametersForLensRequest(
Jason Hubaf33a762023-06-15 17:45:37142 lens_image_translate_ep, /*is_lens_side_panel_request=*/true,
Xiaohan Wang7b894e52023-11-01 20:07:43143 /*is_full_screen_request=*/false);
Bryan Nguyenf0dbd082023-02-16 21:13:22144 EXPECT_THAT(query_param, MatchesRegex("ep=ctrcm&re=dcsp&s=4&st=\\d+"));
Bryan Nguyen252f9ac02023-01-31 00:05:10145}
146
Duncan Mercer9c46b902022-08-19 17:55:11147TEST(LensUrlUtilsTest, GetOpenNewTabSidePanelParameterTest) {
148 lens::EntryPoint lens_open_new_tab_side_panel_ep =
149 lens::EntryPoint::CHROME_OPEN_NEW_TAB_SIDE_PANEL;
Duncan Mercer9c46b902022-08-19 17:55:11150 std::string query_param = lens::GetQueryParametersForLensRequest(
Jason Hubaf33a762023-06-15 17:45:37151 lens_open_new_tab_side_panel_ep, /*is_lens_side_panel_request=*/false,
Xiaohan Wang7b894e52023-11-01 20:07:43152 /*is_full_screen_request=*/false);
Duncan Mercer14dd5c022023-01-11 19:57:46153 EXPECT_THAT(query_param, MatchesRegex("ep=cnts&re=df&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:11154}
155
Anudeep Palanki02b81082022-11-10 18:26:30156TEST(LensUrlUtilsTest, GetFullscreenSearchQueryParameterTest) {
157 lens::EntryPoint lens_ep =
158 lens::EntryPoint::CHROME_FULLSCREEN_SEARCH_MENU_ITEM;
159 std::string query_param = lens::GetQueryParametersForLensRequest(
Jason Hubaf33a762023-06-15 17:45:37160 lens_ep, /*is_lens_side_panel_request=*/false,
Xiaohan Wang7b894e52023-11-01 20:07:43161 /*is_full_screen_request=*/true);
Duncan Mercer14dd5c022023-01-11 19:57:46162 EXPECT_THAT(query_param, MatchesRegex("ep=cfs&re=avsf&s=4&st=\\d+"));
Anudeep Palanki02b81082022-11-10 18:26:30163}
164
Xiaohan Wang70e9d652023-11-27 22:30:25165TEST(LensUrlUtilsTest, GetVideoFrameSearchQueryParameterTest) {
166 auto lens_ep = lens::EntryPoint::CHROME_VIDEO_FRAME_SEARCH_CONTEXT_MENU_ITEM;
167 std::string query_param = lens::GetQueryParametersForLensRequest(
168 lens_ep, /*is_lens_side_panel_request=*/false,
169 /*is_full_screen_request=*/false);
170 EXPECT_THAT(query_param, MatchesRegex("ep=cvfs&re=df&s=4&st=\\d+"));
171}
172
Duncan Mercer9c46b902022-08-19 17:55:11173TEST(LensUrlUtilsTest, GetUnknownEntryPointTest) {
Duncan Mercer9c46b902022-08-19 17:55:11174 std::string query_param = lens::GetQueryParametersForLensRequest(
Jason Hubaf33a762023-06-15 17:45:37175 lens::EntryPoint::UNKNOWN, /*is_lens_side_panel_request=*/false,
Xiaohan Wang7b894e52023-11-01 20:07:43176 /*is_full_screen_request=*/false);
Duncan Mercer14dd5c022023-01-11 19:57:46177 EXPECT_THAT(query_param, MatchesRegex("re=df&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:11178}
179
180TEST(LensUrlUtilsTest, GetUnknownEntryPointSidePanelTest) {
Duncan Mercer9c46b902022-08-19 17:55:11181 std::string query_param = lens::GetQueryParametersForLensRequest(
Jason Hubaf33a762023-06-15 17:45:37182 lens::EntryPoint::UNKNOWN, /*is_lens_side_panel_request=*/true,
Xiaohan Wang7b894e52023-11-01 20:07:43183 /*is_full_screen_request=*/false);
Duncan Mercer14dd5c022023-01-11 19:57:46184 EXPECT_THAT(query_param, MatchesRegex("re=dcsp&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:11185}
186
Duncan Mercer9c46b902022-08-19 17:55:11187TEST(LensUrlUtilsTest, AppendRegionSearchNewTabQueryParameterTest) {
188 lens::EntryPoint lens_region_search_ep =
189 lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
190 lens::RenderingEnvironment re =
191 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
192 GURL original_url = GURL("https://lens.google.com/");
193 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:09194 original_url, lens_region_search_ep, re,
Jason Hu954b73282023-07-10 20:58:45195 /*is_side_panel_request=*/false);
Duncan Mercer14dd5c022023-01-11 19:57:46196 EXPECT_THAT(url.query(), MatchesRegex("ep=crs&re=df&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:11197}
198
199TEST(LensUrlUtilsTest, AppendImageSearchNewTabQueryParameterTest) {
200 lens::EntryPoint lens_image_search_ep =
201 lens::EntryPoint::CHROME_SEARCH_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
202 lens::RenderingEnvironment re =
203 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
204 GURL original_url = GURL("https://lens.google.com/");
205 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:09206 original_url, lens_image_search_ep, re,
Jason Hu954b73282023-07-10 20:58:45207 /*is_side_panel_request=*/false);
Duncan Mercer14dd5c022023-01-11 19:57:46208 EXPECT_THAT(url.query(), MatchesRegex("ep=ccm&re=df&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:11209}
210
Bryan Nguyen252f9ac02023-01-31 00:05:10211TEST(LensUrlUtilsTest, AppendImageTranslateNewTabQueryParameterTest) {
212 lens::EntryPoint lens_image_translate_ep = lens::EntryPoint::
213 CHROME_TRANSLATE_IMAGE_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
214 lens::RenderingEnvironment re =
215 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
216 GURL original_url = GURL("https://lens.google.com/");
217 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
218 original_url, lens_image_translate_ep, re,
Jason Hu954b73282023-07-10 20:58:45219 /*is_side_panel_request=*/false);
Bryan Nguyenf0dbd082023-02-16 21:13:22220 EXPECT_THAT(url.query(), MatchesRegex("ep=ctrcm&re=df&s=4&st=\\d+"));
Bryan Nguyen252f9ac02023-01-31 00:05:10221}
222
Duncan Mercer9c46b902022-08-19 17:55:11223TEST(LensUrlUtilsTest, AppendRegionSearchSidePanelQueryParameterTest) {
224 lens::EntryPoint lens_region_search_ep =
225 lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
226 lens::RenderingEnvironment re =
227 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_CHROME_SIDE_PANEL;
228 GURL original_url = GURL("https://lens.google.com/");
229 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:09230 original_url, lens_region_search_ep, re,
Jason Hu954b73282023-07-10 20:58:45231 /*is_side_panel_request=*/true);
Duncan Mercer14dd5c022023-01-11 19:57:46232 EXPECT_THAT(url.query(), MatchesRegex("ep=crs&re=dcsp&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:11233}
234
235TEST(LensUrlUtilsTest, AppendImageSearchSidePanelQueryParameterTest) {
236 lens::EntryPoint lens_image_search_ep =
237 lens::EntryPoint::CHROME_SEARCH_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
238 lens::RenderingEnvironment re =
239 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_CHROME_SIDE_PANEL;
240 GURL original_url = GURL("https://lens.google.com/");
241 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:09242 original_url, lens_image_search_ep, re,
Jason Hu954b73282023-07-10 20:58:45243 /*is_side_panel_request=*/true);
Duncan Mercer14dd5c022023-01-11 19:57:46244 EXPECT_THAT(url.query(), MatchesRegex("ep=ccm&re=dcsp&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:11245}
246
Bryan Nguyen252f9ac02023-01-31 00:05:10247TEST(LensUrlUtilsTest, AppendImageTranslateSidePanelQueryParameterTest) {
248 lens::EntryPoint lens_image_translate_ep = lens::EntryPoint::
249 CHROME_TRANSLATE_IMAGE_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
250 lens::RenderingEnvironment re =
251 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_CHROME_SIDE_PANEL;
252 GURL original_url = GURL("https://lens.google.com/");
253 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
254 original_url, lens_image_translate_ep, re,
Jason Hu954b73282023-07-10 20:58:45255 /*is_side_panel_request=*/true);
Bryan Nguyenf0dbd082023-02-16 21:13:22256 EXPECT_THAT(url.query(), MatchesRegex("ep=ctrcm&re=dcsp&s=4&st=\\d+"));
Bryan Nguyen252f9ac02023-01-31 00:05:10257}
258
Duncan Mercer9c46b902022-08-19 17:55:11259TEST(LensUrlUtilsTest, AppendOpenNewTabSidePanelParameterTest) {
260 lens::EntryPoint lens_open_new_tab_side_panel_ep =
261 lens::EntryPoint::CHROME_OPEN_NEW_TAB_SIDE_PANEL;
262 lens::RenderingEnvironment re =
263 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
264 GURL original_url = GURL("https://lens.google.com/");
265 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
266 original_url, lens_open_new_tab_side_panel_ep, re,
Jason Hu954b73282023-07-10 20:58:45267 /*is_side_panel_request=*/false);
Duncan Mercer14dd5c022023-01-11 19:57:46268 EXPECT_THAT(url.query(), MatchesRegex("ep=cnts&re=df&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:11269}
270
Anudeep Palanki02b81082022-11-10 18:26:30271TEST(LensUrlUtilsTest, AppendFullscreenSearchQueryParameterTest) {
272 lens::EntryPoint lens_ep =
273 lens::EntryPoint::CHROME_FULLSCREEN_SEARCH_MENU_ITEM;
274 lens::RenderingEnvironment re =
275 lens::RenderingEnvironment::ONELENS_AMBIENT_VISUAL_SEARCH_WEB_FULLSCREEN;
276 GURL original_url = GURL("https://lens.google.com/");
277 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Jason Hu954b73282023-07-10 20:58:45278 original_url, lens_ep, re, /*is_side_panel_request=*/false);
Duncan Mercer14dd5c022023-01-11 19:57:46279 EXPECT_THAT(url.query(), MatchesRegex("ep=cfs&re=avsf&s=4&st=\\d+"));
Anudeep Palanki02b81082022-11-10 18:26:30280}
281
Juan Mojica2650ecd82024-10-02 23:09:46282TEST(LensUrlUtilsTest, AppendLensOverlayLocationBarQueryParameterTest) {
283 lens::EntryPoint lens_ep = lens::EntryPoint::CHROME_LENS_OVERLAY_LOCATION_BAR;
284 lens::RenderingEnvironment re =
285 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
286 GURL original_url = GURL("https://lens.google.com/");
287 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
288 original_url, lens_ep, re, /*is_side_panel_request=*/false);
289 EXPECT_THAT(url.query(), MatchesRegex("ep=crmntob&re=df&s=4&st=\\d+"));
290}
291
Duncan Mercer9c46b902022-08-19 17:55:11292TEST(LensUrlUtilsTest, AppendUnknownEntryPointTest) {
293 lens::RenderingEnvironment re =
294 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
295 GURL original_url = GURL("https://lens.google.com/");
296 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
297 original_url, lens::EntryPoint::UNKNOWN, re,
Jason Hu954b73282023-07-10 20:58:45298 /*is_side_panel_request=*/false);
Duncan Mercer14dd5c022023-01-11 19:57:46299 EXPECT_THAT(url.query(), MatchesRegex("re=df&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:11300}
301
302TEST(LensUrlUtilsTest, AppendUnknownRenderingEnvironmentTest) {
303 lens::EntryPoint ep = lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
304 GURL original_url = GURL("https://lens.google.com/");
305 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
306 original_url, ep, lens::RenderingEnvironment::RENDERING_ENV_UNKNOWN,
Jason Hu954b73282023-07-10 20:58:45307 /*is_side_panel_request=*/false);
Duncan Mercer14dd5c022023-01-11 19:57:46308 EXPECT_THAT(url.query(), MatchesRegex("ep=crs&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:11309}
310
Shivani Patelafd94e42022-09-28 20:28:44311TEST(LensUrlUtilsTest, AppendEmptyLogsTest) {
312 std::vector<lens::mojom::LatencyLogPtr> log_data;
Anudeep Palanki02b81082022-11-10 18:26:30313 std::string query_param = lens::GetQueryParametersForLensRequest(
314 lens::EntryPoint::UNKNOWN,
Jason Hubaf33a762023-06-15 17:45:37315 /*is_lens_side_panel_request=*/true,
Xiaohan Wang7b894e52023-11-01 20:07:43316 /*is_full_screen_request=*/false);
Duncan Mercer14dd5c022023-01-11 19:57:46317 EXPECT_THAT(query_param, MatchesRegex("re=dcsp&s=4&st=\\d+"));
Shivani Patelafd94e42022-09-28 20:28:44318 lens::AppendLogsQueryParam(&query_param, std::move(log_data));
Duncan Mercer14dd5c022023-01-11 19:57:46319 EXPECT_THAT(query_param, MatchesRegex("re=dcsp&s=4&st=\\d+"));
Shivani Patelafd94e42022-09-28 20:28:44320}
321
322TEST(LensUrlUtilsTest, AppendPopulatedLogsTest) {
323 std::vector<lens::mojom::LatencyLogPtr> log_data;
324 log_data.push_back(lens::mojom::LatencyLog::New(
325 lens::mojom::Phase::DOWNSCALE_START, gfx::Size(), gfx::Size(),
Jason Hu74200662023-12-06 23:57:37326 lens::mojom::ImageFormat::ORIGINAL, base::Time::Now(),
327 /*encoded_size_bytes=*/0));
Anudeep Palanki02b81082022-11-10 18:26:30328 std::string query_param = lens::GetQueryParametersForLensRequest(
329 lens::EntryPoint::UNKNOWN,
Jason Hubaf33a762023-06-15 17:45:37330 /*is_lens_side_panel_request=*/true,
Xiaohan Wang7b894e52023-11-01 20:07:43331 /*is_full_screen_request=*/false);
Duncan Mercer14dd5c022023-01-11 19:57:46332 EXPECT_THAT(query_param, MatchesRegex("re=dcsp&s=4&st=\\d+"));
Shivani Patelafd94e42022-09-28 20:28:44333 lens::AppendLogsQueryParam(&query_param, std::move(log_data));
Duncan Mercer14dd5c022023-01-11 19:57:46334 EXPECT_THAT(query_param, MatchesRegex("re=dcsp&s=4&st=\\d+&lm.+"));
Shivani Patelafd94e42022-09-28 20:28:44335}
336
Jason Hu941e938492023-05-11 23:35:46337TEST(LensUrlUtilsTest, AppendNonSidePanelSettingsRemovesViewportSizeTest) {
338 lens::EntryPoint lens_image_search_ep =
339 lens::EntryPoint::CHROME_SEARCH_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
340 lens::RenderingEnvironment re =
341 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
342 GURL original_url =
343 GURL("https://lens.google.com/search?p=123&vph=10&vpw=10");
344 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
345 original_url, lens_image_search_ep, re,
Jason Hu954b73282023-07-10 20:58:45346 /*is_side_panel_request=*/false);
Jason Hu941e938492023-05-11 23:35:46347 EXPECT_THAT(url.query(), MatchesRegex("p=123&ep=ccm&re=df&s=4&st=\\d+"));
348}
349
Jason Hu96602512023-08-23 21:31:20350TEST(LensUrlUtilsTest, AppendStartTimeUpdatesParamForLensUrlTest) {
351 GURL original_url = GURL("https://lens.google.com/search?p=123");
352 GURL url = lens::AppendOrReplaceStartTimeIfLensRequest(original_url);
353 EXPECT_THAT(url.query(), MatchesRegex("p=123&st=\\d+"));
354}
355
356TEST(LensUrlUtilsTest, AppendStartTimeIgnoresNonLensUrlTest) {
357 GURL original_url = GURL("https://not-lens.com/search?p=123");
358 GURL url = lens::AppendOrReplaceStartTimeIfLensRequest(original_url);
359 EXPECT_THAT(url.query(), MatchesRegex("p=123"));
360}
361
Duncan Mercer9c46b902022-08-19 17:55:11362} // namespace lens