1 // Copyright 2019 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 "components/viz/common/display/overlay_strategy.h"
6
7 #include <string>
8 #include <vector>
9
10 #include "testing/gmock/include/gmock/gmock.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 using testing::IsEmpty;
14 using testing::UnorderedElementsAre;
15
16 namespace viz {
17
TEST(ParseOverlayStrategiesTest,ParseEmptyList)18 TEST(ParseOverlayStrategiesTest, ParseEmptyList) {
19 std::vector<OverlayStrategy> strategies = ParseOverlayStrategies("");
20 EXPECT_THAT(strategies, IsEmpty());
21 }
22
TEST(ParseOverlayStrategiesTest,ParseFullList)23 TEST(ParseOverlayStrategiesTest, ParseFullList) {
24 std::vector<OverlayStrategy> strategies =
25 ParseOverlayStrategies("single-fullscreen,single-on-top,underlay,cast");
26
27 EXPECT_THAT(strategies, UnorderedElementsAre(OverlayStrategy::kFullscreen,
28 OverlayStrategy::kSingleOnTop,
29 OverlayStrategy::kUnderlay,
30 OverlayStrategy::kUnderlayCast));
31 }
32
TEST(ParseOverlayStrategiesTest,BadValue)33 TEST(ParseOverlayStrategiesTest, BadValue) {
34 std::vector<OverlayStrategy> strategies =
35 ParseOverlayStrategies("single-fullscreen,bad-value,underlay");
36
37 // The string "bad-value" doesn't correspond to an overlay strategy so it
38 // should be skipped.
39 EXPECT_THAT(strategies, UnorderedElementsAre(OverlayStrategy::kFullscreen,
40 OverlayStrategy::kUnderlay));
41 }
42
43 } // namespace viz
44