chromium/components/exo/test/exo_test_suite_aura.h

// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_EXO_TEST_EXO_TEST_SUITE_AURA_H_
#define COMPONENTS_EXO_TEST_EXO_TEST_SUITE_AURA_H_

#include "base/memory/raw_ptr.h"
#include "base/test/test_suite.h"
#include "ui/gl/gl_display.h"

namespace exo {
namespace test {

// Simple implementation of a TestSuite with minimal external dependencies. This
// is built directly on top of Aura. Useful for generic features that are built
// on top of Aura and do not need a full platform Shell implementation (such as
// ash::Shell).
class ExoTestSuiteAura : public base::TestSuite {
 public:
  ExoTestSuiteAura(int argc, char** argv);

  ExoTestSuiteAura(const ExoTestSuiteAura&) = delete;
  ExoTestSuiteAura& operator=(const ExoTestSuiteAura&) = delete;

  ~ExoTestSuiteAura() override;

 protected:
  // base::TestSuite:
  void Initialize() override;
  void Shutdown() override;

 private:
  raw_ptr<gl::GLDisplay> display_ = nullptr;
};

}  // namespace test
}  // namespace exo

#endif  // COMPONENTS_EXO_TEST_EXO_TEST_SUITE_AURA_H_