1// Copyright (c) 2013 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 "gpu/config/gpu_control_list.h"
6#include "testing/gtest/include/gtest/gtest.h"
7
8namespace gpu {
9
10class StringInfoTest : public testing::Test {
11 public:
12  StringInfoTest() { }
13  virtual ~StringInfoTest() { }
14
15  typedef GpuControlList::StringInfo StringInfo;
16};
17
18TEST_F(StringInfoTest, ValidStringInfo) {
19  const std::string op[] = {
20    "contains",
21    "beginwith",
22    "endwith",
23    "="
24  };
25  for (size_t i = 0; i < arraysize(op); ++i) {
26    {
27      StringInfo info(op[i], std::string());
28      EXPECT_TRUE(info.IsValid());
29    }
30    {
31      StringInfo info(op[i], "hello");
32      EXPECT_TRUE(info.IsValid());
33    }
34  }
35}
36
37TEST_F(StringInfoTest, InvalidStringInfo) {
38  const std::string op[] = {
39    "Contains",
40    "BeginWith",
41    "EndWith",
42    " =",
43    "= "
44  };
45  for (size_t i = 0; i < arraysize(op); ++i) {
46    StringInfo info(op[i], "hello");
47    EXPECT_FALSE(info.IsValid());
48  }
49}
50
51TEST_F(StringInfoTest, StringComparison) {
52  {
53    StringInfo info("contains", "happy");
54    EXPECT_TRUE(info.Contains("unhappy"));
55    EXPECT_TRUE(info.Contains("happy1"));
56    EXPECT_TRUE(info.Contains("happy"));
57    EXPECT_TRUE(info.Contains("a happy dog"));
58    EXPECT_TRUE(info.Contains("Happy"));
59    EXPECT_TRUE(info.Contains("HAPPY"));
60    EXPECT_FALSE(info.Contains("ha-ppy"));
61  }
62  {
63    StringInfo info("beginwith", "happy");
64    EXPECT_FALSE(info.Contains("unhappy"));
65    EXPECT_TRUE(info.Contains("happy1"));
66    EXPECT_TRUE(info.Contains("happy"));
67    EXPECT_FALSE(info.Contains("a happy dog"));
68    EXPECT_TRUE(info.Contains("Happy"));
69    EXPECT_TRUE(info.Contains("HAPPY"));
70    EXPECT_FALSE(info.Contains("ha-ppy"));
71  }
72  {
73    StringInfo info("endwith", "happy");
74    EXPECT_TRUE(info.Contains("unhappy"));
75    EXPECT_FALSE(info.Contains("happy1"));
76    EXPECT_TRUE(info.Contains("happy"));
77    EXPECT_FALSE(info.Contains("a happy dog"));
78    EXPECT_TRUE(info.Contains("Happy"));
79    EXPECT_TRUE(info.Contains("HAPPY"));
80    EXPECT_FALSE(info.Contains("ha-ppy"));
81  }
82  {
83    StringInfo info("=", "happy");
84    EXPECT_FALSE(info.Contains("unhappy"));
85    EXPECT_FALSE(info.Contains("happy1"));
86    EXPECT_TRUE(info.Contains("happy"));
87    EXPECT_FALSE(info.Contains("a happy dog"));
88    EXPECT_TRUE(info.Contains("Happy"));
89    EXPECT_TRUE(info.Contains("HAPPY"));
90    EXPECT_FALSE(info.Contains("ha-ppy"));
91    EXPECT_FALSE(info.Contains("ha ppy"));
92    EXPECT_FALSE(info.Contains(" happy"));
93    EXPECT_FALSE(info.Contains("happy "));
94  }
95}
96
97}  // namespace gpu
98
99