summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrett Chabot <brettchabot@google.com>2014-03-24 16:26:17 -0700
committerBrett Chabot <brettchabot@google.com>2014-03-24 16:29:39 -0700
commit2399765bd04b20d25d2ef52b821c13789cd3c981 (patch)
tree47dc9ffcb9316e0bc4ddd3bea03321de49bec8e2
parent9adec9e04724d73d20b406d690c43b42aaf8a7ff (diff)
downloadtesting-2399765bd04b20d25d2ef52b821c13789cd3c981.tar.gz
Fix running methods with dollar signs.
Bug: 13510976 Change-Id: I0001d5c2d085f3a3f07cbe41a89ed84234ad000d
-rw-r--r--support/src/android/support/test/internal/runner/TestRequestBuilder.java2
-rw-r--r--support/tests/src/android/support/test/internal/runner/TestRequestBuilderTest.java25
2 files changed, 26 insertions, 1 deletions
diff --git a/support/src/android/support/test/internal/runner/TestRequestBuilder.java b/support/src/android/support/test/internal/runner/TestRequestBuilder.java
index a4d9c01..82f007e 100644
--- a/support/src/android/support/test/internal/runner/TestRequestBuilder.java
+++ b/support/src/android/support/test/internal/runner/TestRequestBuilder.java
@@ -406,7 +406,7 @@ public class TestRequestBuilder {
*/
private static Filter matchParameterizedMethod(final Description target) {
return new Filter() {
- Pattern pat = Pattern.compile(target.getMethodName() + "(\\[[0-9]+\\])?");
+ Pattern pat = Pattern.compile(Pattern.quote(target.getMethodName()) + "(\\[[0-9]+\\])?");
@Override
public boolean shouldRun(Description desc) {
diff --git a/support/tests/src/android/support/test/internal/runner/TestRequestBuilderTest.java b/support/tests/src/android/support/test/internal/runner/TestRequestBuilderTest.java
index 6c80146..f28c894 100644
--- a/support/tests/src/android/support/test/internal/runner/TestRequestBuilderTest.java
+++ b/support/tests/src/android/support/test/internal/runner/TestRequestBuilderTest.java
@@ -246,6 +246,17 @@ public class TestRequestBuilderTest {
public void runMe2() {}
}
+ public static class DollarMethod {
+
+ @Test
+ public void testWith$() {
+ }
+
+ @Test
+ public void testSkipped() {
+ }
+ }
+
@InjectInstrumentation
public Instrumentation mInstr;
@@ -631,4 +642,18 @@ public class TestRequestBuilderTest {
Result result = testRunner.run(request.getRequest());
Assert.assertEquals(2, result.getRunCount());
}
+
+ /**
+ * Test method filters with dollar signs are allowed
+ */
+ @Test
+ public void testMethodFilterWithDollar() {
+ TestRequestBuilder b = new TestRequestBuilder(mMockDeviceBuild,
+ new PrintStream(new ByteArrayOutputStream()));
+ b.addTestMethod(DollarMethod.class.getName(), "testWith$");
+ TestRequest request = b.build(mInstr, mBundle);
+ JUnitCore testRunner = new JUnitCore();
+ Result result = testRunner.run(request.getRequest());
+ Assert.assertEquals(1, result.getRunCount());
+ }
}