blob: 7b513cd1520d38179ef9808ecc4c4e8ff6f620e3 [file] [log] [blame]
// Copyright 2022 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_THEMES_THEME_SERVICE_TEST_UTILS_H_
#define CHROME_BROWSER_THEMES_THEME_SERVICE_TEST_UTILS_H_
#include <ostream>
#include <string>
#include "base/containers/fixed_flat_map.h"
#include "base/memory/scoped_refptr.h"
#include "chrome/browser/ui/color/chrome_color_id.h"
#include "components/sync/model/sync_change.h"
#include "components/sync/protocol/theme_specifics.pb.h"
#include "extensions/common/extension.h"
#include "third_party/skia/include/core/SkColor.h"
namespace theme_service::test {
// Struct to distinguish SkColor (aliased to uint32_t) for printing.
struct PrintableSkColor {
friend constexpr bool operator==(const PrintableSkColor&,
const PrintableSkColor&) = default;
const SkColor color;
};
std::ostream& operator<<(std::ostream& os, PrintableSkColor printable_color);
std::string ColorIdToString(ui::ColorId id);
scoped_refptr<extensions::Extension> MakeThemeExtension(
const base::FilePath& extension_path,
const std::string& id,
const std::string& name,
extensions::mojom::ManifestLocation location,
const std::string& update_url);
syncer::SyncDataList MakeThemeDataList(
const sync_pb::ThemeSpecifics& theme_specifics);
syncer::SyncChangeList MakeThemeChangeList(
const sync_pb::ThemeSpecifics& theme_specifics);
sync_pb::ThemeSpecifics EmptySpecifics();
sync_pb::ThemeSpecifics CreateThemeSpecificsWithExtensionTheme(
const std::string& id,
const std::string& name,
const std::string& url);
sync_pb::ThemeSpecifics CreateThemeSpecificsWithAutogeneratedColorTheme();
sync_pb::ThemeSpecifics CreateThemeSpecificsWithColorTheme();
sync_pb::ThemeSpecifics CreateThemeSpecificsWithGrayscaleTheme();
sync_pb::ThemeSpecifics CreateThemeSpecificsWithCustomNtpBackground(
const std::string& background_url);
} // namespace theme_service::test
#endif // CHROME_BROWSER_THEMES_THEME_SERVICE_TEST_UTILS_H_