// Copyright 2021 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 "chaps/slot_policy_default.h"

#include <memory>

#include <gmock/gmock.h>
#include <gtest/gtest.h>

#include "chaps/slot_policy_common.h"
#include "pkcs11/cryptoki.h"

namespace chaps {
namespace {

using SlotPolicyDefaultTest = testing::Test;

TEST_F(SlotPolicyDefaultTest, AcceptsRegularObjects) {
  SlotPolicyDefault slot_policy_default;
  EXPECT_TRUE(
      slot_policy_default.IsObjectClassAllowedForNewObject(CKO_CERTIFICATE));
  EXPECT_TRUE(slot_policy_default.IsObjectClassAllowedForImportedObject(
      CKO_CERTIFICATE));
}

TEST_F(SlotPolicyDefaultTest, RejectsNewNssTrustObjects) {
  SlotPolicyDefault slot_policy_default;
  EXPECT_FALSE(
      slot_policy_default.IsObjectClassAllowedForNewObject(CKO_NSS_TRUST));
  EXPECT_TRUE(
      slot_policy_default.IsObjectClassAllowedForImportedObject(CKO_NSS_TRUST));
}

}  // namespace
}  // namespace chaps
