chromium/components/viz/common/surfaces/scoped_surface_id_allocator_unittest.cc

// Copyright 2018 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/viz/common/surfaces/scoped_surface_id_allocator.h"

#include "base/functional/bind.h"
#include "components/viz/common/surfaces/parent_local_surface_id_allocator.h"
#include "testing/gtest/include/gtest/gtest.h"

// ScopedSurfaceIdAllocator has no accessors which can be used to check
// behavior. ParentLocalSurfaceIdAllocator has the accessors we need:
// - is_allocation_suppressed()
//
// For every operation which changes state we can test:
// - the operation completed as expected,
// - the accessors did not change, and/or
// - the accessors changed in the way we expected.

namespace viz {

// The single argument constructor takes a callback which should be called when
// the ScopedSurfaceIdAllocator goes out of scope.
TEST(ScopedSurfaceIdAllocatorTest,
     SingleArgumentConstructorShouldCallCallback) {}

// The dual argument constructor takes a ParentLocalSurfaceIdAllocator* and a
// callback. The parent allocator should be suppressed while the
// ScopedSurfaceIdAllocator is alive. When it goes out of scope, the callback
// should be called.
TEST(ScopedSurfaceIdAllocatorTest,
     DualArgumentConstructorShouldSuppressParentAndCallCallback) {}

// The move constructor should transfer suppression and callback lifetime.
TEST(ScopedSurfaceIdAllocatorTest, MoveConstructorShouldTransferLifetimes) {}

// The move assignment operator should transfer suppression and callback
// lifetime.
TEST(ScopedSurfaceIdAllocatorTest,
     MoveAssignmentOperatorShouldTransferLifetimes) {}

}  // namespace viz