Home | History | Annotate | Download | only in tv
      1 /*
      2  * Copyright (C) 2015 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.tv;
     18 
     19 import static com.android.tv.TimeShiftManager.TIME_SHIFT_ACTION_ID_FAST_FORWARD;
     20 import static com.android.tv.TimeShiftManager.TIME_SHIFT_ACTION_ID_JUMP_TO_NEXT;
     21 import static com.android.tv.TimeShiftManager.TIME_SHIFT_ACTION_ID_JUMP_TO_PREVIOUS;
     22 import static com.android.tv.TimeShiftManager.TIME_SHIFT_ACTION_ID_PAUSE;
     23 import static com.android.tv.TimeShiftManager.TIME_SHIFT_ACTION_ID_PLAY;
     24 import static com.android.tv.TimeShiftManager.TIME_SHIFT_ACTION_ID_REWIND;
     25 import static com.google.common.truth.Truth.assertWithMessage;
     26 
     27 import android.support.test.filters.MediumTest;
     28 import android.support.test.runner.AndroidJUnit4;
     29 import com.android.tv.testing.activities.BaseMainActivityTestCase;
     30 import org.junit.Before;
     31 import org.junit.Test;
     32 import org.junit.runner.RunWith;
     33 
     34 @MediumTest
     35 @RunWith(AndroidJUnit4.class)
     36 public class TimeShiftManagerTest extends BaseMainActivityTestCase {
     37     private TimeShiftManager mTimeShiftManager;
     38 
     39     @Override
     40     @Before
     41     public void setUp() {
     42         super.setUp();
     43         mTimeShiftManager = mActivity.getTimeShiftManager();
     44     }
     45 
     46     @Test
     47     public void testDisableActions() {
     48         enableAllActions(true);
     49         assertActionState(true, true, true, true, true, true);
     50         mTimeShiftManager.enableAction(TIME_SHIFT_ACTION_ID_PLAY, false);
     51         assertActionState(false, true, true, true, true, true);
     52         mTimeShiftManager.enableAction(TIME_SHIFT_ACTION_ID_PAUSE, false);
     53         assertActionState(false, false, true, true, true, true);
     54         mTimeShiftManager.enableAction(TIME_SHIFT_ACTION_ID_REWIND, false);
     55         assertActionState(false, false, false, true, true, true);
     56         mTimeShiftManager.enableAction(TIME_SHIFT_ACTION_ID_FAST_FORWARD, false);
     57         assertActionState(false, false, false, false, true, true);
     58         mTimeShiftManager.enableAction(TIME_SHIFT_ACTION_ID_JUMP_TO_PREVIOUS, false);
     59         assertActionState(false, false, false, false, false, true);
     60         mTimeShiftManager.enableAction(TIME_SHIFT_ACTION_ID_JUMP_TO_NEXT, false);
     61         assertActionState(false, false, false, false, false, false);
     62     }
     63 
     64     @Test
     65     public void testEnableActions() {
     66         enableAllActions(false);
     67         assertActionState(false, false, false, false, false, false);
     68         mTimeShiftManager.enableAction(TIME_SHIFT_ACTION_ID_PLAY, true);
     69         assertActionState(true, false, false, false, false, false);
     70         mTimeShiftManager.enableAction(TIME_SHIFT_ACTION_ID_PAUSE, true);
     71         assertActionState(true, true, false, false, false, false);
     72         mTimeShiftManager.enableAction(TIME_SHIFT_ACTION_ID_REWIND, true);
     73         assertActionState(true, true, true, false, false, false);
     74         mTimeShiftManager.enableAction(TIME_SHIFT_ACTION_ID_FAST_FORWARD, true);
     75         assertActionState(true, true, true, true, false, false);
     76         mTimeShiftManager.enableAction(TIME_SHIFT_ACTION_ID_JUMP_TO_PREVIOUS, true);
     77         assertActionState(true, true, true, true, true, false);
     78         mTimeShiftManager.enableAction(TIME_SHIFT_ACTION_ID_JUMP_TO_NEXT, true);
     79         assertActionState(true, true, true, true, true, true);
     80     }
     81 
     82     private void enableAllActions(boolean enabled) {
     83         mTimeShiftManager.enableAction(TIME_SHIFT_ACTION_ID_PLAY, enabled);
     84         mTimeShiftManager.enableAction(TIME_SHIFT_ACTION_ID_PAUSE, enabled);
     85         mTimeShiftManager.enableAction(TIME_SHIFT_ACTION_ID_REWIND, enabled);
     86         mTimeShiftManager.enableAction(TIME_SHIFT_ACTION_ID_FAST_FORWARD, enabled);
     87         mTimeShiftManager.enableAction(TIME_SHIFT_ACTION_ID_JUMP_TO_PREVIOUS, enabled);
     88         mTimeShiftManager.enableAction(TIME_SHIFT_ACTION_ID_JUMP_TO_NEXT, enabled);
     89     }
     90 
     91     private void assertActionState(
     92             boolean playEnabled,
     93             boolean pauseEnabled,
     94             boolean rewindEnabled,
     95             boolean fastForwardEnabled,
     96             boolean jumpToPreviousEnabled,
     97             boolean jumpToNextEnabled) {
     98         assertWithMessage("Play Action")
     99                 .that(mTimeShiftManager.isActionEnabled(TIME_SHIFT_ACTION_ID_PLAY))
    100                 .isEqualTo(playEnabled);
    101         assertWithMessage("Pause Action")
    102                 .that(mTimeShiftManager.isActionEnabled(TIME_SHIFT_ACTION_ID_PAUSE))
    103                 .isEqualTo(pauseEnabled);
    104         assertWithMessage("Rewind Action")
    105                 .that(mTimeShiftManager.isActionEnabled(TIME_SHIFT_ACTION_ID_REWIND))
    106                 .isEqualTo(rewindEnabled);
    107         assertWithMessage("Fast Forward Action")
    108                 .that(mTimeShiftManager.isActionEnabled(TIME_SHIFT_ACTION_ID_FAST_FORWARD))
    109                 .isEqualTo(fastForwardEnabled);
    110         assertWithMessage("Jump To Previous Action")
    111                 .that(mTimeShiftManager.isActionEnabled(TIME_SHIFT_ACTION_ID_JUMP_TO_PREVIOUS))
    112                 .isEqualTo(jumpToPreviousEnabled);
    113         assertWithMessage("Jump To Next Action")
    114                 .that(mTimeShiftManager.isActionEnabled(TIME_SHIFT_ACTION_ID_JUMP_TO_NEXT))
    115                 .isEqualTo(jumpToNextEnabled);
    116     }
    117 }
    118