@@ -38,50 +38,96 @@ std::unordered_map<int32_t, bool> ComputeVisibility(
3838} // namespace
3939
4040TEST (ViewCaptureVisibilityComputation, RootNodeVisible) {
41- const auto snapshot = SnapshotProtoBuilder ()
42- .AddView (View ().SetVisibility (0 ).SetParentId (-1 ))
43- .Build ();
41+ const auto snapshot =
42+ SnapshotProtoBuilder ()
43+ .AddView (
44+ View ().SetVisibility (0 ).SetHeight (1 ).SetWidth (1 ).SetParentId (-1 ))
45+ .Build ();
4446
4547 auto result = ComputeVisibility (snapshot);
4648 ASSERT_TRUE (result.at (0 ));
4749}
4850
4951TEST (ViewCaptureVisibilityComputation, ChildNodeVisible) {
50- const auto snapshot = SnapshotProtoBuilder ()
51- .AddView (View ().SetVisibility (0 ).SetParentId (-1 ))
52- .AddView (View ().SetVisibility (0 ).SetParentId (0 ))
53- .Build ();
52+ const auto snapshot =
53+ SnapshotProtoBuilder ()
54+ .AddView (
55+ View ().SetVisibility (0 ).SetHeight (1 ).SetWidth (1 ).SetParentId (-1 ))
56+ .AddView (
57+ View ().SetVisibility (0 ).SetHeight (1 ).SetWidth (1 ).SetParentId (0 ))
58+ .Build ();
5459
5560 auto result = ComputeVisibility (snapshot);
5661 ASSERT_TRUE (result.at (0 ));
5762 ASSERT_TRUE (result.at (1 ));
5863}
5964
60- TEST (ViewCaptureVisibilityComputation, RootNodeNotVisible) {
61- const auto snapshot = SnapshotProtoBuilder ()
62- .AddView (View ().SetVisibility (4 ).SetParentId (-1 ))
63- .Build ();
65+ TEST (ViewCaptureVisibilityComputation, RootNodeNotVisibleDueToVisibility) {
66+ const auto snapshot =
67+ SnapshotProtoBuilder ()
68+ .AddView (
69+ View ().SetVisibility (4 ).SetHeight (1 ).SetWidth (1 ).SetParentId (-1 ))
70+ .Build ();
71+
72+ auto result = ComputeVisibility (snapshot);
73+ ASSERT_FALSE (result.at (0 ));
74+ }
75+
76+ TEST (ViewCaptureVisibilityComputation, RootNodeVisibleDueToZeroWidth) {
77+ const auto snapshot =
78+ SnapshotProtoBuilder ()
79+ .AddView (View ().SetVisibility (0 ).SetWidth (1 ).SetParentId (-1 ))
80+ .Build ();
81+
82+ auto result = ComputeVisibility (snapshot);
83+ ASSERT_FALSE (result.at (0 ));
84+ }
85+
86+ TEST (ViewCaptureVisibilityComputation, RootNodeVisibleDueToZeroHeight) {
87+ const auto snapshot =
88+ SnapshotProtoBuilder ()
89+ .AddView (View ().SetVisibility (0 ).SetHeight (1 ).SetParentId (-1 ))
90+ .Build ();
6491
6592 auto result = ComputeVisibility (snapshot);
6693 ASSERT_FALSE (result.at (0 ));
6794}
6895
6996TEST (ViewCaptureVisibilityComputation, ChildNodeNotVisibleDueToParent) {
70- const auto snapshot = SnapshotProtoBuilder ()
71- .AddView (View ().SetVisibility (4 ).SetParentId (-1 ))
72- .AddView (View ().SetVisibility (0 ).SetParentId (0 ))
73- .Build ();
97+ const auto snapshot =
98+ SnapshotProtoBuilder ()
99+ .AddView (
100+ View ().SetVisibility (4 ).SetHeight (1 ).SetWidth (1 ).SetParentId (-1 ))
101+ .AddView (
102+ View ().SetVisibility (0 ).SetHeight (1 ).SetWidth (1 ).SetParentId (0 ))
103+ .Build ();
74104
75105 auto result = ComputeVisibility (snapshot);
76106 ASSERT_FALSE (result.at (0 ));
77107 ASSERT_FALSE (result.at (1 ));
78108}
79109
110+ TEST (ViewCaptureVisibilityComputation, ChildNodeVisibleWithZeroSizeParent) {
111+ const auto snapshot =
112+ SnapshotProtoBuilder ()
113+ .AddView (View ().SetVisibility (0 ).SetParentId (-1 ))
114+ .AddView (
115+ View ().SetVisibility (0 ).SetHeight (1 ).SetWidth (1 ).SetParentId (0 ))
116+ .Build ();
117+
118+ auto result = ComputeVisibility (snapshot);
119+ ASSERT_FALSE (result.at (0 ));
120+ ASSERT_TRUE (result.at (1 ));
121+ }
122+
80123TEST (ViewCaptureVisibilityComputation, ChildNodeNotVisibleButParentVisible) {
81- const auto snapshot = SnapshotProtoBuilder ()
82- .AddView (View ().SetVisibility (0 ).SetParentId (-1 ))
83- .AddView (View ().SetVisibility (4 ).SetParentId (0 ))
84- .Build ();
124+ const auto snapshot =
125+ SnapshotProtoBuilder ()
126+ .AddView (
127+ View ().SetVisibility (0 ).SetHeight (1 ).SetWidth (1 ).SetParentId (-1 ))
128+ .AddView (
129+ View ().SetVisibility (4 ).SetHeight (1 ).SetWidth (1 ).SetParentId (0 ))
130+ .Build ();
85131
86132 auto result = ComputeVisibility (snapshot);
87133 ASSERT_TRUE (result.at (0 ));
0 commit comments