chromium/chrome/browser/extensions/extension_api_unittest.h

// Copyright 2014 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_EXTENSIONS_EXTENSION_API_UNITTEST_H_
#define CHROME_BROWSER_EXTENSIONS_EXTENSION_API_UNITTEST_H_

#include <memory>
#include <optional>
#include <string>
#include <utility>

#include "base/memory/ref_counted.h"
#include "base/values.h"
#include "chrome/test/base/browser_with_test_window_test.h"

class ExtensionFunction;

namespace extensions {

// Use this class to enable calling API functions in a unittest.
// By default, this class will create and load an empty unpacked |extension_|,
// which will be used in all API function calls. This extension can be
// overridden using set_extension().
// By default, this class does not create a WebContents for the API functions.
// When calling RunFunction[AndReturn*], |args| should be in JSON format,
// wrapped in a list. See also RunFunction* in api_test_utils.h.
// TODO(yoz): Move users of this base class to use the equivalent base class
// in extensions/browser/api_unittest.h.
class ExtensionApiUnittest : public BrowserWithTestWindowTest {};

}  // namespace extensions

#endif  // CHROME_BROWSER_EXTENSIONS_EXTENSION_API_UNITTEST_H_