package com.soundcloud.android.crop; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.provider.MediaStore; import org.fest.assertions.api.ANDROID; import static org.fest.assertions.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; public class CropBuilderTest extends BaseTestCase { private Activity activity; private Crop builder; @Override public void setUp() throws Exception { super.setUp(); activity = mock(Activity.class); when(activity.getPackageName()).thenReturn("com.example"); builder = new Crop(Uri.parse("image:input")); } public void testInputUriSetAsData() { ANDROID.assertThat(builder.getIntent(activity)).hasData("image:input"); } public void testOutputUriSetAsExtra() { builder.output(Uri.parse("image:output")); Intent intent = builder.getIntent(activity); Uri output = intent.getParcelableExtra(MediaStore.EXTRA_OUTPUT); assertThat(output.toString()).isEqualTo("image:output"); } public void testAspectRatioSetAsExtras() { builder.withAspect(16, 10); Intent intent = builder.getIntent(activity); assertThat(intent.getIntExtra("aspect_x", 0)).isEqualTo(16); assertThat(intent.getIntExtra("aspect_y", 0)).isEqualTo(10); } public void testFixedAspectRatioSetAsExtras() { builder.asSquare(); Intent intent = builder.getIntent(activity); assertThat(intent.getIntExtra("aspect_x", 0)).isEqualTo(1); assertThat(intent.getIntExtra("aspect_y", 0)).isEqualTo(1); } public void testMaxSizeSetAsExtras() { builder.withMaxSize(400, 300); Intent intent = builder.getIntent(activity); assertThat(intent.getIntExtra("max_x", 0)).isEqualTo(400); assertThat(intent.getIntExtra("max_y", 0)).isEqualTo(300); } public void testBuildsIntentWithMultipleOptions() { builder.asSquare().withMaxSize(200, 200); Intent intent = builder.getIntent(activity); assertThat(intent.getIntExtra("aspect_x", 0)).isEqualTo(1); assertThat(intent.getIntExtra("aspect_y", 0)).isEqualTo(1); assertThat(intent.getIntExtra("max_x", 0)).isEqualTo(200); assertThat(intent.getIntExtra("max_y", 0)).isEqualTo(200); } }