// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ASH_SHELF_SHELF_TEST_UTIL_H_
#define ASH_SHELF_SHELF_TEST_UTIL_H_
#include <string>
#include "ash/public/cpp/shelf_item.h"
namespace gfx {
class ImageSkia;
} // namespace gfx
namespace ash {
class ShelfTestUtil {
public:
ShelfTestUtil(const ShelfTestUtil&) = delete;
ShelfTestUtil& operator=(const ShelfTestUtil&) = delete;
// Adds an application shortcut to the shelf model, with the given identifier
// and the given shelf item type.
static ShelfItem AddAppShortcut(const std::string& id, ShelfItemType type);
// Adds an application shortcut to the shelf model, with the given identifier,
// the given shelf item type, and the given icon.
static ShelfItem AddAppShortcutWithIcon(const std::string& id,
ShelfItemType type,
gfx::ImageSkia icon);
// Adds an web app shortcut to the shelf model, with the given identifier, the
// given shelf item type, the given icon, and the given badge icon.
static ShelfItem AddWebAppShortcut(const std::string& id,
bool pinned,
gfx::ImageSkia icon,
gfx::ImageSkia badge_icon);
// Adds an app that is not pinnable to the shelf model.
static ShelfItem AddAppNotPinnable(const std::string& id);
};
// Waits for an overview enter animation if |enter|; waits for an overview exit
// animation otherwise.
void WaitForOverviewAnimation(bool enter);
} // namespace ash
#endif // ASH_SHELF_SHELF_TEST_UTIL_H_