1 // Copyright 2014 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.
5 package org.chromium.testing.local;
7 import org.junit.Assert;
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;
15 * Unit tests for GtestFilter.
17 @RunWith(BlockJUnit4ClassRunner.class)
18 public class GtestFilterTest {
21 public void testDescription() {
22 Filter filterUnderTest = new GtestFilter("TestClass.*");
23 Assert.assertEquals("gtest-filter: TestClass.*", filterUnderTest.describe());
27 public void testNoFilter() {
28 Filter filterUnderTest = new GtestFilter("");
29 Assert.assertTrue(filterUnderTest.shouldRun(
30 Description.createTestDescription("TestClass", "testMethod")));
31 Assert.assertTrue(filterUnderTest.shouldRun(
32 Description.createTestDescription("TestClass", "otherTestMethod")));
33 Assert.assertTrue(filterUnderTest.shouldRun(
34 Description.createTestDescription("OtherTestClass", "testMethod")));
38 public void testPositiveFilterExplicit() {
39 Filter filterUnderTest = new GtestFilter("TestClass.testMethod");
40 Assert.assertTrue(filterUnderTest.shouldRun(
41 Description.createTestDescription("TestClass", "testMethod")));
42 Assert.assertFalse(filterUnderTest.shouldRun(
43 Description.createTestDescription("TestClass", "otherTestMethod")));
44 Assert.assertFalse(filterUnderTest.shouldRun(
45 Description.createTestDescription("OtherTestClass", "testMethod")));
49 public void testPositiveFilterClassRegex() {
50 Filter filterUnderTest = new GtestFilter("TestClass.*");
51 Assert.assertTrue(filterUnderTest.shouldRun(
52 Description.createTestDescription("TestClass", "testMethod")));
53 Assert.assertTrue(filterUnderTest.shouldRun(
54 Description.createTestDescription("TestClass", "otherTestMethod")));
55 Assert.assertFalse(filterUnderTest.shouldRun(
56 Description.createTestDescription("OtherTestClass", "testMethod")));
60 public void testNegativeFilterExplicit() {
61 Filter filterUnderTest = new GtestFilter("-TestClass.testMethod");
62 Assert.assertFalse(filterUnderTest.shouldRun(
63 Description.createTestDescription("TestClass", "testMethod")));
64 Assert.assertTrue(filterUnderTest.shouldRun(
65 Description.createTestDescription("TestClass", "otherTestMethod")));
66 Assert.assertTrue(filterUnderTest.shouldRun(
67 Description.createTestDescription("OtherTestClass", "testMethod")));
71 public void testNegativeFilterClassRegex() {
72 Filter filterUnderTest = new GtestFilter("-TestClass.*");
73 Assert.assertFalse(filterUnderTest.shouldRun(
74 Description.createTestDescription("TestClass", "testMethod")));
75 Assert.assertFalse(filterUnderTest.shouldRun(
76 Description.createTestDescription("TestClass", "otherTestMethod")));
77 Assert.assertTrue(filterUnderTest.shouldRun(
78 Description.createTestDescription("OtherTestClass", "testMethod")));
82 public void testPositiveAndNegativeFilter() {
83 Filter filterUnderTest = new GtestFilter("TestClass.*-TestClass.testMethod");
84 Assert.assertFalse(filterUnderTest.shouldRun(
85 Description.createTestDescription("TestClass", "testMethod")));
86 Assert.assertTrue(filterUnderTest.shouldRun(
87 Description.createTestDescription("TestClass", "otherTestMethod")));
88 Assert.assertFalse(filterUnderTest.shouldRun(
89 Description.createTestDescription("OtherTestClass", "testMethod")));
93 public void testMultiplePositiveFilters() {
94 Filter filterUnderTest = new GtestFilter(
95 "TestClass.otherTestMethod:OtherTestClass.otherTestMethod");
96 Assert.assertFalse(filterUnderTest.shouldRun(
97 Description.createTestDescription("TestClass", "testMethod")));
98 Assert.assertTrue(filterUnderTest.shouldRun(
99 Description.createTestDescription("TestClass", "otherTestMethod")));
100 Assert.assertFalse(filterUnderTest.shouldRun(
101 Description.createTestDescription("OtherTestClass", "testMethod")));
102 Assert.assertTrue(filterUnderTest.shouldRun(
103 Description.createTestDescription("OtherTestClass", "otherTestMethod")));
107 public void testMultipleFiltersPositiveAndNegative() {
108 Filter filterUnderTest = new GtestFilter("TestClass.*:-TestClass.testMethod");
109 Assert.assertFalse(filterUnderTest.shouldRun(
110 Description.createTestDescription("TestClass", "testMethod")));
111 Assert.assertTrue(filterUnderTest.shouldRun(
112 Description.createTestDescription("TestClass", "otherTestMethod")));
113 Assert.assertFalse(filterUnderTest.shouldRun(
114 Description.createTestDescription("OtherTestClass", "testMethod")));