1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
6 
7 #include "testing/gtest/include/gtest/gtest.h"
8 
9 namespace blink {
10 
11 class CompositorElementIdTest : public testing::Test {};
12 
IdFromCompositorElementId(CompositorElementId element_id)13 uint64_t IdFromCompositorElementId(CompositorElementId element_id) {
14   return element_id.GetStableId() >> kCompositorNamespaceBitCount;
15 }
16 
TEST_F(CompositorElementIdTest,EncodeDecode)17 TEST_F(CompositorElementIdTest, EncodeDecode) {
18   auto element_id = CompositorElementIdFromUniqueObjectId(1);
19   EXPECT_EQ(1u, IdFromCompositorElementId(element_id));
20   EXPECT_EQ(CompositorElementIdNamespace::kUniqueObjectId,
21             NamespaceFromCompositorElementId(element_id));
22 
23   element_id = CompositorElementIdFromUniqueObjectId(
24       1, CompositorElementIdNamespace::kPrimary);
25   EXPECT_EQ(1u, IdFromCompositorElementId(element_id));
26   EXPECT_EQ(CompositorElementIdNamespace::kPrimary,
27             NamespaceFromCompositorElementId(element_id));
28 }
29 
TEST_F(CompositorElementIdTest,FromDOMNodeId)30 TEST_F(CompositorElementIdTest, FromDOMNodeId) {
31   auto element_id = CompositorElementIdFromDOMNodeId(1);
32   EXPECT_EQ(1u, IdFromCompositorElementId(element_id));
33   EXPECT_EQ(CompositorElementIdNamespace::kUniqueObjectId,
34             NamespaceFromCompositorElementId(element_id));
35 }
36 
37 }  // namespace blink
38