1843fbc4b10a2c62cb3848836907630f0d56c647eroger xue/* 2843fbc4b10a2c62cb3848836907630f0d56c647eroger xue * Copyright (C) 2017 The Android Open Source Project 3843fbc4b10a2c62cb3848836907630f0d56c647eroger xue * 4843fbc4b10a2c62cb3848836907630f0d56c647eroger xue * Licensed under the Apache License, Version 2.0 (the "License"); 5843fbc4b10a2c62cb3848836907630f0d56c647eroger xue * you may not use this file except in compliance with the License. 6843fbc4b10a2c62cb3848836907630f0d56c647eroger xue * You may obtain a copy of the License at 7843fbc4b10a2c62cb3848836907630f0d56c647eroger xue * 8843fbc4b10a2c62cb3848836907630f0d56c647eroger xue * http://www.apache.org/licenses/LICENSE-2.0 9843fbc4b10a2c62cb3848836907630f0d56c647eroger xue * 10843fbc4b10a2c62cb3848836907630f0d56c647eroger xue * Unless required by applicable law or agreed to in writing, software 11843fbc4b10a2c62cb3848836907630f0d56c647eroger xue * distributed under the License is distributed on an "AS IS" BASIS, 12843fbc4b10a2c62cb3848836907630f0d56c647eroger xue * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13843fbc4b10a2c62cb3848836907630f0d56c647eroger xue * See the License for the specific language governing permissions and 14d91964dd49bc0e6a49ff43fb99c70ad2eca6daddroger xue * limitations under the License 15843fbc4b10a2c62cb3848836907630f0d56c647eroger xue */ 16843fbc4b10a2c62cb3848836907630f0d56c647eroger xue 17d91964dd49bc0e6a49ff43fb99c70ad2eca6daddroger xuepackage com.android.car.settings.display; 18843fbc4b10a2c62cb3848836907630f0d56c647eroger xue 19843fbc4b10a2c62cb3848836907630f0d56c647eroger xueimport android.content.Context; 20843fbc4b10a2c62cb3848836907630f0d56c647eroger xueimport android.provider.Settings; 21d91964dd49bc0e6a49ff43fb99c70ad2eca6daddroger xue 22d91964dd49bc0e6a49ff43fb99c70ad2eca6daddroger xueimport com.android.car.settings.CarSettingsRobolectricTestRunner; 23d91964dd49bc0e6a49ff43fb99c70ad2eca6daddroger xueimport com.android.car.settings.TestConfig; 24d91964dd49bc0e6a49ff43fb99c70ad2eca6daddroger xue 25843fbc4b10a2c62cb3848836907630f0d56c647eroger xueimport org.junit.Before; 26843fbc4b10a2c62cb3848836907630f0d56c647eroger xueimport org.junit.Test; 27843fbc4b10a2c62cb3848836907630f0d56c647eroger xueimport org.junit.runner.RunWith; 28843fbc4b10a2c62cb3848836907630f0d56c647eroger xueimport org.robolectric.RuntimeEnvironment; 29843fbc4b10a2c62cb3848836907630f0d56c647eroger xueimport org.robolectric.annotation.Config; 30843fbc4b10a2c62cb3848836907630f0d56c647eroger xueimport org.robolectric.Robolectric; 31843fbc4b10a2c62cb3848836907630f0d56c647eroger xue 32843fbc4b10a2c62cb3848836907630f0d56c647eroger xueimport static com.google.common.truth.Truth.assertThat; 33843fbc4b10a2c62cb3848836907630f0d56c647eroger xueimport static android.provider.Settings.System.SCREEN_BRIGHTNESS; 34843fbc4b10a2c62cb3848836907630f0d56c647eroger xue 35843fbc4b10a2c62cb3848836907630f0d56c647eroger xue@RunWith(CarSettingsRobolectricTestRunner.class) 36843fbc4b10a2c62cb3848836907630f0d56c647eroger xue@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) 37d91964dd49bc0e6a49ff43fb99c70ad2eca6daddroger xuepublic class BrightnessLineItemTest { 38843fbc4b10a2c62cb3848836907630f0d56c647eroger xue private Context mContext; 39843fbc4b10a2c62cb3848836907630f0d56c647eroger xue 40d91964dd49bc0e6a49ff43fb99c70ad2eca6daddroger xue private BrightnessLineItem mBrightnessLineItem; 41843fbc4b10a2c62cb3848836907630f0d56c647eroger xue 42843fbc4b10a2c62cb3848836907630f0d56c647eroger xue @Before 43843fbc4b10a2c62cb3848836907630f0d56c647eroger xue public void setUp() { 44843fbc4b10a2c62cb3848836907630f0d56c647eroger xue mContext = RuntimeEnvironment.application; 45d91964dd49bc0e6a49ff43fb99c70ad2eca6daddroger xue mBrightnessLineItem = new BrightnessLineItem(mContext); 46843fbc4b10a2c62cb3848836907630f0d56c647eroger xue } 47843fbc4b10a2c62cb3848836907630f0d56c647eroger xue 48843fbc4b10a2c62cb3848836907630f0d56c647eroger xue @Test 49d91964dd49bc0e6a49ff43fb99c70ad2eca6daddroger xue public void testInitialValue() throws Exception { 50843fbc4b10a2c62cb3848836907630f0d56c647eroger xue // for some reason in robolectric test, I can't set this value over 100 51843fbc4b10a2c62cb3848836907630f0d56c647eroger xue for (int brightness = 0; brightness < 100; ++brightness) { 52843fbc4b10a2c62cb3848836907630f0d56c647eroger xue Settings.System.putInt(mContext.getContentResolver(), SCREEN_BRIGHTNESS, brightness); 53ddb7544cfc9f5263d719c9d2760451e9316d3bderoger xue assertThat(mBrightnessLineItem.getSeekbarValue()).isEqualTo(brightness); 54843fbc4b10a2c62cb3848836907630f0d56c647eroger xue } 55843fbc4b10a2c62cb3848836907630f0d56c647eroger xue } 56843fbc4b10a2c62cb3848836907630f0d56c647eroger xue 57843fbc4b10a2c62cb3848836907630f0d56c647eroger xue @Test 58d91964dd49bc0e6a49ff43fb99c70ad2eca6daddroger xue public void testOnSeekbarChanged() throws Exception { 59843fbc4b10a2c62cb3848836907630f0d56c647eroger xue for (int brightness = 0; brightness < 255; ++brightness) { 60d91964dd49bc0e6a49ff43fb99c70ad2eca6daddroger xue mBrightnessLineItem.onSeekbarChanged(brightness); 61843fbc4b10a2c62cb3848836907630f0d56c647eroger xue assertThat(Settings.System.getInt(mContext.getContentResolver(), 62843fbc4b10a2c62cb3848836907630f0d56c647eroger xue SCREEN_BRIGHTNESS)).isEqualTo(brightness); 63843fbc4b10a2c62cb3848836907630f0d56c647eroger xue } 64843fbc4b10a2c62cb3848836907630f0d56c647eroger xue } 65843fbc4b10a2c62cb3848836907630f0d56c647eroger xue} 66