// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_ASH_FLOATING_SSO_COOKIE_SYNC_TEST_UTIL_H_
#define CHROME_BROWSER_ASH_FLOATING_SSO_COOKIE_SYNC_TEST_UTIL_H_
#include <array>
#include <cstdint>
#include <string>
namespace base {
class Time;
}
namespace sync_pb {
class CookieSpecifics;
}
namespace syncer {
struct EntityData;
}
namespace ash::floating_sso {
extern const std::array<std::string, 4> kUniqueKeysForTests;
extern const std::array<std::string, 4> kNamesForTests;
inline constexpr char kValueForTests[] = "TestValue";
inline constexpr char kDomainForTests[] = "www.example.com";
inline constexpr char kPathForTests[] = "/baz";
inline constexpr char kTopLevelSiteForTesting[] = "https://toplevelsite.com";
inline constexpr char kUrlForTesting[] =
"https://www.example.com/test/foo.html";
inline constexpr int kPortForTests = 19;
// Returns a cookie proto with a name `kNamesForTests[i]` and a key
// `kUniqueKeysForTests[i]`, other fields don't depend on the value of `i`. By
// default returns a session cookie, setting `persistent` to true will make it
// return a persistent cookie which expires in 10 days after `creation_time`.
sync_pb::CookieSpecifics CreatePredefinedCookieSpecificsForTest(
size_t i,
const base::Time& creation_time,
bool persistent = false);
// Creates a cookie proto with the provided unique key and name. By default
// returns a session cookie, setting `persistent` to true will make it return a
// persistent cookie which expires in 10 days after `creation_time`.
sync_pb::CookieSpecifics CreateCookieSpecificsForTest(
const std::string& unique_key,
const std::string& name,
const base::Time& creation_time,
bool persistent = false,
const std::string& domain = kDomainForTests);
syncer::EntityData CreateEntityDataForTest(
const sync_pb::CookieSpecifics& specifics);
} // namespace ash::floating_sso
#endif // CHROME_BROWSER_ASH_FLOATING_SSO_COOKIE_SYNC_TEST_UTIL_H_