chromium/components/exo/permission_unittest.cc

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

#include "components/exo/permission.h"

#include "base/time/time.h"
#include "testing/gtest/include/gtest/gtest.h"

namespace exo {
namespace {

TEST(PermissionsTest, ActiveCapability) {
  Permission p{Permission::Capability::kActivate, base::Days(1)};
  ASSERT_TRUE(p.Check(Permission::Capability::kActivate));
  ASSERT_FALSE(p.Check(static_cast<Permission::Capability>(
      (int)(Permission::Capability::kActivate) + 1)));
}

TEST(PermissionsTest, Revoke) {
  Permission p{Permission::Capability::kActivate, base::Days(1)};
  ASSERT_TRUE(p.Check(Permission::Capability::kActivate));
  p.Revoke();
  ASSERT_FALSE(p.Check(Permission::Capability::kActivate));
}

TEST(PermissionsTest, Expire) {
  Permission p{Permission::Capability::kActivate, base::Milliseconds(0)};
  ASSERT_FALSE(p.Check(Permission::Capability::kActivate));
}

}  // namespace
}  // namespace exo