chromium/chrome/browser/ui/views/shortcuts/shortcut_integration_interaction_test_base.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_UI_VIEWS_SHORTCUTS_SHORTCUT_INTEGRATION_INTERACTION_TEST_BASE_H_
#define CHROME_BROWSER_UI_VIEWS_SHORTCUTS_SHORTCUT_INTEGRATION_INTERACTION_TEST_BASE_H_

#include <memory>
#include <string>

#include "base/base_paths.h"
#include "base/test/scoped_feature_list.h"
#include "chrome/browser/shortcuts/shortcut_creation_test_support.h"
#include "chrome/common/chrome_features.h"
#include "chrome/test/interaction/interactive_browser_test.h"

namespace shortcuts {

class ShortcutIntegrationInteractionTestPrivate;

// API class that provides both base browser Kombucha functionality and
// additional logic to facilitate writing tests for the "Create Shortcut"
// feature.
class ShortcutIntegrationInteractionTestApi : public InteractiveBrowserTestApi {};

// Template for adding ShortcutIntegrationInteractionTestApi to any test fixture
// which is derived from InProcessBrowserTest.
//
// If you don't need to derive from some existing test class, prefer to use
// ShortcutIntegrationInteractionTestBase.
template <typename T>
  requires std::derived_from<T, InProcessBrowserTest>
class ShortcutIntegrationInteractionTestT
    : public T,
      public ShortcutIntegrationInteractionTestApi {};

// Convenience test fixture for shortcut integration tests. This is the
// preferred base class for Kombucha tests unless you specifically need
// something else.
ShortcutIntegrationInteractionTestBase;

}  // namespace shortcuts

#endif  // CHROME_BROWSER_UI_VIEWS_SHORTCUTS_SHORTCUT_INTEGRATION_INTERACTION_TEST_BASE_H_