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