1 /*
2  * Copyright (C) 2008 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.os.cts;
18 
19 import junit.framework.TestCase;
20 import android.os.Parcel;
21 import android.os.PatternMatcher;
22 import android.platform.test.annotations.AppModeSdkSandbox;
23 
24 @AppModeSdkSandbox(reason = "Allow test in the SDK sandbox (does not prevent other modes).")
25 public class PatternMatcherTest extends TestCase {
26 
27     private PatternMatcher mPatternMatcher;
28 
29     @Override
setUp()30     protected void setUp() throws Exception {
31 
32         super.setUp();
33         mPatternMatcher = null;
34     }
35 
testConstructor()36     public void testConstructor() {
37 
38         // new the PatternMatcher instance
39         mPatternMatcher = new PatternMatcher("test", PatternMatcher.PATTERN_LITERAL);
40         assertNotNull(mPatternMatcher);
41 
42         // new the PatternMatcher instance
43         Parcel p = Parcel.obtain();
44         p.writeString("test");
45         p.writeInt(PatternMatcher.PATTERN_LITERAL);
46         p.setDataPosition(0);
47         mPatternMatcher = new PatternMatcher(p);
48         assertNotNull(mPatternMatcher);
49 
50     }
51 
testGetType()52     public void testGetType() {
53 
54         mPatternMatcher = new PatternMatcher("test", PatternMatcher.PATTERN_LITERAL);
55         assertEquals(PatternMatcher.PATTERN_LITERAL, mPatternMatcher.getType());
56 
57         mPatternMatcher = new PatternMatcher("test", PatternMatcher.PATTERN_PREFIX);
58         assertEquals(PatternMatcher.PATTERN_PREFIX, mPatternMatcher.getType());
59 
60         mPatternMatcher = new PatternMatcher("test", PatternMatcher.PATTERN_SIMPLE_GLOB);
61         assertEquals(PatternMatcher.PATTERN_SIMPLE_GLOB, mPatternMatcher.getType());
62     }
63 
testGetPath()64     public void testGetPath() {
65 
66         // set the expected value
67         String expected1 = "test1";
68 
69         mPatternMatcher = new PatternMatcher(expected1, PatternMatcher.PATTERN_LITERAL);
70         assertEquals(expected1, mPatternMatcher.getPath());
71 
72         String expected2 = "test2";
73 
74         mPatternMatcher = new PatternMatcher(expected2, PatternMatcher.PATTERN_LITERAL);
75         assertEquals(expected2, mPatternMatcher.getPath());
76     }
77 
testToString()78     public void testToString() {
79 
80         // set the expected value
81         String str = "test";
82         String expected1 = "PatternMatcher{LITERAL: test}";
83         String expected2 = "PatternMatcher{PREFIX: test}";
84         String expected3 = "PatternMatcher{GLOB: test}";
85 
86         mPatternMatcher = new PatternMatcher(str, PatternMatcher.PATTERN_LITERAL);
87         assertEquals(expected1, mPatternMatcher.toString());
88 
89         mPatternMatcher = new PatternMatcher(str, PatternMatcher.PATTERN_PREFIX);
90         assertEquals(expected2, mPatternMatcher.toString());
91 
92         mPatternMatcher = new PatternMatcher(str, PatternMatcher.PATTERN_SIMPLE_GLOB);
93         assertEquals(expected3, mPatternMatcher.toString());
94 
95     }
96 
testWriteToParcel()97     public void testWriteToParcel() {
98 
99         String expected = "test1";
100 
101         mPatternMatcher = new PatternMatcher(expected, PatternMatcher.PATTERN_LITERAL);
102         Parcel p = Parcel.obtain();
103         mPatternMatcher.writeToParcel(p, 0);
104 
105         p.setDataPosition(0);
106         assertEquals(expected, p.readString());
107         assertEquals(PatternMatcher.PATTERN_LITERAL, p.readInt());
108     }
109 
testDescribeContents()110     public void testDescribeContents() {
111 
112         // set the expected value
113         mPatternMatcher = new PatternMatcher("test", PatternMatcher.PATTERN_LITERAL);
114         assertEquals(0, mPatternMatcher.describeContents());
115     }
116 
testMatch()117     public void testMatch() {
118 
119         // set the expected value
120         mPatternMatcher = new PatternMatcher("test", PatternMatcher.PATTERN_LITERAL);
121         assertTrue(mPatternMatcher.match("test"));
122         assertFalse(mPatternMatcher.match("test1"));
123 
124         mPatternMatcher = new PatternMatcher("test", PatternMatcher.PATTERN_PREFIX);
125         assertTrue(mPatternMatcher.match("testHello"));
126         assertFalse(mPatternMatcher.match("atestHello"));
127 
128         mPatternMatcher = new PatternMatcher("test", -1);
129         assertFalse(mPatternMatcher.match("testHello"));
130         assertFalse(mPatternMatcher.match("test"));
131         assertFalse(mPatternMatcher.match("atestHello"));
132 
133         mPatternMatcher = new PatternMatcher("", PatternMatcher.PATTERN_SIMPLE_GLOB);
134         assertTrue(mPatternMatcher.match(""));
135 
136         mPatternMatcher = new PatternMatcher("....", PatternMatcher.PATTERN_SIMPLE_GLOB);
137         assertTrue(mPatternMatcher.match("test"));
138 
139         mPatternMatcher = new PatternMatcher("d*", PatternMatcher.PATTERN_SIMPLE_GLOB);
140         assertFalse(mPatternMatcher.match("test"));
141     }
142 
143 }
144