1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- // Copyright 2014 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "components/search_engines/template_url_service.h"
- #include <stddef.h>
- #include <memory>
- #include "base/threading/platform_thread.h"
- #include "testing/gtest/include/gtest/gtest.h"
- class TemplateURLServiceUnitTest : public testing::Test {
- public:
- TemplateURLServiceUnitTest()
- : template_url_service_(/*initializers=*/nullptr, /*count=*/0) {}
- TemplateURLService& template_url_service() { return template_url_service_; }
- private:
- TemplateURLService template_url_service_;
- };
- TEST_F(TemplateURLServiceUnitTest, SessionToken) {
- // Subsequent calls always get the same token.
- std::string token = template_url_service().GetSessionToken();
- std::string token2 = template_url_service().GetSessionToken();
- EXPECT_EQ(token, token2);
- EXPECT_FALSE(token.empty());
- // Calls do not regenerate a token.
- template_url_service().current_token_ = "PRE-EXISTING TOKEN";
- token = template_url_service().GetSessionToken();
- EXPECT_EQ(token, "PRE-EXISTING TOKEN");
- // ... unless the token has expired.
- template_url_service().current_token_.clear();
- const base::TimeDelta kSmallDelta = base::Milliseconds(1);
- template_url_service().token_expiration_time_ =
- base::TimeTicks::Now() - kSmallDelta;
- token = template_url_service().GetSessionToken();
- EXPECT_FALSE(token.empty());
- EXPECT_EQ(token, template_url_service().current_token_);
- // ... or cleared.
- template_url_service().current_token_.clear();
- template_url_service().ClearSessionToken();
- token = template_url_service().GetSessionToken();
- EXPECT_FALSE(token.empty());
- EXPECT_EQ(token, template_url_service().current_token_);
- // The expiration time is always updated.
- template_url_service().GetSessionToken();
- base::TimeTicks expiration_time_1 =
- template_url_service().token_expiration_time_;
- base::PlatformThread::Sleep(kSmallDelta);
- template_url_service().GetSessionToken();
- base::TimeTicks expiration_time_2 =
- template_url_service().token_expiration_time_;
- EXPECT_GT(expiration_time_2, expiration_time_1);
- EXPECT_GE(expiration_time_2, expiration_time_1 + kSmallDelta);
- }
|