// Copyright (c) 2014 The Chromium OS 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 "login_manager/fake_generated_key_handler.h"

#include <string>

#include <base/files/file_path.h>
#include <base/files/file_util.h>
#include <gtest/gtest.h>

namespace login_manager {

FakeGeneratedKeyHandler::FakeGeneratedKeyHandler() {}

FakeGeneratedKeyHandler::~FakeGeneratedKeyHandler() {}

void FakeGeneratedKeyHandler::OnKeyGenerated(
    const std::string& username,
    const base::FilePath& temp_key_file) {
  key_username_ = username;
  if (!base::ReadFileToString(temp_key_file, &key_contents_))
    ADD_FAILURE() << temp_key_file.value() << " could not be read.";
}

}  // namespace login_manager
