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 0dca49face351a7c43246cc5d3a07486cf89fbe5..7f70696180ce2eaba015cde1ccd505d0ee5a6e4f 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/base/escape.h" |
#include "net/url_request/test_url_fetcher_factory.h" |
@@ -50,6 +51,7 @@ class ContextualSearchDelegateTest : public testing::Test { |
response_code_ = -1; |
search_term_ = "invalid"; |
display_text_ = "unknown"; |
+ context_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 context_language() { return context_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; |
+ context_language_ = resolved_search_term.context_language; |
} |
void recordSurroundingText(const std::string& after_text) { |
@@ -180,6 +178,7 @@ class ContextualSearchDelegateTest : public testing::Test { |
int start_adjust_; |
int end_adjust_; |
std::string after_text_; |
+ std::string context_language_; |
base::MessageLoopForIO io_message_loop_; |
net::TestURLFetcherFactory test_factory_; |
@@ -452,7 +451,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\"," |
@@ -465,12 +464,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 context_language; |
+ delegate_->DecodeSearchTermFromJsonResponse( |
+ json_with_escape, &search_term, &display_text, &alternate_term, |
+ &prevent_preload, &mention_start, &mention_end, &context_language); |
EXPECT_EQ("obama", search_term); |
EXPECT_EQ("Barack Obama", display_text); |
EXPECT_EQ("barack obama", alternate_term); |
EXPECT_EQ("", prevent_preload); |
+ EXPECT_EQ("", context_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", context_language()); |
} |