1 /* 2 * Copyright (C) 2022 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 com.android.server.display; 18 19 import static org.junit.Assert.assertEquals; 20 21 import androidx.test.filters.SmallTest; 22 import androidx.test.runner.AndroidJUnit4; 23 24 import com.android.server.display.brightness.BrightnessReason; 25 26 import org.junit.Before; 27 import org.junit.Test; 28 import org.junit.runner.RunWith; 29 30 @SmallTest 31 @RunWith(AndroidJUnit4.class) 32 public class DisplayBrightnessStateTest { 33 private static final float FLOAT_DELTA = 0.001f; 34 35 private DisplayBrightnessState.Builder mDisplayBrightnessStateBuilder; 36 37 @Before before()38 public void before() { 39 mDisplayBrightnessStateBuilder = new DisplayBrightnessState.Builder(); 40 } 41 42 @Test validateAllDisplayBrightnessStateFieldsAreSetAsExpected()43 public void validateAllDisplayBrightnessStateFieldsAreSetAsExpected() { 44 float brightness = 0.3f; 45 float sdrBrightness = 0.2f; 46 boolean shouldUseAutoBrightness = true; 47 BrightnessReason brightnessReason = new BrightnessReason(); 48 brightnessReason.setReason(BrightnessReason.REASON_AUTOMATIC); 49 brightnessReason.setModifier(BrightnessReason.MODIFIER_DIMMED); 50 DisplayBrightnessState displayBrightnessState = mDisplayBrightnessStateBuilder 51 .setBrightness(brightness) 52 .setSdrBrightness(sdrBrightness) 53 .setBrightnessReason(brightnessReason) 54 .setShouldUseAutoBrightness(shouldUseAutoBrightness) 55 .build(); 56 57 assertEquals(displayBrightnessState.getBrightness(), brightness, FLOAT_DELTA); 58 assertEquals(displayBrightnessState.getSdrBrightness(), sdrBrightness, FLOAT_DELTA); 59 assertEquals(displayBrightnessState.getBrightnessReason(), brightnessReason); 60 assertEquals(displayBrightnessState.getShouldUseAutoBrightness(), shouldUseAutoBrightness); 61 assertEquals(displayBrightnessState.toString(), getString(displayBrightnessState)); 62 } 63 64 @Test testFrom()65 public void testFrom() { 66 BrightnessReason reason = new BrightnessReason(); 67 reason.setReason(BrightnessReason.REASON_MANUAL); 68 reason.setModifier(BrightnessReason.MODIFIER_DIMMED); 69 DisplayBrightnessState state1 = new DisplayBrightnessState.Builder() 70 .setBrightnessReason(reason) 71 .setBrightness(0.26f) 72 .setSdrBrightness(0.23f) 73 .setShouldUseAutoBrightness(false) 74 .build(); 75 DisplayBrightnessState state2 = DisplayBrightnessState.Builder.from(state1).build(); 76 assertEquals(state1, state2); 77 } 78 getString(DisplayBrightnessState displayBrightnessState)79 private String getString(DisplayBrightnessState displayBrightnessState) { 80 StringBuilder sb = new StringBuilder(); 81 sb.append("DisplayBrightnessState:") 82 .append("\n brightness:") 83 .append(displayBrightnessState.getBrightness()) 84 .append("\n sdrBrightness:") 85 .append(displayBrightnessState.getSdrBrightness()) 86 .append("\n brightnessReason:") 87 .append(displayBrightnessState.getBrightnessReason()) 88 .append("\n shouldUseAutoBrightness:") 89 .append(displayBrightnessState.getShouldUseAutoBrightness()) 90 .append("\n isSlowChange:") 91 .append(displayBrightnessState.isSlowChange()); 92 return sb.toString(); 93 } 94 } 95