diff options
author | Amith Yamasani <yamasani@google.com> | 2012-12-11 11:14:58 -0800 |
---|---|---|
committer | Amith Yamasani <yamasani@google.com> | 2012-12-11 11:15:25 -0800 |
commit | 03cb98aecfeef0b0894f69987f8b4a15c02501f3 (patch) | |
tree | 9bc900ba51fb0099160983ff70e758d1bc3d7112 /services/tests/servicestests | |
parent | e03c17f1cb50a7869ef33406a2be275fdb040ea1 (diff) | |
download | frameworks_base-03cb98aecfeef0b0894f69987f8b4a15c02501f3.zip frameworks_base-03cb98aecfeef0b0894f69987f8b4a15c02501f3.tar.gz frameworks_base-03cb98aecfeef0b0894f69987f8b4a15c02501f3.tar.bz2 |
Move Observer test to servicetests
Change-Id: Ib3493af4eb3185db79004a3cad5473161ed51f71
Diffstat (limited to 'services/tests/servicestests')
-rw-r--r-- | services/tests/servicestests/src/com/android/server/content/ObserverNodeTest.java | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/services/tests/servicestests/src/com/android/server/content/ObserverNodeTest.java b/services/tests/servicestests/src/com/android/server/content/ObserverNodeTest.java new file mode 100644 index 0000000..5b70c17 --- /dev/null +++ b/services/tests/servicestests/src/com/android/server/content/ObserverNodeTest.java @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2007 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server.content; + +import java.util.ArrayList; + +import android.database.ContentObserver; +import android.net.Uri; +import android.os.Handler; +import android.os.UserHandle; +import android.test.AndroidTestCase; + +import com.android.server.content.ContentService.ObserverCall; +import com.android.server.content.ContentService.ObserverNode; + +public class ObserverNodeTest extends AndroidTestCase { + static class TestObserver extends ContentObserver { + public TestObserver() { + super(new Handler()); + } + } + + public void testUri() { + final int myUserHandle = UserHandle.myUserId(); + + ObserverNode root = new ObserverNode(""); + Uri[] uris = new Uri[] { + Uri.parse("content://c/a/"), + Uri.parse("content://c/"), + Uri.parse("content://x/"), + Uri.parse("content://c/b/"), + Uri.parse("content://c/a/a1/1/"), + Uri.parse("content://c/a/a1/2/"), + Uri.parse("content://c/b/1/"), + Uri.parse("content://c/b/2/"), + }; + + int[] nums = new int[] {4, 7, 1, 4, 2, 2, 3, 3}; + + // special case + root.addObserverLocked(uris[0], new TestObserver().getContentObserver(), false, root, + 0, 0, myUserHandle); + for(int i = 1; i < uris.length; i++) { + root.addObserverLocked(uris[i], new TestObserver().getContentObserver(), true, root, + 0, 0, myUserHandle); + } + + ArrayList<ObserverCall> calls = new ArrayList<ObserverCall>(); + + for (int i = nums.length - 1; i >=0; --i) { + root.collectObserversLocked(uris[i], 0, null, false, myUserHandle, calls); + assertEquals(nums[i], calls.size()); + calls.clear(); + } + } + + public void testUriNotNotify() { + final int myUserHandle = UserHandle.myUserId(); + + ObserverNode root = new ObserverNode(""); + Uri[] uris = new Uri[] { + Uri.parse("content://c/"), + Uri.parse("content://x/"), + Uri.parse("content://c/a/"), + Uri.parse("content://c/b/"), + Uri.parse("content://c/a/1/"), + Uri.parse("content://c/a/2/"), + Uri.parse("content://c/b/1/"), + Uri.parse("content://c/b/2/"), + }; + int[] nums = new int[] {7, 1, 3, 3, 1, 1, 1, 1}; + + for(int i = 0; i < uris.length; i++) { + root.addObserverLocked(uris[i], new TestObserver().getContentObserver(), false, root, + 0, 0, myUserHandle); + } + + ArrayList<ObserverCall> calls = new ArrayList<ObserverCall>(); + + for (int i = uris.length - 1; i >=0; --i) { + root.collectObserversLocked(uris[i], 0, null, false, myUserHandle, calls); + assertEquals(nums[i], calls.size()); + calls.clear(); + } + } +} |