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

#ifndef SERVICES_WINDOW_MANAGER_WINDOW_MANAGER_TEST_UTIL_H_
#define SERVICES_WINDOW_MANAGER_WINDOW_MANAGER_TEST_UTIL_H_

#include <set>

#include "mojo/services/view_manager/cpp/lib/view_private.h"
#include "mojo/services/view_manager/cpp/view.h"
#include "services/window_manager/view_target.h"

namespace gfx {
class Rect;
}

namespace window_manager {

// A wrapper around View so we can instantiate these directly without a
// ViewManager.
class TestView : public mojo::View {
 public:
  TestView(int id, const gfx::Rect& rect);
  TestView(int id, const gfx::Rect& rect, mojo::View* parent);
  ~TestView();

  // Builds a child view as a pointer. The caller is responsible for making
  // sure that the root of any tree allocated this way is Destroy()ed.
  static TestView* Build(int id, const gfx::Rect& rect);
  static TestView* Build(int id, const gfx::Rect& rect, View* parent);

  ViewTarget* target() { return target_; }

 private:
  ViewTarget* target_;

  DISALLOW_COPY_AND_ASSIGN(TestView);
};

}  // namespace window_manager

#endif  // SERVICES_WINDOW_MANAGER_WINDOW_MANAGER_TEST_UTIL_H_
