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