chromium/chrome/browser/ash/floating_sso/cookie_sync_test_util.h

// 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_