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 f2ff8c47cd2fca0dede0ab7ddbcf54ccaef1a3ed..ee02530f50172d09ee3e473c758b839cc250586a 100644 |
--- a/chrome/browser/android/contextualsearch/contextual_search_delegate_unittest.cc |
+++ b/chrome/browser/android/contextualsearch/contextual_search_delegate_unittest.cc |
@@ -9,6 +9,7 @@ |
#include "base/strings/utf_string_conversions.h" |
#include "base/values.h" |
#include "chrome/browser/android/contextualsearch/contextual_search_context.h" |
+#include "chrome/browser/android/contextualsearch/resolved_search_term.h" |
#include "components/search_engines/template_url_service.h" |
#include "net/url_request/test_url_fetcher_factory.h" |
#include "net/url_request/url_request_test_util.h" |
@@ -49,6 +50,7 @@ class ContextualSearchDelegateTest : public testing::Test { |
response_code_ = -1; |
search_term_ = "invalid"; |
display_text_ = "unknown"; |
+ language_ = ""; |
} |
TemplateURLService* CreateTemplateURLService() { |
@@ -137,27 +139,23 @@ class ContextualSearchDelegateTest : public testing::Test { |
std::string after_text() { return after_text_; } |
int start_adjust() { return start_adjust_; } |
int end_adjust() { return end_adjust_; } |
+ std::string language() { return language_; } |
// The delegate under test. |
scoped_ptr<ContextualSearchDelegate> delegate_; |
private: |
- void recordSearchTermResolutionResponse(bool is_invalid, |
- int response_code, |
- const std::string& search_term, |
- const std::string& display_text, |
- const std::string& alternate_term, |
- bool prevent_preload, |
- int start_adjust, |
- int end_adjust) { |
- is_invalid_ = is_invalid; |
- response_code_ = response_code; |
- search_term_ = search_term; |
- display_text_ = display_text; |
- alternate_term_ = alternate_term; |
- prevent_preload_ = prevent_preload; |
- start_adjust_ = start_adjust; |
- end_adjust_ = end_adjust; |
+ void recordSearchTermResolutionResponse( |
+ const ResolvedSearchTerm& resolved_search_term) { |
+ is_invalid_ = resolved_search_term.is_invalid; |
+ response_code_ = resolved_search_term.response_code; |
+ search_term_ = resolved_search_term.search_term; |
+ display_text_ = resolved_search_term.display_text; |
+ alternate_term_ = resolved_search_term.alternate_term; |
+ prevent_preload_ = resolved_search_term.prevent_preload; |
+ start_adjust_ = resolved_search_term.selection_start_adjust; |
+ end_adjust_ = resolved_search_term.selection_end_adjust; |
+ language_ = resolved_search_term.language; |
} |
void recordSurroundingText(const std::string& before_text, |
@@ -183,6 +181,7 @@ class ContextualSearchDelegateTest : public testing::Test { |
int end_adjust_; |
std::string before_text_; |
std::string after_text_; |
+ std::string language_; |
base::MessageLoopForIO io_message_loop_; |
net::TestURLFetcherFactory test_factory_; |
@@ -451,7 +450,7 @@ TEST_F(ContextualSearchDelegateTest, SurroundingTextForIcingNegativeLimit) { |
EXPECT_EQ(base::ASCIIToUTF16("Barack Obama"), result); |
} |
-TEST_F(ContextualSearchDelegateTest, DecodeSearchTermsFromJsonResponse) { |
+TEST_F(ContextualSearchDelegateTest, DecodeSearchTermFromJsonResponse) { |
std::string json_with_escape = |
")]}'\n" |
"{\"mid\":\"/m/02mjmr\", \"search_term\":\"obama\"," |
@@ -464,12 +463,31 @@ TEST_F(ContextualSearchDelegateTest, DecodeSearchTermsFromJsonResponse) { |
std::string prevent_preload; |
int mention_start; |
int mention_end; |
- delegate_->DecodeSearchTermsFromJsonResponse(json_with_escape, &search_term, |
- &display_text, &alternate_term, |
- &prevent_preload, &mention_start, |
- &mention_end); |
+ std::string language; |
+ delegate_->DecodeSearchTermFromJsonResponse( |
+ json_with_escape, &search_term, &display_text, &alternate_term, |
+ &prevent_preload, &mention_start, &mention_end, &language); |
EXPECT_EQ("obama", search_term); |
EXPECT_EQ("Barack Obama", display_text); |
EXPECT_EQ("barack obama", alternate_term); |
EXPECT_EQ("", prevent_preload); |
+ EXPECT_EQ("", language); |
+} |
+ |
+TEST_F(ContextualSearchDelegateTest, ResponseWithLanguage) { |
+ CreateDefaultSearchContextAndRequestSearchTerm(); |
+ fetcher()->set_response_code(200); |
+ fetcher()->SetResponseString( |
+ "{\"mid\":\"/m/02mjmr\",\"search_term\":\"obama\"," |
+ "\"mentions\":[0,15],\"prevent_preload\":\"1\", " |
+ "\"lang\":\"de\"}"); |
+ fetcher()->delegate()->OnURLFetchComplete(fetcher()); |
+ |
+ EXPECT_FALSE(is_invalid()); |
+ EXPECT_EQ(200, response_code()); |
+ EXPECT_EQ("obama", search_term()); |
+ EXPECT_EQ("obama", display_text()); |
+ EXPECT_TRUE(do_prevent_preload()); |
+ EXPECT_TRUE(DoesRequestContainOurSpecificBasePage()); |
+ EXPECT_EQ("de", language()); |
} |