1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/ui/webui/identity_internals_ui_browsertest.h"
6
7#include "base/strings/string_number_conversions.h"
8#include "base/time/time.h"
9#include "chrome/browser/extensions/api/identity/extension_token_key.h"
10#include "chrome/browser/extensions/api/identity/identity_api.h"
11#include "chrome/browser/profiles/profile.h"
12#include "chrome/browser/ui/browser.h"
13
14namespace {
15
16const char kChromeWebStoreId[] = "ahfgeienlihckogmohjhadlkjgocpleb";
17const int kOneHour = 3600;
18} // namespace
19
20IdentityInternalsUIBrowserTest::IdentityInternalsUIBrowserTest() {}
21
22IdentityInternalsUIBrowserTest::~IdentityInternalsUIBrowserTest() {}
23
24void IdentityInternalsUIBrowserTest::SetupTokenCache(int number_of_tokens) {
25  for (int number = 0; number < number_of_tokens; ++number) {
26    const std::string token_number = base::IntToString(number);
27    std::string token_id("token");
28    token_id += token_number;
29    std::string extension_id("extension");
30    extension_id += token_number;
31    std::vector<std::string> scopes;
32    scopes.push_back(std::string("scope_1_") + token_number);
33    scopes.push_back(std::string("scope_2_") + token_number);
34    AddTokenToCache(token_id, extension_id, scopes, kOneHour);
35  }
36}
37
38void IdentityInternalsUIBrowserTest::SetupTokenCacheWithStoreApp() {
39  std::vector<std::string> scopes;
40  scopes.push_back(std::string("store_scope1"));
41  scopes.push_back(std::string("store_scope2"));
42  AddTokenToCache("store_token", kChromeWebStoreId, scopes, kOneHour);
43}
44
45void IdentityInternalsUIBrowserTest::AddTokenToCache(
46    const std::string token_id,
47    const std::string extension_id,
48    const std::vector<std::string>& scopes,
49    int time_to_live) {
50  extensions::IdentityTokenCacheValue token_cache_value =
51      extensions::IdentityTokenCacheValue(token_id,
52          base::TimeDelta::FromSeconds(time_to_live));
53  extensions::ExtensionTokenKey key(
54      extension_id,
55      "test@example.com",
56      std::set<std::string>(scopes.begin(), scopes.end()));
57  extensions::IdentityAPI::GetFactoryInstance()
58      ->Get(browser()->profile())
59      ->SetCachedToken(key, token_cache_value);
60}
61