• 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 /**
15  *  Unit tests for GtestFilter.
16  */
17 @RunWith(BlockJUnit4ClassRunner.class)
18 public class GtestFilterTest {
19 
20     private class TestClass {}
21     private class OtherTestClass {}
22 
23     @Test
testDescription()24     public void testDescription() {
25         Filter filterUnderTest = new GtestFilter(String.format("%s.*", TestClass.class.getName()));
26         Assert.assertEquals("gtest-filter: " + TestClass.class.getName() + ".*",
27                 filterUnderTest.describe());
28     }
29 
30     @Test
testNoFilter()31     public void testNoFilter() {
32         Filter filterUnderTest = new GtestFilter("");
33         Assert.assertTrue(filterUnderTest.shouldRun(
34                 Description.createTestDescription(TestClass.class, "testMethod")));
35         Assert.assertTrue(filterUnderTest.shouldRun(
36                 Description.createTestDescription(TestClass.class, "otherTestMethod")));
37         Assert.assertTrue(filterUnderTest.shouldRun(
38                 Description.createTestDescription(OtherTestClass.class, "testMethod")));
39     }
40 
41     @Test
testPositiveFilterExplicit()42     public void testPositiveFilterExplicit() {
43         Filter filterUnderTest = new GtestFilter(String.format(
44                 "%s.testMethod", TestClass.class.getName()));
45         Assert.assertTrue(filterUnderTest.shouldRun(
46                 Description.createTestDescription(TestClass.class, "testMethod")));
47         Assert.assertFalse(filterUnderTest.shouldRun(
48                 Description.createTestDescription(TestClass.class, "otherTestMethod")));
49         Assert.assertFalse(filterUnderTest.shouldRun(
50                 Description.createTestDescription(OtherTestClass.class, "testMethod")));
51     }
52 
53     @Test
testPositiveFilterClassRegex()54     public void testPositiveFilterClassRegex() {
55         Filter filterUnderTest = new GtestFilter(String.format("%s.*", TestClass.class.getName()));
56         Assert.assertTrue(filterUnderTest.shouldRun(
57                 Description.createTestDescription(TestClass.class, "testMethod")));
58         Assert.assertTrue(filterUnderTest.shouldRun(
59                 Description.createTestDescription(TestClass.class, "otherTestMethod")));
60         Assert.assertFalse(filterUnderTest.shouldRun(
61                 Description.createTestDescription(OtherTestClass.class, "testMethod")));
62     }
63 
64     @Test
testNegativeFilterExplicit()65     public void testNegativeFilterExplicit() {
66         Filter filterUnderTest = new GtestFilter(String.format(
67                 "-%s.testMethod", TestClass.class.getName()));
68         Assert.assertFalse(filterUnderTest.shouldRun(
69                 Description.createTestDescription(TestClass.class, "testMethod")));
70         Assert.assertTrue(filterUnderTest.shouldRun(
71                 Description.createTestDescription(TestClass.class, "otherTestMethod")));
72         Assert.assertTrue(filterUnderTest.shouldRun(
73                 Description.createTestDescription(OtherTestClass.class, "testMethod")));
74     }
75 
76     @Test
testNegativeFilterClassRegex()77     public void testNegativeFilterClassRegex() {
78         Filter filterUnderTest = new GtestFilter(String.format(
79                 "-%s.*", TestClass.class.getName()));
80         Assert.assertFalse(filterUnderTest.shouldRun(
81                 Description.createTestDescription(TestClass.class, "testMethod")));
82         Assert.assertFalse(filterUnderTest.shouldRun(
83                 Description.createTestDescription(TestClass.class, "otherTestMethod")));
84         Assert.assertTrue(filterUnderTest.shouldRun(
85                 Description.createTestDescription(OtherTestClass.class, "testMethod")));
86     }
87 
88     @Test
testPositiveAndNegativeFilter()89     public void testPositiveAndNegativeFilter() {
90         Filter filterUnderTest = new GtestFilter(String.format(
91                 "%s.*-%s.testMethod", TestClass.class.getName(), TestClass.class.getName()));
92         Assert.assertFalse(filterUnderTest.shouldRun(
93                 Description.createTestDescription(TestClass.class, "testMethod")));
94         Assert.assertTrue(filterUnderTest.shouldRun(
95                 Description.createTestDescription(TestClass.class, "otherTestMethod")));
96         Assert.assertFalse(filterUnderTest.shouldRun(
97                 Description.createTestDescription(OtherTestClass.class, "testMethod")));
98     }
99 
100     @Test
testMultiplePositiveFilters()101     public void testMultiplePositiveFilters() {
102         Filter filterUnderTest =
103                 new GtestFilter(String.format("%s.otherTestMethod:%s.otherTestMethod[1]",
104                         TestClass.class.getName(), OtherTestClass.class.getName()));
105         Assert.assertFalse(filterUnderTest.shouldRun(
106                 Description.createTestDescription(TestClass.class, "testMethod")));
107         Assert.assertTrue(filterUnderTest.shouldRun(
108                 Description.createTestDescription(TestClass.class, "otherTestMethod")));
109         Assert.assertFalse(filterUnderTest.shouldRun(
110                 Description.createTestDescription(OtherTestClass.class, "testMethod")));
111         Assert.assertTrue(filterUnderTest.shouldRun(
112                 Description.createTestDescription(OtherTestClass.class, "otherTestMethod[1]")));
113     }
114 
115     @Test
testMultipleFiltersPositiveAndNegative()116     public void testMultipleFiltersPositiveAndNegative() {
117         Filter filterUnderTest = new GtestFilter(String.format(
118                 "%s.*-%s.testMethod", TestClass.class.getName(), TestClass.class.getName()));
119         Assert.assertFalse(filterUnderTest.shouldRun(
120                 Description.createTestDescription(TestClass.class, "testMethod")));
121         Assert.assertTrue(filterUnderTest.shouldRun(
122                 Description.createTestDescription(TestClass.class, "otherTestMethod")));
123         Assert.assertFalse(filterUnderTest.shouldRun(
124                 Description.createTestDescription(OtherTestClass.class, "testMethod")));
125     }
126 
127     @Test
testMultipleNegativeFilters()128     public void testMultipleNegativeFilters() {
129         Filter filterUnderTest = new GtestFilter(String.format(
130                 "*-%s.otherTestMethod:%s.otherTestMethod", TestClass.class.getName(),
131                 OtherTestClass.class.getName()));
132         Assert.assertTrue(filterUnderTest.shouldRun(
133                 Description.createTestDescription(TestClass.class, "testMethod")));
134         Assert.assertFalse(filterUnderTest.shouldRun(
135                 Description.createTestDescription(TestClass.class, "otherTestMethod")));
136         Assert.assertTrue(filterUnderTest.shouldRun(
137                 Description.createTestDescription(OtherTestClass.class, "testMethod")));
138         Assert.assertFalse(filterUnderTest.shouldRun(
139                 Description.createTestDescription(OtherTestClass.class, "otherTestMethod")));
140     }
141 }
142 
143