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