• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 package org.chromium.testing.local;
6 
7 import org.junit.Assert;
8 import org.junit.Test;
9 import org.junit.runner.Description;
10 import org.junit.runner.RunWith;
11 import org.junit.runner.manipulation.Filter;
12 import org.junit.runners.BlockJUnit4ClassRunner;
13 
14 /** Unit tests for GtestFilter. */
15 @RunWith(BlockJUnit4ClassRunner.class)
16 public class GtestFilterTest {
17 
18     private class TestClass {}
19 
20     private class OtherTestClass {}
21 
22     @Test
testDescription()23     public void testDescription() {
24         Filter filterUnderTest = new GtestFilter(String.format("%s.*", TestClass.class.getName()));
25         Assert.assertEquals(
26                 "gtest-filter: " + TestClass.class.getName() + ".*", filterUnderTest.describe());
27     }
28 
29     @Test
testNoFilter()30     public void testNoFilter() {
31         Filter filterUnderTest = new GtestFilter("");
32         Assert.assertTrue(
33                 filterUnderTest.shouldRun(
34                         Description.createTestDescription(TestClass.class, "testMethod")));
35         Assert.assertTrue(
36                 filterUnderTest.shouldRun(
37                         Description.createTestDescription(TestClass.class, "otherTestMethod")));
38         Assert.assertTrue(
39                 filterUnderTest.shouldRun(
40                         Description.createTestDescription(OtherTestClass.class, "testMethod")));
41     }
42 
43     @Test
testPositiveFilterExplicit()44     public void testPositiveFilterExplicit() {
45         Filter filterUnderTest =
46                 new GtestFilter(String.format("%s.testMethod", TestClass.class.getName()));
47         Assert.assertTrue(
48                 filterUnderTest.shouldRun(
49                         Description.createTestDescription(TestClass.class, "testMethod")));
50         Assert.assertFalse(
51                 filterUnderTest.shouldRun(
52                         Description.createTestDescription(TestClass.class, "otherTestMethod")));
53         Assert.assertFalse(
54                 filterUnderTest.shouldRun(
55                         Description.createTestDescription(OtherTestClass.class, "testMethod")));
56     }
57 
58     @Test
testPositiveFilterClassRegex()59     public void testPositiveFilterClassRegex() {
60         Filter filterUnderTest = new GtestFilter(String.format("%s.*", TestClass.class.getName()));
61         Assert.assertTrue(
62                 filterUnderTest.shouldRun(
63                         Description.createTestDescription(TestClass.class, "testMethod")));
64         Assert.assertTrue(
65                 filterUnderTest.shouldRun(
66                         Description.createTestDescription(TestClass.class, "otherTestMethod")));
67         Assert.assertFalse(
68                 filterUnderTest.shouldRun(
69                         Description.createTestDescription(OtherTestClass.class, "testMethod")));
70     }
71 
72     @Test
testNegativeFilterExplicit()73     public void testNegativeFilterExplicit() {
74         Filter filterUnderTest =
75                 new GtestFilter(String.format("-%s.testMethod", TestClass.class.getName()));
76         Assert.assertFalse(
77                 filterUnderTest.shouldRun(
78                         Description.createTestDescription(TestClass.class, "testMethod")));
79         Assert.assertTrue(
80                 filterUnderTest.shouldRun(
81                         Description.createTestDescription(TestClass.class, "otherTestMethod")));
82         Assert.assertTrue(
83                 filterUnderTest.shouldRun(
84                         Description.createTestDescription(OtherTestClass.class, "testMethod")));
85     }
86 
87     @Test
testNegativeFilterClassRegex()88     public void testNegativeFilterClassRegex() {
89         Filter filterUnderTest = new GtestFilter(String.format("-%s.*", TestClass.class.getName()));
90         Assert.assertFalse(
91                 filterUnderTest.shouldRun(
92                         Description.createTestDescription(TestClass.class, "testMethod")));
93         Assert.assertFalse(
94                 filterUnderTest.shouldRun(
95                         Description.createTestDescription(TestClass.class, "otherTestMethod")));
96         Assert.assertTrue(
97                 filterUnderTest.shouldRun(
98                         Description.createTestDescription(OtherTestClass.class, "testMethod")));
99     }
100 
101     @Test
testPositiveAndNegativeFilter()102     public void testPositiveAndNegativeFilter() {
103         Filter filterUnderTest =
104                 new GtestFilter(
105                         String.format(
106                                 "%s.*-%s.testMethod",
107                                 TestClass.class.getName(), TestClass.class.getName()));
108         Assert.assertFalse(
109                 filterUnderTest.shouldRun(
110                         Description.createTestDescription(TestClass.class, "testMethod")));
111         Assert.assertTrue(
112                 filterUnderTest.shouldRun(
113                         Description.createTestDescription(TestClass.class, "otherTestMethod")));
114         Assert.assertFalse(
115                 filterUnderTest.shouldRun(
116                         Description.createTestDescription(OtherTestClass.class, "testMethod")));
117     }
118 
119     @Test
testMultiplePositiveFilters()120     public void testMultiplePositiveFilters() {
121         Filter filterUnderTest =
122                 new GtestFilter(
123                         String.format(
124                                 "%s.otherTestMethod:%s.otherTestMethod[1]",
125                                 TestClass.class.getName(), OtherTestClass.class.getName()));
126         Assert.assertFalse(
127                 filterUnderTest.shouldRun(
128                         Description.createTestDescription(TestClass.class, "testMethod")));
129         Assert.assertTrue(
130                 filterUnderTest.shouldRun(
131                         Description.createTestDescription(TestClass.class, "otherTestMethod")));
132         Assert.assertFalse(
133                 filterUnderTest.shouldRun(
134                         Description.createTestDescription(OtherTestClass.class, "testMethod")));
135         Assert.assertTrue(
136                 filterUnderTest.shouldRun(
137                         Description.createTestDescription(
138                                 OtherTestClass.class, "otherTestMethod[1]")));
139     }
140 
141     @Test
testMultipleFiltersPositiveAndNegative()142     public void testMultipleFiltersPositiveAndNegative() {
143         Filter filterUnderTest =
144                 new GtestFilter(
145                         String.format(
146                                 "%s.*-%s.testMethod",
147                                 TestClass.class.getName(), TestClass.class.getName()));
148         Assert.assertFalse(
149                 filterUnderTest.shouldRun(
150                         Description.createTestDescription(TestClass.class, "testMethod")));
151         Assert.assertTrue(
152                 filterUnderTest.shouldRun(
153                         Description.createTestDescription(TestClass.class, "otherTestMethod")));
154         Assert.assertFalse(
155                 filterUnderTest.shouldRun(
156                         Description.createTestDescription(OtherTestClass.class, "testMethod")));
157     }
158 
159     @Test
testMultipleNegativeFilters()160     public void testMultipleNegativeFilters() {
161         Filter filterUnderTest =
162                 new GtestFilter(
163                         String.format(
164                                 "*-%s.otherTestMethod:%s.otherTestMethod",
165                                 TestClass.class.getName(), OtherTestClass.class.getName()));
166         Assert.assertTrue(
167                 filterUnderTest.shouldRun(
168                         Description.createTestDescription(TestClass.class, "testMethod")));
169         Assert.assertFalse(
170                 filterUnderTest.shouldRun(
171                         Description.createTestDescription(TestClass.class, "otherTestMethod")));
172         Assert.assertTrue(
173                 filterUnderTest.shouldRun(
174                         Description.createTestDescription(OtherTestClass.class, "testMethod")));
175         Assert.assertFalse(
176                 filterUnderTest.shouldRun(
177                         Description.createTestDescription(
178                                 OtherTestClass.class, "otherTestMethod")));
179     }
180 }
181