blob: cac5a4fb49766efd7af1dddb5ffc0432ca2861f9 [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"
8#include "base/time/time.h"
9#include "components/lens/lens_entrypoints.h"
10#include "components/lens/lens_rendering_environment.h"
11#include "testing/gmock/include/gmock/gmock.h"
12#include "testing/gtest/include/gtest/gtest.h"
13#include "url/gurl.h"
14
15using ::testing::MatchesRegex;
16
17namespace lens {
18
19TEST(LensUrlUtilsTest, GetRegionSearchNewTabQueryParameterTest) {
20 lens::EntryPoint lens_region_search_ep =
21 lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:2322 lens::RenderingEnvironment re =
23 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
Duncan Mercer9c46b902022-08-19 17:55:1124 std::string query_param = lens::GetQueryParametersForLensRequest(
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:2325 lens_region_search_ep, re, /*is_side_panel_request=*/false);
Duncan Mercer9c46b902022-08-19 17:55:1126 EXPECT_THAT(query_param, MatchesRegex("ep=crs&re=df&s=&st=\\d+"));
27}
28
29TEST(LensUrlUtilsTest, GetImageSearchNewTabQueryParameterTest) {
30 lens::EntryPoint lens_image_search_ep =
31 lens::EntryPoint::CHROME_SEARCH_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:2332 lens::RenderingEnvironment re =
33 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
Duncan Mercer9c46b902022-08-19 17:55:1134 std::string query_param = lens::GetQueryParametersForLensRequest(
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:2335 lens_image_search_ep, re, /*is_side_panel_request=*/false);
Duncan Mercer9c46b902022-08-19 17:55:1136 EXPECT_THAT(query_param, MatchesRegex("ep=ccm&re=df&s=&st=\\d+"));
37}
38
39TEST(LensUrlUtilsTest, GetRegionSearchSidePanelQueryParameterTest) {
40 lens::EntryPoint lens_region_search_ep =
41 lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:2342 lens::RenderingEnvironment re =
43 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_CHROME_SIDE_PANEL;
Duncan Mercer9c46b902022-08-19 17:55:1144 std::string query_param = lens::GetQueryParametersForLensRequest(
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:2345 lens_region_search_ep, re, /*is_side_panel_request=*/true);
Duncan Mercer9c46b902022-08-19 17:55:1146 EXPECT_THAT(query_param, MatchesRegex("ep=crs&re=dcsp&s=csp&st=\\d+"));
47}
48
49TEST(LensUrlUtilsTest, GetImageSearchSidePanelQueryParameterTest) {
50 lens::EntryPoint lens_image_search_ep =
51 lens::EntryPoint::CHROME_SEARCH_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:2352 lens::RenderingEnvironment re =
53 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_CHROME_SIDE_PANEL;
Duncan Mercer9c46b902022-08-19 17:55:1154 std::string query_param = lens::GetQueryParametersForLensRequest(
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:2355 lens_image_search_ep, re, /*is_side_panel_request=*/true);
Duncan Mercer9c46b902022-08-19 17:55:1156 EXPECT_THAT(query_param, MatchesRegex("ep=ccm&re=dcsp&s=csp&st=\\d+"));
57}
58
59TEST(LensUrlUtilsTest, GetOpenNewTabSidePanelParameterTest) {
60 lens::EntryPoint lens_open_new_tab_side_panel_ep =
61 lens::EntryPoint::CHROME_OPEN_NEW_TAB_SIDE_PANEL;
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:2362 lens::RenderingEnvironment re =
63 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
Duncan Mercer9c46b902022-08-19 17:55:1164 std::string query_param = lens::GetQueryParametersForLensRequest(
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:2365 lens_open_new_tab_side_panel_ep, re, /*is_side_panel_request=*/false);
Duncan Mercer9c46b902022-08-19 17:55:1166 EXPECT_THAT(query_param, MatchesRegex("ep=cnts&re=df&s=&st=\\d+"));
67}
68
69TEST(LensUrlUtilsTest, GetFullscreenSearchQueryParameterTest) {
70 lens::EntryPoint lens_ep =
71 lens::EntryPoint::CHROME_FULLSCREEN_SEARCH_MENU_ITEM;
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:2372 lens::RenderingEnvironment re =
73 lens::RenderingEnvironment::ONELENS_AMBIENT_VISUAL_SEARCH_WEB_FULLSCREEN;
Duncan Mercer9c46b902022-08-19 17:55:1174 std::string query_param = lens::GetQueryParametersForLensRequest(
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:2375 lens_ep, re, /*is_side_panel_request=*/false);
Duncan Mercer9c46b902022-08-19 17:55:1176 EXPECT_THAT(query_param, MatchesRegex("ep=cfs&re=avsf&s=&st=\\d+"));
77}
78
79TEST(LensUrlUtilsTest, GetScreenshotSearchQueryParameterTest) {
80 lens::EntryPoint lens_ep = lens::EntryPoint::CHROME_SCREENSHOT_SEARCH;
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:2381 lens::RenderingEnvironment re =
82 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
Duncan Mercer9c46b902022-08-19 17:55:1183 std::string query_param = lens::GetQueryParametersForLensRequest(
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:2384 lens_ep, re, /*is_side_panel_request=*/false);
Duncan Mercer9c46b902022-08-19 17:55:1185 EXPECT_THAT(query_param, MatchesRegex("ep=css&re=df&s=&st=\\d+"));
86}
87
88TEST(LensUrlUtilsTest, GetUnknownEntryPointTest) {
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:2389 lens::RenderingEnvironment re =
90 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
Duncan Mercer9c46b902022-08-19 17:55:1191 std::string query_param = lens::GetQueryParametersForLensRequest(
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:2392 lens::EntryPoint::UNKNOWN, re, /*is_side_panel_request=*/false);
Duncan Mercer9c46b902022-08-19 17:55:1193 EXPECT_THAT(query_param, MatchesRegex("re=df&s=&st=\\d+"));
94}
95
96TEST(LensUrlUtilsTest, GetUnknownEntryPointSidePanelTest) {
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:2397 lens::RenderingEnvironment re =
98 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_CHROME_SIDE_PANEL;
Duncan Mercer9c46b902022-08-19 17:55:1199 std::string query_param = lens::GetQueryParametersForLensRequest(
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:23100 lens::EntryPoint::UNKNOWN, re, /*is_side_panel_request=*/true);
Duncan Mercer9c46b902022-08-19 17:55:11101 EXPECT_THAT(query_param, MatchesRegex("re=dcsp&s=csp&st=\\d+"));
102}
103
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:23104TEST(LensUrlUtilsTest, GetUnknownRenderingEnvironmentTest) {
105 lens::EntryPoint ep = lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
106 std::string query_param = lens::GetQueryParametersForLensRequest(
107 ep, lens::RenderingEnvironment::RENDERING_ENV_UNKNOWN,
108 /*is_side_panel_request=*/false);
109 EXPECT_THAT(query_param, MatchesRegex("ep=crs&s=&st=\\d+"));
110}
111
Duncan Mercer9c46b902022-08-19 17:55:11112TEST(LensUrlUtilsTest, AppendRegionSearchNewTabQueryParameterTest) {
113 lens::EntryPoint lens_region_search_ep =
114 lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
115 lens::RenderingEnvironment re =
116 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
117 GURL original_url = GURL("https://lens.google.com/");
118 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:23119 original_url, lens_region_search_ep, re, /*is_side_panel_request=*/false);
Duncan Mercer9c46b902022-08-19 17:55:11120 EXPECT_THAT(url.query(), MatchesRegex("ep=crs&re=df&s=&st=\\d+"));
121}
122
123TEST(LensUrlUtilsTest, AppendImageSearchNewTabQueryParameterTest) {
124 lens::EntryPoint lens_image_search_ep =
125 lens::EntryPoint::CHROME_SEARCH_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
126 lens::RenderingEnvironment re =
127 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
128 GURL original_url = GURL("https://lens.google.com/");
129 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:23130 original_url, lens_image_search_ep, re, /*is_side_panel_request=*/false);
Duncan Mercer9c46b902022-08-19 17:55:11131 EXPECT_THAT(url.query(), MatchesRegex("ep=ccm&re=df&s=&st=\\d+"));
132}
133
134TEST(LensUrlUtilsTest, AppendRegionSearchSidePanelQueryParameterTest) {
135 lens::EntryPoint lens_region_search_ep =
136 lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
137 lens::RenderingEnvironment re =
138 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_CHROME_SIDE_PANEL;
139 GURL original_url = GURL("https://lens.google.com/");
140 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:23141 original_url, lens_region_search_ep, re, /*is_side_panel_request=*/true);
Duncan Mercer9c46b902022-08-19 17:55:11142 EXPECT_THAT(url.query(), MatchesRegex("ep=crs&re=dcsp&s=csp&st=\\d+"));
143}
144
145TEST(LensUrlUtilsTest, AppendImageSearchSidePanelQueryParameterTest) {
146 lens::EntryPoint lens_image_search_ep =
147 lens::EntryPoint::CHROME_SEARCH_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
148 lens::RenderingEnvironment re =
149 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_CHROME_SIDE_PANEL;
150 GURL original_url = GURL("https://lens.google.com/");
151 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:23152 original_url, lens_image_search_ep, re, /*is_side_panel_request=*/true);
Duncan Mercer9c46b902022-08-19 17:55:11153 EXPECT_THAT(url.query(), MatchesRegex("ep=ccm&re=dcsp&s=csp&st=\\d+"));
154}
155
156TEST(LensUrlUtilsTest, AppendOpenNewTabSidePanelParameterTest) {
157 lens::EntryPoint lens_open_new_tab_side_panel_ep =
158 lens::EntryPoint::CHROME_OPEN_NEW_TAB_SIDE_PANEL;
159 lens::RenderingEnvironment re =
160 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
161 GURL original_url = GURL("https://lens.google.com/");
162 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
163 original_url, lens_open_new_tab_side_panel_ep, re,
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:23164 /*is_side_panel_request=*/false);
Duncan Mercer9c46b902022-08-19 17:55:11165 EXPECT_THAT(url.query(), MatchesRegex("ep=cnts&re=df&s=&st=\\d+"));
166}
167
168TEST(LensUrlUtilsTest, AppendFullscreenSearchQueryParameterTest) {
169 lens::EntryPoint lens_ep =
170 lens::EntryPoint::CHROME_FULLSCREEN_SEARCH_MENU_ITEM;
171 lens::RenderingEnvironment re =
172 lens::RenderingEnvironment::ONELENS_AMBIENT_VISUAL_SEARCH_WEB_FULLSCREEN;
173 GURL original_url = GURL("https://lens.google.com/");
174 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:23175 original_url, lens_ep, re, /*is_side_panel_request=*/false);
Duncan Mercer9c46b902022-08-19 17:55:11176 EXPECT_THAT(url.query(), MatchesRegex("ep=cfs&re=avsf&s=&st=\\d+"));
177}
178
179TEST(LensUrlUtilsTest, AppendScreenshotSearchQueryParameterTest) {
180 lens::EntryPoint lens_ep = lens::EntryPoint::CHROME_SCREENSHOT_SEARCH;
181 lens::RenderingEnvironment re =
182 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
183 GURL original_url = GURL("https://lens.google.com/");
184 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:23185 original_url, lens_ep, re, /*is_side_panel_request=*/false);
Duncan Mercer9c46b902022-08-19 17:55:11186 EXPECT_THAT(url.query(), MatchesRegex("ep=css&re=df&s=&st=\\d+"));
187}
188
189TEST(LensUrlUtilsTest, AppendUnknownEntryPointTest) {
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(
194 original_url, lens::EntryPoint::UNKNOWN, re,
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:23195 /*is_side_panel_request=*/false);
Duncan Mercer9c46b902022-08-19 17:55:11196 EXPECT_THAT(url.query(), MatchesRegex("re=df&s=&st=\\d+"));
197}
198
199TEST(LensUrlUtilsTest, AppendUnknownRenderingEnvironmentTest) {
200 lens::EntryPoint ep = lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
201 GURL original_url = GURL("https://lens.google.com/");
202 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
203 original_url, ep, lens::RenderingEnvironment::RENDERING_ENV_UNKNOWN,
Dominique Fauteux-Chapleaueb9de032022-09-09 18:28:23204 /*is_side_panel_request=*/false);
Duncan Mercer9c46b902022-08-19 17:55:11205 EXPECT_THAT(url.query(), MatchesRegex("ep=crs&s=&st=\\d+"));
206}
207
208} // namespace lens