Home | History | Annotate | Download | only in shadows
      1 package com.xtremelabs.robolectric.shadows;
      2 
      3 
      4 import android.graphics.ImageFormat;
      5 import android.hardware.Camera;
      6 import com.xtremelabs.robolectric.Robolectric;
      7 import com.xtremelabs.robolectric.WithTestDefaultsRunner;
      8 import org.junit.Before;
      9 import org.junit.Test;
     10 import org.junit.runner.RunWith;
     11 
     12 import java.util.List;
     13 
     14 import static org.hamcrest.CoreMatchers.equalTo;
     15 import static org.hamcrest.CoreMatchers.not;
     16 import static org.hamcrest.CoreMatchers.notNullValue;
     17 import static org.hamcrest.core.IsCollectionContaining.hasItem;
     18 import static org.junit.Assert.assertThat;
     19 
     20 @RunWith(WithTestDefaultsRunner.class)
     21 public class CameraParametersTest {
     22 
     23     private Camera.Parameters parameters;
     24     private ShadowCameraParameters shadowParameters;
     25 
     26     @Before
     27     public void setUp() throws Exception {
     28         parameters = Robolectric.newInstanceOf(Camera.Parameters.class);
     29         shadowParameters = Robolectric.shadowOf(parameters);
     30     }
     31 
     32     @Test
     33     public void testPictureSize() throws Exception {
     34         assertThat(shadowParameters.getPictureHeight(), not(equalTo(600)));
     35         assertThat(shadowParameters.getPictureWidth(), not(equalTo(800)));
     36         parameters.setPictureSize(800, 600);
     37         Camera.Size pictureSize = parameters.getPictureSize();
     38         assertThat(pictureSize.width, equalTo(800));
     39         assertThat(pictureSize.height, equalTo(600));
     40         assertThat(shadowParameters.getPictureHeight(), equalTo(600));
     41         assertThat(shadowParameters.getPictureWidth(), equalTo(800));
     42     }
     43 
     44     @Test
     45     public void testPreviewFpsRange() throws Exception {
     46         int[] fpsRange = new int[2];
     47         parameters.getPreviewFpsRange(fpsRange);
     48         assertThat(fpsRange[1], not(equalTo(15)));
     49         assertThat(fpsRange[0], not(equalTo(25)));
     50         parameters.setPreviewFpsRange(15, 25);
     51         parameters.getPreviewFpsRange(fpsRange);
     52         assertThat(fpsRange[1], equalTo(25));
     53         assertThat(fpsRange[0], equalTo(15));
     54     }
     55 
     56     @Test
     57     public void testPreviewFrameRate() throws Exception {
     58         assertThat(parameters.getPreviewFrameRate(), not(equalTo(15)));
     59         parameters.setPreviewFrameRate(15);
     60         assertThat(parameters.getPreviewFrameRate(), equalTo(15));
     61     }
     62 
     63     @Test
     64     public void testPreviewSize() throws Exception {
     65         assertThat(shadowParameters.getPreviewWidth(), not(equalTo(320)));
     66         assertThat(shadowParameters.getPreviewHeight(), not(equalTo(240)));
     67         parameters.setPreviewSize(320, 240);
     68         Camera.Size size = parameters.getPreviewSize();
     69         assertThat(size.width, equalTo(320));
     70         assertThat(size.height, equalTo(240));
     71         assertThat(shadowParameters.getPreviewWidth(), equalTo(320));
     72         assertThat(shadowParameters.getPreviewHeight(), equalTo(240));
     73     }
     74 
     75     @Test
     76     public void testPreviewFormat() throws Exception {
     77         assertThat(shadowParameters.getPreviewFormat(), equalTo(ImageFormat.NV21));
     78         parameters.setPreviewFormat(ImageFormat.JPEG);
     79         assertThat(shadowParameters.getPreviewFormat(), equalTo(ImageFormat.JPEG));
     80     }
     81 
     82     @Test
     83     public void testGetSupportedPreviewFormats() throws Exception {
     84         List<Integer> supportedFormats = parameters.getSupportedPreviewFormats();
     85         assertThat(supportedFormats, notNullValue());
     86         assertThat(supportedFormats.size(), not(equalTo(0)));
     87         assertThat(supportedFormats, hasItem(ImageFormat.NV21));
     88     }
     89 
     90     @Test
     91     public void testGetSupportedPictureFormats() throws Exception {
     92         List<Integer> supportedFormats = parameters.getSupportedPictureFormats();
     93         assertThat(supportedFormats, notNullValue());
     94         assertThat(supportedFormats.size(), equalTo(2));
     95         assertThat(supportedFormats, hasItem(new Integer(ImageFormat.NV21)));
     96     }
     97 
     98     @Test
     99     public void testGetSupportedPictureSizes() throws Exception {
    100         List<Camera.Size> supportedSizes = parameters.getSupportedPictureSizes();
    101         assertThat(supportedSizes, notNullValue());
    102         assertThat(supportedSizes.size(), equalTo(3));
    103         assertThat(supportedSizes.get(0).width, equalTo(320));
    104         assertThat(supportedSizes.get(0).height, equalTo(240));
    105     }
    106 
    107     @Test
    108     public void testGetSupportedPreviewSizes() throws Exception {
    109         List<Camera.Size> supportedSizes = parameters.getSupportedPreviewSizes();
    110         assertThat(supportedSizes, notNullValue());
    111         assertThat(supportedSizes.size(), equalTo(2));
    112         assertThat(supportedSizes.get(0).width, equalTo(320));
    113         assertThat(supportedSizes.get(0).height, equalTo(240));
    114     }
    115 
    116     @Test
    117     public void testGetSupportedPreviewFpsRange() throws Exception {
    118         List<int[]> supportedRanges = parameters.getSupportedPreviewFpsRange();
    119         assertThat(supportedRanges, notNullValue());
    120         assertThat(supportedRanges.size(), equalTo(2));
    121         assertThat(supportedRanges.get(0)[0], equalTo(15000));
    122         assertThat(supportedRanges.get(0)[1], equalTo(15000));
    123         assertThat(supportedRanges.get(1)[0], equalTo(10000));
    124         assertThat(supportedRanges.get(1)[1], equalTo(30000));
    125     }
    126 
    127     @Test
    128     public void testGetSupportedPreviewFrameRates() throws Exception {
    129         List<Integer> supportedRates = parameters.getSupportedPreviewFrameRates();
    130         assertThat(supportedRates, notNullValue());
    131         assertThat(supportedRates.size(), equalTo(3));
    132         assertThat(supportedRates.get(0), equalTo(10));
    133     }
    134 
    135 }
    136