// Copyright 2015 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 BASE_TEST_MOCK_ENTROPY_PROVIDER_H_
#define BASE_TEST_MOCK_ENTROPY_PROVIDER_H_

#if !defined(STARBOARD)
// Starboard does not support FieldTrial.
#include "base/metrics/field_trial.h"
#include "starboard/types.h"

namespace base {

class MockEntropyProvider : public base::FieldTrial::EntropyProvider {
 public:
  MockEntropyProvider();
  explicit MockEntropyProvider(double entropy_value);
  ~MockEntropyProvider() override;

  // base::FieldTrial::EntropyProvider:
  double GetEntropyForTrial(const std::string& trial_name,
                            uint32_t randomization_seed) const override;

 private:
  double entropy_value_;

  DISALLOW_COPY_AND_ASSIGN(MockEntropyProvider);
};

}  // namespace base
#endif  // defined(STARBOARD)

#endif  // BASE_TEST_MOCK_ENTROPY_PROVIDER_H_
