chromium/ios/chrome/browser/shared/model/web_state_list/test/fake_web_state_list_delegate.h

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

#ifndef IOS_CHROME_BROWSER_SHARED_MODEL_WEB_STATE_LIST_TEST_FAKE_WEB_STATE_LIST_DELEGATE_H_
#define IOS_CHROME_BROWSER_SHARED_MODEL_WEB_STATE_LIST_TEST_FAKE_WEB_STATE_LIST_DELEGATE_H_

#import "ios/chrome/browser/shared/model/web_state_list/web_state_list_delegate.h"

// Fake WebStateList delegate for tests.
class FakeWebStateListDelegate : public WebStateListDelegate {
 public:
  FakeWebStateListDelegate();
  explicit FakeWebStateListDelegate(bool force_realization_on_activation);

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

  ~FakeWebStateListDelegate() override;

  // WebStateListDelegate implementation.
  void WillAddWebState(web::WebState* web_state) override;
  void WillActivateWebState(web::WebState* web_state) override;

 private:
  // Controls whether WebState are forced to the realized state when
  // activated.
  const bool force_realization_on_activation_ = false;
};

#endif  // IOS_CHROME_BROWSER_SHARED_MODEL_WEB_STATE_LIST_TEST_FAKE_WEB_STATE_LIST_DELEGATE_H_