diff --git a/src/main/kotlin/io/ionic/libs/ioncameralib/manager/IONCAMRCameraManager.kt b/src/main/kotlin/io/ionic/libs/ioncameralib/manager/IONCAMRCameraManager.kt index 813eeb0..6321ec8 100644 --- a/src/main/kotlin/io/ionic/libs/ioncameralib/manager/IONCAMRCameraManager.kt +++ b/src/main/kotlin/io/ionic/libs/ioncameralib/manager/IONCAMRCameraManager.kt @@ -184,7 +184,6 @@ class IONCAMRCameraManager( activity: Activity, intent: Intent?, camParameters: IONCAMRCameraParameters, - onImage: (String) -> Unit, onMediaResult: (IONCAMRMediaResult) -> Unit, onError: (IONCAMRError) -> Unit ) { @@ -235,12 +234,10 @@ class IONCAMRCameraManager( mediaProcessor.processCameraImage( activity = activity, - intent = intent, sourcePath = sourcePath, "$applicationId$AUTHORITY", camParameters = camParameters, savedSuccessfully = savedSuccessfully, - onImage = onImage, onMediaResult = onMediaResult, onError = onError ) diff --git a/src/main/kotlin/io/ionic/libs/ioncameralib/model/IONCAMRCameraParameters.kt b/src/main/kotlin/io/ionic/libs/ioncameralib/model/IONCAMRCameraParameters.kt index a37c735..1f55df6 100644 --- a/src/main/kotlin/io/ionic/libs/ioncameralib/model/IONCAMRCameraParameters.kt +++ b/src/main/kotlin/io/ionic/libs/ioncameralib/model/IONCAMRCameraParameters.kt @@ -11,6 +11,5 @@ data class IONCAMRCameraParameters( @SerializedName("allowEdit") val allowEdit: Boolean, @SerializedName("correctOrientation") val correctOrientation: Boolean, @SerializedName("saveToPhotoAlbum") val saveToPhotoAlbum: Boolean, - @SerializedName("includeMetadata") val includeMetadata: Boolean, - @SerializedName("latestVersion") val latestVersion: Boolean + @SerializedName("includeMetadata") val includeMetadata: Boolean ) diff --git a/src/main/kotlin/io/ionic/libs/ioncameralib/processor/IONCAMRMediaProcessor.kt b/src/main/kotlin/io/ionic/libs/ioncameralib/processor/IONCAMRMediaProcessor.kt index c461d71..2d29477 100644 --- a/src/main/kotlin/io/ionic/libs/ioncameralib/processor/IONCAMRMediaProcessor.kt +++ b/src/main/kotlin/io/ionic/libs/ioncameralib/processor/IONCAMRMediaProcessor.kt @@ -189,73 +189,39 @@ class IONCAMRMediaProcessor( fun processCameraImage( activity: Activity, - intent: Intent?, sourcePath: String?, authority: String, camParameters: IONCAMRCameraParameters, savedSuccessfully: Boolean, - onImage: (String) -> Unit, onMediaResult: (IONCAMRMediaResult) -> Unit, onError: (IONCAMRError) -> Unit ) { - var bitmap: Bitmap? - if (camParameters.latestVersion) { - - val mediaResult = - sourcePath?.let { - val imageUri = fileHelper.getUriForFile( - activity, - authority, - File(sourcePath) - ) - if (imageUri == null) { - onError(IONCAMRError.TAKE_PHOTO_ERROR) - return - } - createImageMediaResult( - activity, - it, - imageUri, - camParameters.includeMetadata, - camParameters, - savedSuccessfully - ) - } - - if (mediaResult == null) { - onError(IONCAMRError.TAKE_PHOTO_ERROR) - return - } - onMediaResult(mediaResult) - } else { - //get bitmap - bitmap = sourcePath?.let { getScaledAndRotatedBitmap(activity, it, camParameters) } - if (bitmap == null) { - // Try to get the bitmap from intent. - if (intent != null) { - try { - // getExtras can throw different exceptions - val extras = intent.extras - if (extras != null) { - bitmap = extras["data"] as Bitmap? - } - } catch (e: Exception) { - // Don't let the exception bubble up, bitmap will be null (check below) - } + val mediaResult = + sourcePath?.let { + val imageUri = fileHelper.getUriForFile( + activity, + authority, + File(sourcePath) + ) + if (imageUri == null) { + onError(IONCAMRError.TAKE_PHOTO_ERROR) + return } + createImageMediaResult( + activity, + it, + imageUri, + camParameters.includeMetadata, + camParameters, + savedSuccessfully + ) } - //get base64 representation of bitmap - imageHelper.processPicture( - bitmap, camParameters.encodingType, camParameters.mQuality, - { - onImage(it) - }, - { - onError(it) - } - ) + if (mediaResult == null) { + onError(IONCAMRError.TAKE_PHOTO_ERROR) + return } + onMediaResult(mediaResult) } fun processEditedImage( diff --git a/src/test/kotlin/io/ionic/libs/ioncameralib/ChoosePictureTests.kt b/src/test/kotlin/io/ionic/libs/ioncameralib/ChoosePictureTests.kt index 7a5165a..04227d4 100644 --- a/src/test/kotlin/io/ionic/libs/ioncameralib/ChoosePictureTests.kt +++ b/src/test/kotlin/io/ionic/libs/ioncameralib/ChoosePictureTests.kt @@ -79,8 +79,7 @@ class ChoosePictureTests { allowEdit = false, correctOrientation = true, saveToPhotoAlbum = false, - includeMetadata = false, - latestVersion = false + includeMetadata = false ) val exifHelperMock = IONExifHelperMock() @@ -125,8 +124,7 @@ class ChoosePictureTests { allowEdit = false, correctOrientation = true, saveToPhotoAlbum = false, - includeMetadata = false, - latestVersion = false + includeMetadata = false ) val exifHelperMock = IONExifHelperMock() @@ -171,8 +169,7 @@ class ChoosePictureTests { allowEdit = false, correctOrientation = true, saveToPhotoAlbum = false, - includeMetadata = false, - latestVersion = false + includeMetadata = false ) val exifHelperMock = IONExifHelperMock() @@ -217,8 +214,7 @@ class ChoosePictureTests { allowEdit = false, correctOrientation = false, saveToPhotoAlbum = false, - includeMetadata = false, - latestVersion = false + includeMetadata = false ) val exifHelperMock = IONExifHelperMock() @@ -264,8 +260,7 @@ class ChoosePictureTests { allowEdit = false, correctOrientation = true, saveToPhotoAlbum = false, - includeMetadata = false, - latestVersion = false + includeMetadata = false ) val exifHelperMock = IONExifHelperMock() @@ -312,8 +307,7 @@ class ChoosePictureTests { allowEdit = false, correctOrientation = true, saveToPhotoAlbum = false, - includeMetadata = false, - latestVersion = false + includeMetadata = false ) val exifHelperMock = IONExifHelperMock() @@ -361,8 +355,7 @@ class ChoosePictureTests { allowEdit = false, correctOrientation = true, saveToPhotoAlbum = false, - includeMetadata = false, - latestVersion = false + includeMetadata = false ) val exifHelperMock = IONExifHelperMock() @@ -409,8 +402,7 @@ class ChoosePictureTests { allowEdit = false, correctOrientation = true, saveToPhotoAlbum = false, - includeMetadata = false, - latestVersion = false + includeMetadata = false ) val exifHelperMock = IONExifHelperMock() @@ -457,8 +449,7 @@ class ChoosePictureTests { allowEdit = true, correctOrientation = true, saveToPhotoAlbum = false, - includeMetadata = false, - latestVersion = false + includeMetadata = false ) val exifHelperMock = IONExifHelperMock() @@ -512,8 +503,7 @@ class ChoosePictureTests { allowEdit = true, correctOrientation = true, saveToPhotoAlbum = false, - includeMetadata = false, - latestVersion = false + includeMetadata = false ) val exifHelperMock = IONExifHelperMock() diff --git a/src/test/kotlin/io/ionic/libs/ioncameralib/EditPictureTests.kt b/src/test/kotlin/io/ionic/libs/ioncameralib/EditPictureTests.kt index 249f493..aac6339 100644 --- a/src/test/kotlin/io/ionic/libs/ioncameralib/EditPictureTests.kt +++ b/src/test/kotlin/io/ionic/libs/ioncameralib/EditPictureTests.kt @@ -8,13 +8,11 @@ import android.os.Environment import android.util.Base64 import android.util.Log import androidx.activity.result.ActivityResultLauncher -import io.ionic.libs.ioncameralib.manager.IONCAMRCameraManager import io.ionic.libs.ioncameralib.manager.IONCAMREditManager import io.ionic.libs.ioncameralib.mocks.IONExifHelperMock import io.ionic.libs.ioncameralib.mocks.IONCAMRFileHelperMock import io.ionic.libs.ioncameralib.mocks.IONCAMRImageHelperMock import io.ionic.libs.ioncameralib.mocks.IONCAMRMediaHelperMock -import io.ionic.libs.ioncameralib.model.IONCAMRCameraParameters import io.ionic.libs.ioncameralib.model.IONCAMREditParameters import io.ionic.libs.ioncameralib.model.IONCAMRError import io.ionic.libs.ioncameralib.view.IONCAMRImageEditorActivity @@ -58,7 +56,6 @@ class EditPictureTests { ) companion object{ - private const val PROCESS_SUCCESS = "myImage" private const val FILE_LOCATION = "file://content/storage/emulated/sampleFileLocation" private const val BASE_64 = "base64" private const val METADATA_SIZE = 23456L @@ -163,117 +160,6 @@ class EditPictureTests { }) } - @Test - fun givenTakePictureAllowEditWhenEditProcessSuccessThenSuccess() { - - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 0, - 0, - allowEdit = true, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - "someAppId", - exifHelperMock, - fileHelperMock, - camHelperMock, - imgHelperMock - ) - val IONCAMREditManager = IONCAMREditManager( - "someAppId", - exifHelperMock, - fileHelperMock, - camHelperMock, - imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMREditManager.openCropActivity(null, mUri, mActivityLauncher) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(it, PROCESS_SUCCESS) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAllowEditWhenEditProcessErrorThenError() { - - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 0, - 0, - allowEdit = true, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - "someAppId", - exifHelperMock, - fileHelperMock, - camHelperMock, - imgHelperMock - ) - val IONCAMREditManager = IONCAMREditManager( - "someAppId", - exifHelperMock, - fileHelperMock, - camHelperMock, - imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = false - imgHelperMock.areOptionsZero = false - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMREditManager.openCropActivity(null, mUri, mActivityLauncher) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, - onMediaResult = { - fail() - }, - onError = { - assertEquals(it.code, IONCAMRError.PROCESS_IMAGE_ERROR.code) - assertEquals(it.description, IONCAMRError.PROCESS_IMAGE_ERROR.description) - }) - } - @Test fun givenFileDoesNotExistWhenEditURIPictureThenError() { diff --git a/src/test/kotlin/io/ionic/libs/ioncameralib/TakePictureTests.kt b/src/test/kotlin/io/ionic/libs/ioncameralib/TakePictureTests.kt index 65ef1b6..2461ac3 100644 --- a/src/test/kotlin/io/ionic/libs/ioncameralib/TakePictureTests.kt +++ b/src/test/kotlin/io/ionic/libs/ioncameralib/TakePictureTests.kt @@ -2,11 +2,11 @@ package io.ionic.libs.ioncameralib import android.app.Activity import android.content.Intent -import android.media.ExifInterface import android.net.Uri import android.os.Environment import android.util.Log import io.ionic.libs.ioncameralib.manager.IONCAMRCameraManager +import io.ionic.libs.ioncameralib.view.IONCAMRImageEditorActivity import io.ionic.libs.ioncameralib.mocks.IONCAMRMediaHelperMock import io.ionic.libs.ioncameralib.mocks.IONExifHelperMock import io.ionic.libs.ioncameralib.mocks.IONCAMRFileHelperMock @@ -39,12 +39,12 @@ class TakePictureTests { private lateinit var mockActivity: Activity companion object{ - private const val PROCESS_SUCCESS = "myImage" private const val BASE_64 = "base64" private const val METADATA_SIZE = 23456L private const val METADATA_FORMAT = "jpg" private const val METADATA_RESOLUTION = "1080x1080" private const val METADATA_CREATION_DATE = "2023-03-30T09:01:26Z" + private const val FILE_LOCATION = "file://content/storage/emulated/sampleFileLocation" } @Before @@ -68,8 +68,7 @@ class TakePictureTests { } @Test - fun givenTakePictureNotCalledJPEGWhenProcessResultFromCameraThenTakePhotoError() { - + fun givenTakePictureCalledJPEGAndUriNullWhenProcessResultFromCameraThenError() { val camParameters = IONCAMRCameraParameters( 20, -1, @@ -77,10 +76,9 @@ class TakePictureTests { 0, 0, allowEdit = false, - correctOrientation = true, + correctOrientation = false, saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false + includeMetadata = true ) val exifHelperMock = IONExifHelperMock() @@ -98,66 +96,22 @@ class TakePictureTests { Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, - onMediaResult = { - fail() - }, - onError = { - assertEquals(it.code, IONCAMRError.PROCESS_IMAGE_ERROR.code) - assertEquals(it.description, IONCAMRError.PROCESS_IMAGE_ERROR.description) - }) - } - - @Test - fun givenTakePictureNotCalledPNGWhenProcessResultFromCameraThenTakePhotoError() { - - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 1, - 0, - allowEdit = false, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) + imgHelperMock.processPicSuccess = true + fileHelperMock.isUriNull = true + IONCAMRCameraManager.takePicture(mockActivity, 0, 0) IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, onMediaResult = { fail() }, onError = { - assertEquals(it.code, IONCAMRError.PROCESS_IMAGE_ERROR.code) - assertEquals(it.description, IONCAMRError.PROCESS_IMAGE_ERROR.description) + assertEquals(it.code, IONCAMRError.TAKE_PHOTO_ERROR.code) + assertEquals(it.description, IONCAMRError.TAKE_PHOTO_ERROR.description) }) } @Test - fun givenAPI28TakePictureCalledBitmapNullWhenProcessResultFromCameraThenError() { - + fun givenTakePictureCalledJPEGAndFileStreamNullWhenProcessResultFromCameraThenError() { val camParameters = IONCAMRCameraParameters( 20, -1, @@ -167,8 +121,7 @@ class TakePictureTests { allowEdit = false, correctOrientation = false, saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false + includeMetadata = true ) val exifHelperMock = IONExifHelperMock() @@ -186,22 +139,24 @@ class TakePictureTests { Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) + imgHelperMock.processPicSuccess = true + fileHelperMock.fileExists = true + fileHelperMock.isUriNull = false + fileHelperMock.isFileStreamNull = true + IONCAMRCameraManager.takePicture(mockActivity, 0, 0) IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, onMediaResult = { fail() }, onError = { - assertEquals(it.code, IONCAMRError.PROCESS_IMAGE_ERROR.code) - assertEquals(it.description, IONCAMRError.PROCESS_IMAGE_ERROR.description) + assertEquals(it.code, IONCAMRError.TAKE_PHOTO_ERROR.code) + assertEquals(it.description, IONCAMRError.TAKE_PHOTO_ERROR.description) }) } @Test - fun givenAPI28TakePictureCalledJPEGAndDataUriAndProcessOKWhenProcessResultFromCameraThenSuccess() { + fun givenTakePictureCalledJPEGAndBitmapNullWhenProcessResultFromCameraThenError() { val camParameters = IONCAMRCameraParameters( 20, -1, @@ -211,8 +166,7 @@ class TakePictureTests { allowEdit = false, correctOrientation = false, saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false + includeMetadata = true ) val exifHelperMock = IONExifHelperMock() @@ -231,22 +185,24 @@ class TakePictureTests { Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) imgHelperMock.processPicSuccess = true + fileHelperMock.fileExists = true + fileHelperMock.isUriNull = false + fileHelperMock.isFileStreamNull = false + imgHelperMock.isBitmapNull = true IONCAMRCameraManager.takePicture(mockActivity, 0, 0) IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(PROCESS_SUCCESS, it) - }, onMediaResult = { fail() }, onError = { - fail() + assertEquals(it.code, IONCAMRError.TAKE_PHOTO_ERROR.code) + assertEquals(it.description, IONCAMRError.TAKE_PHOTO_ERROR.description) }) } @Test - fun givenAPI30TakePictureCalledJPEGAndDataUriAndUriNullWhenProcessResultFromCameraThenError() { + fun givenTakePictureCalledJPEGWithMetadataWhenProcessResultFromCameraThenSuccess() { val camParameters = IONCAMRCameraParameters( 20, -1, @@ -256,8 +212,7 @@ class TakePictureTests { allowEdit = false, correctOrientation = false, saveToPhotoAlbum = true, - includeMetadata = true, - latestVersion = true + includeMetadata = true ) val exifHelperMock = IONExifHelperMock() @@ -276,24 +231,33 @@ class TakePictureTests { Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) imgHelperMock.processPicSuccess = true - fileHelperMock.isUriNull = true + fileHelperMock.fileExists = true + fileHelperMock.isUriNull = false + fileHelperMock.isFileStreamNull = false + imgHelperMock.isBitmapNull = false + imgHelperMock.bitmapToBase64Success = true + fileHelperMock.fileExtension = "jpg" IONCAMRCameraManager.takePicture(mockActivity, 0, 0) IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, onMediaResult = { - fail() + assertEquals(it.type, 0) + assertTrue(it.uri.contains("myFile")) + assertEquals(it.thumbnail, BASE_64) + assertNotEquals(it.metadata, null) + assertEquals(it.metadata?.size, METADATA_SIZE) + assertEquals(it.metadata?.duration, null) + assertEquals(it.metadata?.resolution, METADATA_RESOLUTION) + assertEquals(it.metadata?.format, METADATA_FORMAT) + assertEquals(it.metadata?.creationDate, METADATA_CREATION_DATE) }, onError = { - assertEquals(it.code, IONCAMRError.TAKE_PHOTO_ERROR.code) - assertEquals(it.description, IONCAMRError.TAKE_PHOTO_ERROR.description) + fail() }) } @Test - fun givenAPI30TakePictureCalledJPEGAndDataUriAndUriNotNullFileStreamNullWhenProcessResultFromCameraThenError() { + fun givenTakePictureNotCalledWhenProcessResultFromCameraThenError() { val camParameters = IONCAMRCameraParameters( 20, -1, @@ -302,9 +266,8 @@ class TakePictureTests { 0, allowEdit = false, correctOrientation = false, - saveToPhotoAlbum = true, - includeMetadata = true, - latestVersion = true + saveToPhotoAlbum = false, + includeMetadata = false ) val exifHelperMock = IONExifHelperMock() @@ -322,16 +285,8 @@ class TakePictureTests { Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - imgHelperMock.processPicSuccess = true - fileHelperMock.fileExists = true - fileHelperMock.isUriNull = false - fileHelperMock.isFileStreamNull = true - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) + // takePicture is NOT called — imageFilePath is null, so sourcePath is null IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, onMediaResult = { fail() }, @@ -342,7 +297,7 @@ class TakePictureTests { } @Test - fun givenAPI30TakePictureCalledJPEGAndDataUriAndUriNotNullBitmapNullWhenProcessResultFromCameraThenError() { + fun givenTakePictureCalledJPEGNoMetadataWhenProcessResultFromCameraThenSuccess() { val camParameters = IONCAMRCameraParameters( 20, -1, @@ -351,9 +306,8 @@ class TakePictureTests { 0, allowEdit = false, correctOrientation = false, - saveToPhotoAlbum = true, - includeMetadata = true, - latestVersion = true + saveToPhotoAlbum = false, + includeMetadata = false ) val exifHelperMock = IONExifHelperMock() @@ -371,28 +325,27 @@ class TakePictureTests { Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - imgHelperMock.processPicSuccess = true fileHelperMock.fileExists = true fileHelperMock.isUriNull = false fileHelperMock.isFileStreamNull = false - imgHelperMock.isBitmapNull = true + imgHelperMock.isBitmapNull = false + imgHelperMock.bitmapToBase64Success = true IONCAMRCameraManager.takePicture(mockActivity, 0, 0) IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, onMediaResult = { - fail() + assertEquals(it.type, 0) + assertTrue(it.uri.contains("myFile")) + assertEquals(it.thumbnail, BASE_64) + assertEquals(it.metadata, null) }, onError = { - assertEquals(it.code, IONCAMRError.TAKE_PHOTO_ERROR.code) - assertEquals(it.description, IONCAMRError.TAKE_PHOTO_ERROR.description) + fail() }) } @Test - fun givenAPI30TakePictureCalledJPEGAndDataUriAndUriNotNullBitmapNotNullWhenProcessResultFromCameraThenSuccess() { + fun givenTakePictureCalledJPEGDoNotSaveToAlbumWhenProcessResultFromCameraThenSuccess() { val camParameters = IONCAMRCameraParameters( 20, -1, @@ -401,9 +354,8 @@ class TakePictureTests { 0, allowEdit = false, correctOrientation = false, - saveToPhotoAlbum = true, - includeMetadata = true, - latestVersion = true + saveToPhotoAlbum = false, + includeMetadata = true ) val exifHelperMock = IONExifHelperMock() @@ -421,7 +373,6 @@ class TakePictureTests { Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - imgHelperMock.processPicSuccess = true fileHelperMock.fileExists = true fileHelperMock.isUriNull = false fileHelperMock.isFileStreamNull = false @@ -431,19 +382,12 @@ class TakePictureTests { IONCAMRCameraManager.takePicture(mockActivity, 0, 0) IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, onMediaResult = { assertEquals(it.type, 0) assertTrue(it.uri.contains("myFile")) assertEquals(it.thumbnail, BASE_64) + assertFalse(it.saved) assertNotEquals(it.metadata, null) - assertEquals(it.metadata?.size, METADATA_SIZE) - assertEquals(it.metadata?.duration, null) - assertEquals(it.metadata?.resolution, METADATA_RESOLUTION) - assertEquals(it.metadata?.format, METADATA_FORMAT) - assertEquals(it.metadata?.creationDate, METADATA_CREATION_DATE) }, onError = { fail() @@ -451,18 +395,17 @@ class TakePictureTests { } @Test - fun givenAPI28TakePictureCalledPNGAndDataUriAndProcessOKWhenProcessResultFromCameraThenSuccess() { + fun givenTakePictureAllowEditWithExternalEditWhenProcessResultFromCameraThenSuccess() { val camParameters = IONCAMRCameraParameters( 20, -1, -1, - 1, 0, - allowEdit = false, + 0, + allowEdit = true, correctOrientation = false, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false + saveToPhotoAlbum = false, + includeMetadata = true ) val exifHelperMock = IONExifHelperMock() @@ -479,16 +422,20 @@ class TakePictureTests { ) Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) + Mockito.doReturn(FILE_LOCATION).`when`(mIntent).getStringExtra(IONCAMRImageEditorActivity.IMAGE_OUTPUT_URI_EXTRAS) - imgHelperMock.processPicSuccess = true + fileHelperMock.fileExists = true + fileHelperMock.isUriNull = false + fileHelperMock.isFileStreamNull = false + imgHelperMock.isBitmapNull = false + imgHelperMock.bitmapToBase64Success = true + fileHelperMock.fileExtension = "jpg" - IONCAMRCameraManager.takePicture(mockActivity, 0, 1) IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(PROCESS_SUCCESS, it) - }, onMediaResult = { - fail() + assertEquals(it.type, 0) + assertEquals(it.thumbnail, BASE_64) + assertNotEquals(it.metadata, null) }, onError = { fail() @@ -496,18 +443,17 @@ class TakePictureTests { } @Test - fun givenAPI28TakePictureCalledJPEGAndProcessErrorWhenProcessResultFromCameraThenError() { + fun givenTakePictureAllowEditWithExternalEditAndUriNullWhenProcessResultFromCameraThenError() { val camParameters = IONCAMRCameraParameters( 20, -1, -1, 0, 0, - allowEdit = false, + allowEdit = true, correctOrientation = false, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false + saveToPhotoAlbum = false, + includeMetadata = false ) val exifHelperMock = IONExifHelperMock() @@ -524,26 +470,22 @@ class TakePictureTests { ) Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) + Mockito.doReturn(FILE_LOCATION).`when`(mIntent).getStringExtra(IONCAMRImageEditorActivity.IMAGE_OUTPUT_URI_EXTRAS) - imgHelperMock.processPicSuccess = false + fileHelperMock.isUriNull = true - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, onMediaResult = { fail() }, onError = { - assertEquals(it.code, IONCAMRError.PROCESS_IMAGE_ERROR.code) - assertEquals(it.description, IONCAMRError.PROCESS_IMAGE_ERROR.description) + assertEquals(it.code, IONCAMRError.TAKE_PHOTO_ERROR.code) + assertEquals(it.description, IONCAMRError.TAKE_PHOTO_ERROR.description) }) } - @Test - fun givenAPI28TakePictureCalledPNGAndProcessErrorWhenProcessResultFromCameraThenError() { + fun givenTakePictureCalledPNGWithMetadataWhenProcessResultFromCameraThenSuccess() { val camParameters = IONCAMRCameraParameters( 20, -1, @@ -553,8 +495,7 @@ class TakePictureTests { allowEdit = false, correctOrientation = false, saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false + includeMetadata = true ) val exifHelperMock = IONExifHelperMock() @@ -572,62 +513,21 @@ class TakePictureTests { Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - imgHelperMock.processPicSuccess = false + fileHelperMock.fileExists = true + fileHelperMock.isUriNull = false + fileHelperMock.isFileStreamNull = false + imgHelperMock.isBitmapNull = false + imgHelperMock.bitmapToBase64Success = true + fileHelperMock.fileExtension = "png" IONCAMRCameraManager.takePicture(mockActivity, 0, 1) IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, - onMediaResult = { - fail() - }, - onError = { - assertEquals(it.code, IONCAMRError.PROCESS_IMAGE_ERROR.code) - assertEquals(it.description, IONCAMRError.PROCESS_IMAGE_ERROR.description) - }) - } - - @Test - fun givenTakePictureCalledJPEGAndCompressOKWhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 0, - 0, - allowEdit = false, - correctOrientation = false, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - fileHelperMock.getUriResult = IONCAMRFileHelperMock.GET_URI_SUCCESS - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(PROCESS_SUCCESS, it) - }, onMediaResult = { - fail() + assertEquals(it.type, 0) + assertTrue(it.uri.contains("myFile")) + assertEquals(it.thumbnail, BASE_64) + assertNotEquals(it.metadata, null) + assertEquals(it.metadata?.format, "png") }, onError = { fail() @@ -635,7 +535,7 @@ class TakePictureTests { } @Test - fun givenTakePictureCalledPNGAndCompressOKWhenProcessResultFromCameraThenSuccess() { + fun givenTakePictureCalledPNGAndUriNullWhenProcessResultFromCameraThenError() { val camParameters = IONCAMRCameraParameters( 20, -1, @@ -645,8 +545,7 @@ class TakePictureTests { allowEdit = false, correctOrientation = false, saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false + includeMetadata = false ) val exifHelperMock = IONExifHelperMock() @@ -664,1395 +563,17 @@ class TakePictureTests { Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - imgHelperMock.processPicSuccess = true - fileHelperMock.getUriResult = IONCAMRFileHelperMock.GET_URI_SUCCESS + fileHelperMock.isUriNull = true IONCAMRCameraManager.takePicture(mockActivity, 0, 1) IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(PROCESS_SUCCESS, it) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureCalledJPEGAndDoNotSaveAndCompressOKWhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 0, - 0, - allowEdit = false, - correctOrientation = false, - saveToPhotoAlbum = false, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - fileHelperMock.getUriResult = IONCAMRFileHelperMock.GET_URI_SUCCESS - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(PROCESS_SUCCESS, it) - }, onMediaResult = { fail() }, onError = { - fail() - }) - } - - @Test - fun givenTakePictureCalledPNGAndDoNotSaveAndCompressOKWhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 1, - 0, - allowEdit = false, - correctOrientation = false, - saveToPhotoAlbum = false, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - fileHelperMock.getUriResult = IONCAMRFileHelperMock.GET_URI_SUCCESS - - IONCAMRCameraManager.takePicture(mockActivity, 0, 1) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(PROCESS_SUCCESS, it) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndCustomWidthHeightJPEGAndCorrectAndProcessOKWhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - 100, - 100, - 0, - 0, - allowEdit = false, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(PROCESS_SUCCESS, it) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndCustomWidthHeightPNGAndCorrectAndProcessOKWhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - 100, - 100, - 1, - 0, - allowEdit = false, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - - IONCAMRCameraManager.takePicture(mockActivity, 0, 1) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(PROCESS_SUCCESS, it) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndCustomWidthHeightJPEGAndProcessErrorWhenProcessResultFromCameraThenError() { - val camParameters = IONCAMRCameraParameters( - 20, - 100, - 100, - 0, - 0, - allowEdit = false, - correctOrientation = false, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = false - imgHelperMock.areOptionsZero = false - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, - onMediaResult = { - fail() - }, - onError = { - assertEquals(it.code, IONCAMRError.PROCESS_IMAGE_ERROR.code) - assertEquals(it.description, IONCAMRError.PROCESS_IMAGE_ERROR.description) - }) - } - - @Test - fun givenTakePictureAndCustomWidthHeightPNGAndProcessErrorWhenProcessResultFromCameraThenError() { - val camParameters = IONCAMRCameraParameters( - 20, - 100, - 100, - 1, - 0, - allowEdit = false, - correctOrientation = false, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = false - imgHelperMock.areOptionsZero = false - - IONCAMRCameraManager.takePicture(mockActivity, 0, 1) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, - onMediaResult = { - fail() - }, - onError = { - assertEquals(it.code, IONCAMRError.PROCESS_IMAGE_ERROR.code) - assertEquals(it.description, IONCAMRError.PROCESS_IMAGE_ERROR.description) - }) - } - - @Test - fun givenTakePictureAndCustomWidthHeightJPEGAndOptionsZeroWhenProcessResultFromCameraThenError() { - val camParameters = IONCAMRCameraParameters( - 20, - 100, - 100, - 0, - 0, - allowEdit = false, - correctOrientation = false, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = false - imgHelperMock.areOptionsZero = true - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, - onMediaResult = { - fail() - }, - onError = { - assertEquals(it.code, IONCAMRError.PROCESS_IMAGE_ERROR.code) - assertEquals(it.description, IONCAMRError.PROCESS_IMAGE_ERROR.description) - }) - } - - @Test - fun givenTakePictureAndCustomWidthHeightPNGAndOptionsZeroWhenProcessResultFromCameraThenError() { - val camParameters = IONCAMRCameraParameters( - 20, - 100, - 100, - 1, - 0, - allowEdit = false, - correctOrientation = false, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = false - imgHelperMock.areOptionsZero = true - - IONCAMRCameraManager.takePicture(mockActivity, 0, 1) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, - onMediaResult = { - fail() - }, - onError = { - assertEquals(it.code, IONCAMRError.PROCESS_IMAGE_ERROR.code) - assertEquals(it.description, IONCAMRError.PROCESS_IMAGE_ERROR.description) - }) - } - - @Test - fun givenTakePictureAndCustomWidthHeightJPEGCompressOKWhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - 100, - 100, - 0, - 0, - allowEdit = false, - correctOrientation = false, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(PROCESS_SUCCESS, it) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndCustomWidthHeightPNGCompressOKWhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - 100, - 100, - 1, - 0, - allowEdit = false, - correctOrientation = false, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - - IONCAMRCameraManager.takePicture(mockActivity, 0, 1) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(PROCESS_SUCCESS, it) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndCustomWidthHeightJPEGCompressErrorWhenProcessResultFromCameraThenError() { - val camParameters = IONCAMRCameraParameters( - 20, - 100, - 100, - 0, - 0, - allowEdit = false, - correctOrientation = false, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.compressImageSuccess = false - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, - onMediaResult = { - fail() - }, - onError = { - assertEquals(it.code, IONCAMRError.PROCESS_IMAGE_ERROR.code) - assertEquals(it.description, IONCAMRError.PROCESS_IMAGE_ERROR.description) - }) - } - - @Test - fun givenTakePictureAndCustomWidthHeightPNGCompressErrorWhenProcessResultFromCameraThenError() { - val camParameters = IONCAMRCameraParameters( - 20, - 100, - 100, - 1, - 0, - allowEdit = false, - correctOrientation = false, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.compressImageSuccess = false - - IONCAMRCameraManager.takePicture(mockActivity, 0, 1) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, - onMediaResult = { - fail() - }, - onError = { - assertEquals(it.code, IONCAMRError.PROCESS_IMAGE_ERROR.code) - assertEquals(it.description, IONCAMRError.PROCESS_IMAGE_ERROR.description) - }) - } - - - @Test - fun givenTakePictureAndCorrectJPEGAndRotate90RatioSameWhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 0, - 0, - allowEdit = false, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - imgHelperMock.outHeight = 10 - imgHelperMock.outWidth = 10 - exifHelperMock.testOrientation = ExifInterface.ORIENTATION_ROTATE_90 - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(it, PROCESS_SUCCESS) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndCorrectPNGAndRotate90RatioSameWhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 1, - 0, - allowEdit = false, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - imgHelperMock.outHeight = 10 - imgHelperMock.outWidth = 10 - exifHelperMock.testOrientation = ExifInterface.ORIENTATION_ROTATE_90 - - IONCAMRCameraManager.takePicture(mockActivity, 0, 1) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(it, PROCESS_SUCCESS) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndCorrectJPEGAndRotate90RatioOrigHigherWhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 0, - 0, - allowEdit = false, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - imgHelperMock.outHeight = 12 - imgHelperMock.outWidth = 10 - exifHelperMock.testOrientation = ExifInterface.ORIENTATION_ROTATE_90 - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(it, PROCESS_SUCCESS) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndCorrectPNGAndRotate90RatioOrigHigherWhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 1, - 0, - allowEdit = false, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - imgHelperMock.outHeight = 12 - imgHelperMock.outWidth = 10 - exifHelperMock.testOrientation = ExifInterface.ORIENTATION_ROTATE_90 - - IONCAMRCameraManager.takePicture(mockActivity, 0, 1) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(it, PROCESS_SUCCESS) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndCorrectJPEGAndRotate90RatioOrigLowerWhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 0, - 0, - allowEdit = false, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - imgHelperMock.outHeight = 10 - imgHelperMock.outWidth = 12 - exifHelperMock.testOrientation = ExifInterface.ORIENTATION_ROTATE_90 - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(it, PROCESS_SUCCESS) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndCorrectPNGAndRotate90RatioOrigLowerWhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 1, - 0, - allowEdit = false, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - imgHelperMock.outHeight = 10 - imgHelperMock.outWidth = 12 - exifHelperMock.testOrientation = ExifInterface.ORIENTATION_ROTATE_90 - - IONCAMRCameraManager.takePicture(mockActivity, 0, 1) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(it, PROCESS_SUCCESS) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndCorrectJPEGAndRotate90BothBelow0WhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 0, - 0, - allowEdit = false, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - imgHelperMock.outHeight = -1 - imgHelperMock.outWidth = -1 - exifHelperMock.testOrientation = ExifInterface.ORIENTATION_ROTATE_90 - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(it, PROCESS_SUCCESS) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndCorrectPNGAndRotate90BothBelow0WhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 1, - 0, - allowEdit = false, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - imgHelperMock.outHeight = -1 - imgHelperMock.outWidth = -1 - exifHelperMock.testOrientation = ExifInterface.ORIENTATION_ROTATE_90 - - IONCAMRCameraManager.takePicture(mockActivity, 0, 1) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(it, PROCESS_SUCCESS) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndCorrectJPEGAndRotate90HeightBelow0WhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 0, - 0, - allowEdit = false, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - imgHelperMock.outHeight = -1 - imgHelperMock.outWidth = 1 - exifHelperMock.testOrientation = ExifInterface.ORIENTATION_ROTATE_90 - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(it, PROCESS_SUCCESS) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndCorrectPNGAndRotate90HeightBelow0WhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 1, - 0, - allowEdit = false, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - imgHelperMock.outHeight = -1 - imgHelperMock.outWidth = 1 - exifHelperMock.testOrientation = ExifInterface.ORIENTATION_ROTATE_90 - - IONCAMRCameraManager.takePicture(mockActivity, 0, 1) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(it, PROCESS_SUCCESS) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndCorrectJPEGAndRotate90WidthBelow0WhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 0, - 0, - allowEdit = false, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - imgHelperMock.outHeight = 1 - imgHelperMock.outWidth = -1 - exifHelperMock.testOrientation = ExifInterface.ORIENTATION_ROTATE_90 - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(it, PROCESS_SUCCESS) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndCorrectPNGAndRotate90WidthBelow0WhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 1, - 0, - allowEdit = false, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - imgHelperMock.outHeight = 1 - imgHelperMock.outWidth = -1 - exifHelperMock.testOrientation = ExifInterface.ORIENTATION_ROTATE_90 - - IONCAMRCameraManager.takePicture(mockActivity, 0, 1) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(it, PROCESS_SUCCESS) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndCorrectJPEGAndRotate180WhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 0, - 0, - allowEdit = false, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - exifHelperMock.testOrientation = ExifInterface.ORIENTATION_ROTATE_180 - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(it, PROCESS_SUCCESS) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndCorrectPNGAndRotate180WhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 1, - 0, - allowEdit = false, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - exifHelperMock.testOrientation = ExifInterface.ORIENTATION_ROTATE_180 - - IONCAMRCameraManager.takePicture(mockActivity, 0, 1) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(it, PROCESS_SUCCESS) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndAllowEditWhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 0, - 0, - allowEdit = true, - correctOrientation = true, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(it, PROCESS_SUCCESS) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndAllowEditDoNotCorrectQuality100SaveWhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 100, - -1, - -1, - 0, - 0, - allowEdit = true, - correctOrientation = false, - saveToPhotoAlbum = true, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(it, PROCESS_SUCCESS) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureAndAllowEditDoNotCorrectQuality100DoNotSaveWhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 100, - -1, - -1, - 0, - 0, - allowEdit = true, - correctOrientation = false, - saveToPhotoAlbum = false, - includeMetadata = false, - latestVersion = false - ) - - val exifHelperMock = IONExifHelperMock() - val fileHelperMock = IONCAMRFileHelperMock() - val camHelperMock = IONCAMRMediaHelperMock() - val imgHelperMock = IONCAMRImageHelperMock() - - val IONCAMRCameraManager = IONCAMRCameraManager( - applicationId = "someAppId", - exif = exifHelperMock, - fileHelper = fileHelperMock, - mediaHelper = camHelperMock, - imageHelper = imgHelperMock - ) - - Mockito.`when`(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)).thenReturn(mFile) - - imgHelperMock.processPicSuccess = true - imgHelperMock.areOptionsZero = false - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(it, PROCESS_SUCCESS) - }, - onMediaResult = { - fail() - }, - onError = { - fail() + assertEquals(it.code, IONCAMRError.TAKE_PHOTO_ERROR.code) + assertEquals(it.description, IONCAMRError.TAKE_PHOTO_ERROR.description) }) } -} \ No newline at end of file +}