16d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti/* 26d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti * Copyright (C) 2016 The Android Open Source Project 36d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti * 46d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti * Licensed under the Apache License, Version 2.0 (the "License"); 56d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti * you may not use this file except in compliance with the License. 66d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti * You may obtain a copy of the License at 76d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti * 86d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti * http://www.apache.org/licenses/LICENSE-2.0 96d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti * 106d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti * Unless required by applicable law or agreed to in writing, software 116d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti * distributed under the License is distributed on an "AS IS" BASIS, 126d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti * See the License for the specific language governing permissions and 146d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti * limitations under the License. 156d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti */ 166d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti 177df1a82802cdf842d07a86a80383c7d5ea7ae53aLorenzo Colittipackage com.android.internal.util.test; 186d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti 196d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colittiimport android.content.ContentResolver; 206d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colittiimport android.database.ContentObserver; 216d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colittiimport android.net.Uri; 226d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colittiimport android.provider.Settings; 236d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colittiimport android.test.AndroidTestCase; 246d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colittiimport android.test.mock.MockContentResolver; 256d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colittiimport android.test.mock.MockContext; 266d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colittiimport android.test.suitebuilder.annotation.SmallTest; 273394a8e52393b71d757766047ce05fe7813a8e82Guang Zhuimport android.test.suitebuilder.annotation.Suppress; 286d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colittiimport android.util.Log; 296d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti 306d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colittiimport java.util.concurrent.CountDownLatch; 316d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colittiimport java.util.concurrent.TimeUnit; 326d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti 336d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti/** 346d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti * Unit tests for FakeSettingsProvider. 356d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti */ 366d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colittipublic class FakeSettingsProviderTest extends AndroidTestCase { 376d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti 386d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti private MockContentResolver mCr; 396d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti 406d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti @Override 416d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti public void setUp() throws Exception { 426d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti mCr = new MockContentResolver(); 436d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti mCr.addProvider(Settings.AUTHORITY, new FakeSettingsProvider()); 446d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti } 456d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti 466d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti @SmallTest 476d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti public void testBasicOperation() throws Exception { 486d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti String settingName = Settings.System.SCREEN_BRIGHTNESS; 496d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti 506d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti try { 516d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti Settings.System.getInt(mCr, settingName); 526d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti fail("FakeSettingsProvider should start off empty."); 536d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti } catch (Settings.SettingNotFoundException expected) {} 546d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti 556d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti // Check that fake settings can be written and read back. 566d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti Settings.System.putInt(mCr, settingName, 123); 576d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti assertEquals(123, Settings.System.getInt(mCr, settingName)); 586d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti } 596d553f6dfdcc188fa6b17d4abb11d6222009a8fbLorenzo Colitti} 60