blob: c78b162982f467b56b6e7c0e03b49b5e706ff096 [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 Palanki02b81082022-11-10 18:26:3023 lens_region_search_ep, /* is_side_panel_request= */ false,
24 /* is_full_screen_region_search_request= */ false);
Duncan Mercer14dd5c022023-01-11 19:57:4625 EXPECT_THAT(query_param, MatchesRegex("ep=crs&re=df&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:1126}
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 Palanki02b81082022-11-10 18:26:3032 lens_image_search_ep, /* is_side_panel_request= */ false,
33 /* is_full_screen_region_search_request= */ false);
Duncan Mercer14dd5c022023-01-11 19:57:4634 EXPECT_THAT(query_param, MatchesRegex("ep=ccm&re=df&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:1135}
36
Bryan Nguyen252f9ac02023-01-31 00:05:1037TEST(LensUrlUtilsTest, GetImageTranslateNewTabQueryParameterTest) {
38 lens::EntryPoint lens_image_translate_ep = lens::EntryPoint::
39 CHROME_TRANSLATE_IMAGE_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
40 std::string query_param = lens::GetQueryParametersForLensRequest(
41 lens_image_translate_ep, /* is_side_panel_request= */ false,
42 /* is_full_screen_region_search_request= */ false);
43 EXPECT_THAT(query_param, MatchesRegex("ep=ccm&re=df&s=4&st=\\d+"));
44}
45
Duncan Mercer9c46b902022-08-19 17:55:1146TEST(LensUrlUtilsTest, GetRegionSearchSidePanelQueryParameterTest) {
47 lens::EntryPoint lens_region_search_ep =
48 lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
Duncan Mercer9c46b902022-08-19 17:55:1149 std::string query_param = lens::GetQueryParametersForLensRequest(
Anudeep Palanki02b81082022-11-10 18:26:3050 lens_region_search_ep, /* is_side_panel_request= */ true,
51 /* is_full_screen_region_search_request= */ false);
Duncan Mercer14dd5c022023-01-11 19:57:4652 EXPECT_THAT(query_param, MatchesRegex("ep=crs&re=dcsp&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:1153}
54
55TEST(LensUrlUtilsTest, GetImageSearchSidePanelQueryParameterTest) {
56 lens::EntryPoint lens_image_search_ep =
57 lens::EntryPoint::CHROME_SEARCH_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
Duncan Mercer9c46b902022-08-19 17:55:1158 std::string query_param = lens::GetQueryParametersForLensRequest(
Anudeep Palanki02b81082022-11-10 18:26:3059 lens_image_search_ep, /* is_side_panel_request= */ true,
60 /* is_full_screen_region_search_request= */ false);
Duncan Mercer14dd5c022023-01-11 19:57:4661 EXPECT_THAT(query_param, MatchesRegex("ep=ccm&re=dcsp&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:1162}
63
Bryan Nguyen252f9ac02023-01-31 00:05:1064TEST(LensUrlUtilsTest, GetImageTranslateSidePanelQueryParameterTest) {
65 lens::EntryPoint lens_image_translate_ep = lens::EntryPoint::
66 CHROME_TRANSLATE_IMAGE_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
67 std::string query_param = lens::GetQueryParametersForLensRequest(
68 lens_image_translate_ep, /* is_side_panel_request= */ true,
69 /* is_full_screen_region_search_request= */ false);
70 EXPECT_THAT(query_param, MatchesRegex("ep=ccm&re=dcsp&s=4&st=\\d+"));
71}
72
Duncan Mercer9c46b902022-08-19 17:55:1173TEST(LensUrlUtilsTest, GetOpenNewTabSidePanelParameterTest) {
74 lens::EntryPoint lens_open_new_tab_side_panel_ep =
75 lens::EntryPoint::CHROME_OPEN_NEW_TAB_SIDE_PANEL;
Duncan Mercer9c46b902022-08-19 17:55:1176 std::string query_param = lens::GetQueryParametersForLensRequest(
Anudeep Palanki02b81082022-11-10 18:26:3077 lens_open_new_tab_side_panel_ep, /* is_side_panel_request= */ false,
78 /* is_full_screen_region_search_request= */ false);
Duncan Mercer14dd5c022023-01-11 19:57:4679 EXPECT_THAT(query_param, MatchesRegex("ep=cnts&re=df&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:1180}
81
Anudeep Palanki02b81082022-11-10 18:26:3082TEST(LensUrlUtilsTest, GetFullscreenSearchQueryParameterTest) {
83 lens::EntryPoint lens_ep =
84 lens::EntryPoint::CHROME_FULLSCREEN_SEARCH_MENU_ITEM;
85 std::string query_param = lens::GetQueryParametersForLensRequest(
86 lens_ep, /* is_side_panel_request= */ false,
87 /* is_full_screen_region_search_request= */ true);
Duncan Mercer14dd5c022023-01-11 19:57:4688 EXPECT_THAT(query_param, MatchesRegex("ep=cfs&re=avsf&s=4&st=\\d+"));
Anudeep Palanki02b81082022-11-10 18:26:3089}
90
Duncan Mercer9c46b902022-08-19 17:55:1191TEST(LensUrlUtilsTest, GetUnknownEntryPointTest) {
Duncan Mercer9c46b902022-08-19 17:55:1192 std::string query_param = lens::GetQueryParametersForLensRequest(
Anudeep Palanki02b81082022-11-10 18:26:3093 lens::EntryPoint::UNKNOWN, /* is_side_panel_request= */ false,
94 /* is_full_screen_region_search_request= */ false);
Duncan Mercer14dd5c022023-01-11 19:57:4695 EXPECT_THAT(query_param, MatchesRegex("re=df&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:1196}
97
98TEST(LensUrlUtilsTest, GetUnknownEntryPointSidePanelTest) {
Duncan Mercer9c46b902022-08-19 17:55:1199 std::string query_param = lens::GetQueryParametersForLensRequest(
Anudeep Palanki02b81082022-11-10 18:26:30100 lens::EntryPoint::UNKNOWN, /* is_side_panel_request= */ true,
101 /* is_full_screen_region_search_request= */ false);
Duncan Mercer14dd5c022023-01-11 19:57:46102 EXPECT_THAT(query_param, MatchesRegex("re=dcsp&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:11103}
104
Duncan Mercer9c46b902022-08-19 17:55:11105TEST(LensUrlUtilsTest, AppendRegionSearchNewTabQueryParameterTest) {
106 lens::EntryPoint lens_region_search_ep =
107 lens::EntryPoint::CHROME_REGION_SEARCH_MENU_ITEM;
108 lens::RenderingEnvironment re =
109 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
110 GURL original_url = GURL("https://lens.google.com/");
111 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:09112 original_url, lens_region_search_ep, re,
113 /* is_side_panel_request= */ false);
Duncan Mercer14dd5c022023-01-11 19:57:46114 EXPECT_THAT(url.query(), MatchesRegex("ep=crs&re=df&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:11115}
116
117TEST(LensUrlUtilsTest, AppendImageSearchNewTabQueryParameterTest) {
118 lens::EntryPoint lens_image_search_ep =
119 lens::EntryPoint::CHROME_SEARCH_WITH_GOOGLE_LENS_CONTEXT_MENU_ITEM;
120 lens::RenderingEnvironment re =
121 lens::RenderingEnvironment::ONELENS_DESKTOP_WEB_FULLSCREEN;
122 GURL original_url = GURL("https://lens.google.com/");
123 GURL url = lens::AppendOrReplaceQueryParametersForLensRequest(
Anudeep Palankifd1c54e2022-09-13 20:03:09124 original_url, lens_image_search_ep, re,
125 /* is_side_panel_request= */ false);
Duncan Mercer14dd5c022023-01-11 19:57:46126 EXPECT_THAT(url.query(), MatchesRegex("ep=ccm&re=df&s=4&st=\\d+"));
Duncan Mercer9c46b902022-08-19 17:55:11127}
128
Bryan Nguyen252f9ac02023-01-31 00:05:10