package com.evsuite.abrp; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import org.junit.Test; /** The policy_control value the CarPlay full-screen switch writes — pure JVM. */ public class PolicyControlTest { private static final String CP = "com.allgo.carplay.service"; @Test public void unsetGainsOnlyOurEntryAndLosesItAgain() { String on = PolicyControl.withFull(null, CP); assertEquals("immersive.full=" + CP, on); assertTrue(PolicyControl.hasFull(on, CP)); assertNull(PolicyControl.withoutFull(on, CP)); } @Test public void otherEntriesSurviveOnAndOff() { String before = "immersive.status=com.a:immersive.full=com.b"; String on = PolicyControl.withFull(before, CP); assertEquals("immersive.status=com.a:immersive.full=com.b," + CP, on); assertEquals(before, PolicyControl.withoutFull(on, CP)); } @Test public void addingTwiceAddsOnce() { String once = PolicyControl.withFull(null, CP); assertEquals(once, PolicyControl.withFull(once, CP)); } @Test public void onlyAnExactPackageCounts() { assertFalse(PolicyControl.hasFull("immersive.full=" + CP + ".other", CP)); assertFalse(PolicyControl.hasFull("immersive.status=" + CP, CP)); assertFalse(PolicyControl.hasFull(null, CP)); assertFalse(PolicyControl.hasFull("", CP)); } @Test public void removingWhatIsNotThereKeepsTheRest() { assertEquals("immersive.status=com.a", PolicyControl.withoutFull("immersive.status=com.a", CP)); assertNull(PolicyControl.withoutFull(null, CP)); } }