Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1414)

Unified Diff: chrome/browser/android/contextualsearch/contextual_search_delegate_unittest.cc

Issue 2351283002: [TTS] Decode Now on Tap results for v1 integration. (Closed)
Patch Set: Used command-line switch for test, rollback changes needed for the field trial subclass. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/android/contextualsearch/contextual_search_delegate.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/android/contextualsearch/contextual_search_delegate_unittest.cc
diff --git a/chrome/browser/android/contextualsearch/contextual_search_delegate_unittest.cc b/chrome/browser/android/contextualsearch/contextual_search_delegate_unittest.cc
index 3c37e34ba1de1d150c4b2181860e4ae5841a23df..56a25b7473b904f09a2289cf0ff74b4b50854563 100644
--- a/chrome/browser/android/contextualsearch/contextual_search_delegate_unittest.cc
+++ b/chrome/browser/android/contextualsearch/contextual_search_delegate_unittest.cc
@@ -6,9 +6,12 @@
#include <stddef.h>
+#include <algorithm>
#include <memory>
+#include <string>
#include "base/base64.h"
+#include "base/command_line.h"
#include "base/macros.h"
#include "base/memory/ptr_util.h"
#include "base/message_loop/message_loop.h"
@@ -17,6 +20,7 @@
#include "chrome/browser/android/contextualsearch/contextual_search_context.h"
#include "chrome/browser/android/contextualsearch/resolved_search_term.h"
#include "chrome/browser/android/proto/client_discourse_context.pb.h"
+#include "chrome/common/chrome_switches.h"
#include "components/search_engines/template_url_service.h"
#include "net/base/escape.h"
#include "net/url_request/test_url_fetcher_factory.h"
@@ -39,6 +43,8 @@ class ContextualSearchDelegateTest : public testing::Test {
protected:
void SetUp() override {
+ base::CommandLine::ForCurrentProcess()->AppendSwitch(
+ switches::kEnableContextualSearchNowOnTapBarIntegration);
request_context_ =
new net::TestURLRequestContextGetter(io_message_loop_.task_runner());
template_url_service_.reset(CreateTemplateURLService());
@@ -101,6 +107,34 @@ class ContextualSearchDelegateTest : public testing::Test {
ASSERT_TRUE(fetcher());
}
+ // Allows using the vertical bar "|" as a quote character, which makes
+ // test cases more readable versus the escaped double quote that is otherwise
+ // needed for JSON literals.
+ std::string escapeBarQuoted(std::string bar_quoted) {
+ std::replace(bar_quoted.begin(), bar_quoted.end(), '|', '\"');
+ return bar_quoted;
+ }
+
+ void CreateDefaultSearchWithContextualCardsData(
+ const std::string contextual_cards_data) {
+ CreateDefaultSearchContextAndRequestSearchTerm();
+ fetcher()->set_response_code(200);
+ std::string response =
+ escapeBarQuoted("{|search_term|:|obama|" + contextual_cards_data + "}");
+ fetcher()->SetResponseString(response);
+ fetcher()->delegate()->OnURLFetchComplete(fetcher());
+
+ EXPECT_FALSE(is_invalid());
+ EXPECT_EQ(200, response_code());
+ EXPECT_EQ("obama", search_term());
+ }
+
+ void CreateDefaultSearchWithContextualCardsValue(
+ const std::string contextual_cards_value) {
+ CreateDefaultSearchWithContextualCardsData(", |contextual_cards|:" +
+ contextual_cards_value);
+ }
+
void SetResponseStringAndFetch(const std::string& selected_text,
const std::string& mentions_start,
const std::string& mentions_end) {
@@ -172,6 +206,8 @@ class ContextualSearchDelegateTest : public testing::Test {
std::string display_text() { return display_text_; }
std::string alternate_term() { return alternate_term_; }
std::string mid() { return mid_; }
+ std::string caption() { return caption_; }
+ std::string thumbnail_url() { return thumbnail_url_; }
bool do_prevent_preload() { return prevent_preload_; }
std::string after_text() { return after_text_; }
int start_adjust() { return start_adjust_; }
@@ -190,6 +226,8 @@ class ContextualSearchDelegateTest : public testing::Test {
display_text_ = resolved_search_term.display_text;
alternate_term_ = resolved_search_term.alternate_term;
mid_ = resolved_search_term.mid;
+ thumbnail_url_ = resolved_search_term.thumbnail_url;
+ caption_ = resolved_search_term.caption;
prevent_preload_ = resolved_search_term.prevent_preload;
start_adjust_ = resolved_search_term.selection_start_adjust;
end_adjust_ = resolved_search_term.selection_end_adjust;
@@ -213,6 +251,8 @@ class ContextualSearchDelegateTest : public testing::Test {
std::string display_text_;
std::string alternate_term_;
std::string mid_;
+ std::string thumbnail_url_;
+ std::string caption_;
bool prevent_preload_;
int start_adjust_;
int end_adjust_;
@@ -543,3 +583,86 @@ TEST_F(ContextualSearchDelegateTest, HeaderContainsBasePageUrl) {
CreateDefaultSearchContextAndRequestSearchTerm();
EXPECT_EQ(kSomeSpecificBasePage, getBasePageUrlFromRequest());
}
+
+// Tests a response with a single card from Contextual Cards.
+TEST_F(ContextualSearchDelegateTest,
+ ContextualCardsResponseSingleCardBarQuotedTest) {
+ CreateDefaultSearchWithContextualCardsValue(
+ "{|cards|:[{|singleCard|:{|subtitle|: |president|,"
+ "|thumbnail|:{|uri|:|https://t0.gstatic.com/images?q=tbn:ANd9|}}}]}");
+ EXPECT_EQ("president", caption());
+ EXPECT_EQ("https://t0.gstatic.com/images?q=tbn:ANd9", thumbnail_url());
+}
+
+// Missing all Contextual Cards data.
+TEST_F(ContextualSearchDelegateTest, ContextualCardsResponseWithNoData) {
+ CreateDefaultSearchWithContextualCardsData("");
+ EXPECT_EQ("", caption());
+ EXPECT_EQ("", thumbnail_url());
+}
+
+// Missing subtitle (for caption).
+TEST_F(ContextualSearchDelegateTest,
+ ContextualCardsResponseWithMissingCaption) {
+ CreateDefaultSearchWithContextualCardsValue(
+ "{|cards|:[{|singleCard|:{|stubtitlemisspelled|: |president|,"
+ "|thumbnail|:{|uri|:|https://t0.gstatic.com/images?q=tbn:ANd9|}}}]}");
+ EXPECT_EQ("", caption());
+ EXPECT_EQ("https://t0.gstatic.com/images?q=tbn:ANd9", thumbnail_url());
+}
+
+// Missing the Thumbnail URI.
+TEST_F(ContextualSearchDelegateTest,
+ ContextualCardsResponseWithMissingThumbnailUri) {
+ CreateDefaultSearchWithContextualCardsValue(
+ "{|cards|:[{|singleCard|:{|subtitle|: |president|,"
+ "|thumbnail|:{}}}]}");
+ EXPECT_EQ("president", caption());
+ EXPECT_EQ("", thumbnail_url());
+}
+
+// Missing the whole Thumbnail.
+TEST_F(ContextualSearchDelegateTest,
+ ContextualCardsResponseWithMissingThumbnail) {
+ CreateDefaultSearchWithContextualCardsValue(
+ "{|cards|:[{|singleCard|:{|subtitle|: |president|,"
+ "|ignored key|:|ignored value|}}]}");
+ EXPECT_EQ("president", caption());
+ EXPECT_EQ("", thumbnail_url());
+}
+
+// Empty cards list.
+TEST_F(ContextualSearchDelegateTest,
+ ContextualCardsResponseWithMissingSingleCard) {
+ CreateDefaultSearchWithContextualCardsValue("{|cards|:[]}");
+ EXPECT_EQ("", caption());
+ EXPECT_EQ("", thumbnail_url());
+}
+
+// Tests carouselCard followed by singleCard.
+TEST_F(ContextualSearchDelegateTest,
+ ContextualCardsResponseWithSingleAndCarouselCards) {
+ CreateDefaultSearchWithContextualCardsValue(
+ "{|cards|:[{|carouselCard|:{}},{|singleCard|:{|subtitle|: |president|,"
+ "|thumbnail|:{|uri|:|https://t0.gstatic.com/images?q=tbn:ANd9|}}}]}");
+ EXPECT_EQ("president", caption());
+ EXPECT_EQ("https://t0.gstatic.com/images?q=tbn:ANd9", thumbnail_url());
+}
+
+// Missing cards.
+TEST_F(ContextualSearchDelegateTest, ContextualCardsResponseWithMissingCards) {
+ CreateDefaultSearchWithContextualCardsValue("{}");
+ EXPECT_EQ("", caption());
+ EXPECT_EQ("", thumbnail_url());
+}
+
+// Multiple cards (latter should be ignored).
+TEST_F(ContextualSearchDelegateTest, ContextualCardsResponseWithMultipleCards) {
+ CreateDefaultSearchWithContextualCardsValue(
+ "{|cards|:[{|singleCard|:{|subtitle|: |president|,"
+ "|thumbnail|:{|uri|:|https://t0.gstatic.com/images?q=tbn:ANd9|}}},"
+ "{|singleCard|:{|subtitle|:|wrong subtitle|,"
+ "|thumbnail|:{|uri|:|https://t0.gstatic.com/wrongThumbnail|}}}]}");
+ EXPECT_EQ("president", caption());
+ EXPECT_EQ("https://t0.gstatic.com/images?q=tbn:ANd9", thumbnail_url());
+}
« no previous file with comments | « chrome/browser/android/contextualsearch/contextual_search_delegate.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698