/*
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
package com.facebook.drawee.debug;
import com.facebook.drawee.drawable.ScalingUtils;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import robolectric3.shadows.ShadowMatrix;
/**
* Test cases for {@link DebugControllerOverlayDrawable} that are not included in the gradle build
* as they depend on a working `ShadowMatrix` implementation.
*/
@Config(shadows = {ShadowMatrix.class})
@RunWith(RobolectricTestRunner.class)
public class DebugControllerOverlayDrawableInternalTest {
DebugControllerOverlayDrawableTestHelper helper;
@Before
public void setUp() {
helper = new DebugControllerOverlayDrawableTestHelper();
}
@Test
public void testOverlayWhenScaleTypeFitCenter() {
helper.assertOverlayColorOk(100, 100, 100, 100, ScalingUtils.ScaleType.FIT_CENTER);
helper.assertOverlayColorOk(100, 100, 1000, 100, ScalingUtils.ScaleType.FIT_CENTER);
helper.assertOverlayColorOk(100, 100, 100, 1000, ScalingUtils.ScaleType.FIT_CENTER);
helper.assertOverlayColorNotOk(100, 100, 1000, 1000, ScalingUtils.ScaleType.FIT_CENTER);
helper.assertOverlayColorNotOk(100, 100, 10, 10, ScalingUtils.ScaleType.FIT_CENTER);
}
@Test
public void testOverlayWhenScaleTypeFitXY() {
helper.assertOverlayColorOk(100, 100, 100, 100, ScalingUtils.ScaleType.FIT_XY);
helper.assertOverlayColorNotOk(100, 100, 1000, 100, ScalingUtils.ScaleType.FIT_XY);
helper.assertOverlayColorNotOk(100, 100, 100, 1000, ScalingUtils.ScaleType.FIT_XY);
helper.assertOverlayColorNotOk(100, 100, 1000, 1000, ScalingUtils.ScaleType.FIT_XY);
helper.assertOverlayColorNotOk(100, 100, 10, 10, ScalingUtils.ScaleType.FIT_XY);
}
@Test
public void testOverlayWhenScaleTypeCenter() {
helper.assertOverlayColorOk(100, 100, 100, 100, ScalingUtils.ScaleType.CENTER);
helper.assertOverlayColorOk(100, 100, 1000, 100, ScalingUtils.ScaleType.CENTER);
helper.assertOverlayColorOk(100, 100, 100, 1000, ScalingUtils.ScaleType.CENTER);
helper.assertOverlayColorOk(100, 100, 1000, 1000, ScalingUtils.ScaleType.CENTER);
helper.assertOverlayColorNotOk(100, 100, 10, 10, ScalingUtils.ScaleType.CENTER);
}
@Test
public void testOverlayWhenScaleTypeCenterCrop() {
helper.assertOverlayColorOk(100, 100, 100, 100, ScalingUtils.ScaleType.CENTER_CROP);
helper.assertOverlayColorNotOk(100, 100, 1000, 100, ScalingUtils.ScaleType.CENTER_CROP);
helper.assertOverlayColorNotOk(100, 100, 100, 1000, ScalingUtils.ScaleType.CENTER_CROP);
helper.assertOverlayColorNotOk(100, 100, 1000, 1000, ScalingUtils.ScaleType.CENTER_CROP);
helper.assertOverlayColorNotOk(100, 100, 10, 10, ScalingUtils.ScaleType.CENTER_CROP);
}
}