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

Side by Side Diff: chrome/browser/autocomplete/search_provider_unittest.cc

Issue 276073002: [AiS] Provide Answers queries with a session token. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/autocomplete/search_provider.h" 5 #include "chrome/browser/autocomplete/search_provider.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/metrics/field_trial.h" 10 #include "base/metrics/field_trial.h"
(...skipping 3054 matching lines...) Expand 10 before | Expand all | Expand 10 after
3065 // Verbatim match duplicates are added such that each one has a higher 3065 // Verbatim match duplicates are added such that each one has a higher
3066 // relevance than the previous one. 3066 // relevance than the previous one.
3067 EXPECT_EQ(2U, verbatim.duplicate_matches.size()); 3067 EXPECT_EQ(2U, verbatim.duplicate_matches.size());
3068 3068
3069 // Other match duplicates are added in descending relevance order. 3069 // Other match duplicates are added in descending relevance order.
3070 EXPECT_EQ(1U, match_alpha.duplicate_matches.size()); 3070 EXPECT_EQ(1U, match_alpha.duplicate_matches.size());
3071 EXPECT_EQ(1U, match_avid.duplicate_matches.size()); 3071 EXPECT_EQ(1U, match_avid.duplicate_matches.size());
3072 3072
3073 EXPECT_EQ(0U, match_apricot.duplicate_matches.size()); 3073 EXPECT_EQ(0U, match_apricot.duplicate_matches.size());
3074 } 3074 }
3075
3076 #if defined(OS_ANDROID)
3077 TEST_F(SearchProviderTest, SuggestQueryUsesToken) {
3078 CommandLine::ForCurrentProcess()->AppendSwitch(
3079 switches::kEnableAnswersInSuggest);
3080
3081 TemplateURLService* turl_model =
3082 TemplateURLServiceFactory::GetForProfile(&profile_);
3083
3084 TemplateURLData data;
3085 data.short_name = ASCIIToUTF16("default");
3086 data.SetKeyword(data.short_name);
3087 data.SetURL("http://example/{searchTerms}{google:sessionToken}");
3088 data.suggestions_url =
3089 "http://suggest/?q={searchTerms}&{google:sessionToken}";
3090 default_t_url_ = new TemplateURL(&profile_, data);
3091 turl_model->Add(default_t_url_);
3092 turl_model->SetUserSelectedDefaultSearchProvider(default_t_url_);
3093
3094 base::string16 term = term1_.substr(0, term1_.length() - 1);
3095 QueryForInput(term, false, false);
3096
3097 // Make sure the default providers suggest service was queried.
Peter Kasting 2014/05/09 21:35:07 Nit: provider's
groby-ooo-7-16 2014/05/09 22:18:09 Done.
3098 net::TestURLFetcher* fetcher = test_factory_.GetFetcherByID(
3099 SearchProvider::kDefaultProviderURLFetcherID);
3100 ASSERT_TRUE(fetcher);
3101
3102 // And the URL matches what we expected.
3103 TemplateURLRef::SearchTermsArgs search_terms_args(term);
3104 search_terms_args.session_token = provider_->current_token_;
Peter Kasting 2014/05/09 21:35:07 Can this use GetSessionToken()? If so, perhaps th
groby-ooo-7-16 2014/05/09 21:50:25 Second test needs access to expiration time, so we
3105 GURL expected_url(default_t_url_->suggestions_url_ref().ReplaceSearchTerms(
3106 search_terms_args));
3107 EXPECT_EQ(fetcher->GetOriginalURL().spec(), expected_url.spec());
3108
3109 // complete running the fetcher to clean up.
Peter Kasting 2014/05/09 21:35:07 Nit: Capitalize
groby-ooo-7-16 2014/05/09 22:18:09 Done.
3110 fetcher->set_response_code(200);
3111 fetcher->delegate()->OnURLFetchComplete(fetcher);
3112 RunTillProviderDone();
3113 }
3114 #endif
3115
3116 TEST_F(SearchProviderTest, SessionToken) {
3117 const base::TimeDelta small_delta = base::TimeDelta::FromMilliseconds(1);
Peter Kasting 2014/05/09 21:35:07 Nit: Declare this just above first use
groby-ooo-7-16 2014/05/09 22:18:09 Done.
3118 // Subsequent calls always get the same token.
3119 std::string token = provider_->GetSessionToken();
3120 std::string token2 = provider_->GetSessionToken();
3121 EXPECT_EQ(token, token2);
3122 EXPECT_FALSE(token.empty());
3123
3124 // Calls do not regenerate a token.
3125 provider_->current_token_ = "PRE-EXISTING TOKEN";
3126 token = provider_->GetSessionToken();
3127 EXPECT_EQ(token, "PRE-EXISTING TOKEN");
3128
3129 // ... unless the token has expired.
3130 provider_->current_token_ = "";
Peter Kasting 2014/05/09 21:35:07 Nit: .clear()
groby-ooo-7-16 2014/05/09 22:18:09 Done.
3131 provider_->token_expiration_time_ = base::Time::Now() - small_delta;
3132 token = provider_->GetSessionToken();
3133 EXPECT_FALSE(token.empty());
3134 EXPECT_EQ(token, provider_->current_token_);
3135
3136 // The expiration time is always updated.
3137 provider_->GetSessionToken();
3138 base::Time expiration_time_1 = provider_->token_expiration_time_;
3139 base::PlatformThread::Sleep(small_delta);
3140 provider_->GetSessionToken();
3141 base::Time expiration_time_2 = provider_->token_expiration_time_;
3142 EXPECT_GT(expiration_time_2, expiration_time_1);
3143 EXPECT_GE(expiration_time_2, expiration_time_1 + small_delta);
3144 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698