// Copyright 2017 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.

#include "components/prefs/persistent_pref_store.h"

#include "base/bind.h"
#include "base/run_loop.h"
#include "base/sequence_checker_impl.h"
#include "base/test/task_environment.h"
#include "testing/gtest/include/gtest/gtest.h"

void TestCommitPendingWriteWithCallback(
    PersistentPrefStore* store,
    base::test::TaskEnvironment* task_environment) {
  base::RunLoop run_loop;
  base::SequenceCheckerImpl sequence_checker;
  store->CommitPendingWrite(base::BindOnce(
      [](base::SequenceCheckerImpl* sequence_checker, base::RunLoop* run_loop) {
        EXPECT_TRUE(sequence_checker->CalledOnValidSequence());
        run_loop->Quit();
      },
      base::Unretained(&sequence_checker), base::Unretained(&run_loop)));
  task_environment->RunUntilIdle();
  run_loop.Run();
}
