// 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