blob: 8e646bc78fa5d805c45198d3780abc5824719182 [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;
Duncan Mercer9c46b902022-08-19 17:55:1122 std::string query_param = lens::GetQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:0923 lens_region_search_ep, /* is_side_panel_request= */ false,
24 /* is_full_screen_region_search_request= */ false);
Duncan Mercer9c46b902022-08-19 17:55:1125 EXPECT_THAT(query_param, MatchesRegex("ep=crs&re=df&s=&st=\\d+"));
26}
27
28TEST(LensUrlUtilsTest, GetImageSearchNewTabQueryParameterTest) {
29 lens::EntryPoint lens_image_search_ep =
30 lens::EntryPoint::CHROME_SEARCH_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
Duncan Mercer9c46b902022-08-19 17:55:1131 std::string query_param = lens::GetQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:0932 lens_image_search_ep, /* is_side_panel_request= */ false,
33 /* is_full_screen_region_search_request= */ false);
Duncan Mercer9c46b902022-08-19 17:55:1134 EXPECT_THAT(query_param, MatchesRegex("ep=ccm&re=df&s=&st=\\d+"));
35}
36
37TEST(LensUrlUtilsTest, GetRegionSearchSidePanelQueryParameterTest) {
38 lens::EntryPoint lens_region_search_ep =
39 lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
Duncan Mercer9c46b902022-08-19 17:55:1140 std::string query_param = lens::GetQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:0941 lens_region_search_ep, /* is_side_panel_request= */ true,
42 /* is_full_screen_region_search_request= */ false);
Duncan Mercer9c46b902022-08-19 17:55:1143 EXPECT_THAT(query_param, MatchesRegex("ep=crs&re=dcsp&s=csp&st=\\d+"));
44}
45
46TEST(LensUrlUtilsTest, GetImageSearchSidePanelQueryParameterTest) {
47 lens::EntryPoint lens_image_search_ep =
48 lens::EntryPoint::CHROME_SEARCH_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
Duncan Mercer9c46b902022-08-19 17:55:1149 std::string query_param = lens::GetQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:0950 lens_image_search_ep, /* is_side_panel_request= */ true,
51 /* is_full_screen_region_search_request= */ false);
Duncan Mercer9c46b902022-08-19 17:55:1152 EXPECT_THAT(query_param, MatchesRegex("ep=ccm&re=dcsp&s=csp&st=\\d+"));
53}
54
55TEST(LensUrlUtilsTest, GetOpenNewTabSidePanelParameterTest) {
56 lens::EntryPoint lens_open_new_tab_side_panel_ep =
57 lens::EntryPoint::CHROME_OPEN_NEW_TAB_SIDE_PANEL;
Duncan Mercer9c46b902022-08-19 17:55:1158 std::string query_param = lens::GetQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:0959 lens_open_new_tab_side_panel_ep, /* is_side_panel_request= */ false,
60 /* is_full_screen_region_search_request= */ false);
Duncan Mercer9c46b902022-08-19 17:55:1161 EXPECT_THAT(query_param, MatchesRegex("ep=cnts&re=df&s=&st=\\d+"));
62}
63
64TEST(LensUrlUtilsTest, GetFullscreenSearchQueryParameterTest) {
65 lens::EntryPoint lens_ep =
66 lens::EntryPoint::CHROME_FULLSCREEN_SEARCH_MENU_ITEM;
Duncan Mercer9c46b902022-08-19 17:55:1167 std::string query_param = lens::GetQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:0968 lens_ep, /* is_side_panel_request= */ false,
69 /* is_full_screen_region_search_request= */ true);
Duncan Mercer9c46b902022-08-19 17:55:1170 EXPECT_THAT(query_param, MatchesRegex("ep=cfs&re=avsf&s=&st=\\d+"));
71}
72
73TEST(LensUrlUtilsTest, GetScreenshotSearchQueryParameterTest) {
74 lens::EntryPoint lens_ep = lens::EntryPoint::CHROME_SCREENSHOT_SEARCH;
Duncan Mercer9c46b902022-08-19 17:55:1175 std::string query_param = lens::GetQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:0976 lens_ep, /* is_side_panel_request= */ false,
77 /* is_full_screen_region_search_request= */ false);
Duncan Mercer9c46b902022-08-19 17:55:1178 EXPECT_THAT(query_param, MatchesRegex("ep=css&re=df&s=&st=\\d+"));
79}
80
81TEST(LensUrlUtilsTest, GetUnknownEntryPointTest) {
Duncan Mercer9c46b902022-08-19 17:55:1182 std::string query_param = lens::GetQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:0983 lens::EntryPoint::UNKNOWN, /* is_side_panel_request= */ false,
84 /* is_full_screen_region_search_request= */ false);
Duncan Mercer9c46b902022-08-19 17:55:1185 EXPECT_THAT(query_param, MatchesRegex("re=df&s=&st=\\d+"));
86}
87
88TEST(LensUrlUtilsTest, GetUnknownEntryPointSidePanelTest) {
Duncan Mercer9c46b902022-08-19 17:55:1189 std::string query_param = lens::GetQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:0990 lens::EntryPoint::UNKNOWN, /* is_side_panel_request= */ true,
91 /* is_full_screen_region_search_request= */ false);
Duncan Mercer9c46b902022-08-19 17:55:1192 EXPECT_THAT(query_param, MatchesRegex("re=dcsp&s=csp&st=\\d+"));
93}
94
Duncan Mercer9c46b902022-08-19 17:55:1195TEST(LensUrlUtilsTest, AppendRegionSearchNewTabQueryParameterTest) {
96 lens::EntryPoint lens_region_search_ep =
97 lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
98 lens::RenderingEnvironment re =
99 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
100 GURL original_url = GURL("https://lens.google.com/");
101 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:09102 original_url, lens_region_search_ep, re,
103 /* is_side_panel_request= */ false);
Duncan Mercer9c46b902022-08-19 17:55:11104 EXPECT_THAT(url.query(), MatchesRegex("ep=crs&re=df&s=&st=\\d+"));
105}
106
107TEST(LensUrlUtilsTest, AppendImageSearchNewTabQueryParameterTest) {
108 lens::EntryPoint lens_image_search_ep =
109 lens::EntryPoint::CHROME_SEARCH_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
110 lens::RenderingEnvironment re =
111 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
112 GURL original_url = GURL("https://lens.google.com/");
113 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:09114 original_url, lens_image_search_ep, re,
115 /* is_side_panel_request= */ false);
Duncan Mercer9c46b902022-08-19 17:55:11116 EXPECT_THAT(url.query(), MatchesRegex("ep=ccm&re=df&s=&st=\\d+"));
117}
118
119TEST(LensUrlUtilsTest, AppendRegionSearchSidePanelQueryParameterTest) {
120 lens::EntryPoint lens_region_search_ep =
121 lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
122 lens::RenderingEnvironment re =
123 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_CHROME_SIDE_PANEL;
124 GURL original_url = GURL("https://lens.google.com/");
125 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:09126 original_url, lens_region_search_ep, re,
127 /* is_side_panel_request= */ true);
Duncan Mercer9c46b902022-08-19 17:55:11128 EXPECT_THAT(url.query(), MatchesRegex("ep=crs&re=dcsp&s=csp&st=\\d+"));
129}
130
131TEST(LensUrlUtilsTest, AppendImageSearchSidePanelQueryParameterTest) {
132 lens::EntryPoint lens_image_search_ep =
133 lens::EntryPoint::CHROME_SEARCH_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
134 lens::RenderingEnvironment re =
135 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_CHROME_SIDE_PANEL;
136 GURL original_url = GURL("https://lens.google.com/");
137 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:09138 original_url, lens_image_search_ep, re,
139 /* is_side_panel_request= */ true);
Duncan Mercer9c46b902022-08-19 17:55:11140 EXPECT_THAT(url.query(), MatchesRegex("ep=ccm&re=dcsp&s=csp&st=\\d+"));
141}
142
143TEST(LensUrlUtilsTest, AppendOpenNewTabSidePanelParameterTest) {
144 lens::EntryPoint lens_open_new_tab_side_panel_ep =
145 lens::EntryPoint::CHROME_OPEN_NEW_TAB_SIDE_PANEL;
146 lens::RenderingEnvironment re =
147 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
148 GURL original_url = GURL("https://lens.google.com/");
149 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
150 original_url, lens_open_new_tab_side_panel_ep, re,
Anudeep Palankifd1c54e2022-09-13 20:03:09151 /* is_side_panel_request= */ false);
Duncan Mercer9c46b902022-08-19 17:55:11152 EXPECT_THAT(url.query(), MatchesRegex("ep=cnts&re=df&s=&st=\\d+"));
153}
154
155TEST(LensUrlUtilsTest, AppendFullscreenSearchQueryParameterTest) {
156 lens::EntryPoint lens_ep =
157 lens::EntryPoint::CHROME_FULLSCREEN_SEARCH_MENU_ITEM;
158 lens::RenderingEnvironment re =
159 lens::RenderingEnvironment::ONELENS_AMBIENT_VISUAL_SEARCH_WEB_FULLSCREEN;
160 GURL original_url = GURL("https://lens.google.com/");
161 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:09162 original_url, lens_ep, re, /* is_side_panel_request= */ false);
Duncan Mercer9c46b902022-08-19 17:55:11163 EXPECT_THAT(url.query(), MatchesRegex("ep=cfs&re=avsf&s=&st=\\d+"));
164}
165
166TEST(LensUrlUtilsTest, AppendScreenshotSearchQueryParameterTest) {
167 lens::EntryPoint lens_ep = lens::EntryPoint::CHROME_SCREENSHOT_SEARCH;
168 lens::RenderingEnvironment re =
169 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
170 GURL original_url = GURL("https://lens.google.com/");
171 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:09172 original_url, lens_ep, re, /* is_side_panel_request= */ false);
Duncan Mercer9c46b902022-08-19 17:55:11173 EXPECT_THAT(url.query(), MatchesRegex("ep=css&re=df&s=&st=\\d+"));
174}
175
176TEST(LensUrlUtilsTest, AppendUnknownEntryPointTest) {
177 lens::RenderingEnvironment re =
178 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
179 GURL original_url = GURL("https://lens.google.com/");
180 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
181 original_url, lens::EntryPoint::UNKNOWN, re,
Anudeep Palankifd1c54e2022-09-13 20:03:09182 /* is_side_panel_request= */ false);
Duncan Mercer9c46b902022-08-19 17:55:11183 EXPECT_THAT(url.query(), MatchesRegex("re=df&s=&st=\\d+"));
184}
185
186TEST(LensUrlUtilsTest, AppendUnknownRenderingEnvironmentTest) {
187 lens::EntryPoint ep = lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
188 GURL original_url = GURL("https://lens.google.com/");
189 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
190 original_url, ep, lens::RenderingEnvironment::RENDERING_ENV_UNKNOWN,
Anudeep Palankifd1c54e2022-09-13 20:03:09191 /* is_side_panel_request= */ false);
Duncan Mercer9c46b902022-08-19 17:55:11192 EXPECT_THAT(url.query(), MatchesRegex("ep=crs&s=&st=\\d+"));
193}
194
195} // namespace lens