From c61c3e5dde07d6500e362a50e87349553160e33c Mon Sep 17 00:00:00 2001 From: Alexandre Jacinto Date: Tue, 24 Mar 2026 17:40:49 -0400 Subject: [PATCH 1/3] chore: remove all logic for older version of plugin (latestVersion) --- .../manager/IONCAMRCameraManager.kt | 3 - .../model/IONCAMRCameraParameters.kt | 3 +- .../processor/IONCAMRMediaProcessor.kt | 78 +- .../libs/ioncameralib/ChoosePictureTests.kt | 30 +- .../libs/ioncameralib/EditPictureTests.kt | 114 -- .../libs/ioncameralib/TakePictureTests.kt | 1811 +---------------- 6 files changed, 38 insertions(+), 2001 deletions(-) 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..a8d15d5 100644 --- a/src/test/kotlin/io/ionic/libs/ioncameralib/TakePictureTests.kt +++ b/src/test/kotlin/io/ionic/libs/ioncameralib/TakePictureTests.kt @@ -2,7 +2,6 @@ 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 @@ -39,7 +38,6 @@ 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" @@ -67,184 +65,6 @@ class TakePictureTests { mUri.close() } - @Test - fun givenTakePictureNotCalledJPEGWhenProcessResultFromCameraThenTakePhotoError() { - - 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) - - 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) - - 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 givenAPI28TakePictureCalledBitmapNullWhenProcessResultFromCameraThenError() { - - 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) - - 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 givenAPI28TakePictureCalledJPEGAndDataUriAndProcessOKWhenProcessResultFromCameraThenSuccess() { - 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 - - IONCAMRCameraManager.takePicture(mockActivity, 0, 0) - IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - assertEquals(PROCESS_SUCCESS, it) - }, - onMediaResult = { - fail() - }, - onError = { - fail() - }) - } - @Test fun givenAPI30TakePictureCalledJPEGAndDataUriAndUriNullWhenProcessResultFromCameraThenError() { val camParameters = IONCAMRCameraParameters( @@ -256,8 +76,7 @@ class TakePictureTests { allowEdit = false, correctOrientation = false, saveToPhotoAlbum = true, - includeMetadata = true, - latestVersion = true + includeMetadata = true ) val exifHelperMock = IONExifHelperMock() @@ -280,9 +99,6 @@ class TakePictureTests { IONCAMRCameraManager.takePicture(mockActivity, 0, 0) IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, onMediaResult = { fail() }, @@ -303,8 +119,7 @@ class TakePictureTests { allowEdit = false, correctOrientation = false, saveToPhotoAlbum = true, - includeMetadata = true, - latestVersion = true + includeMetadata = true ) val exifHelperMock = IONExifHelperMock() @@ -329,9 +144,6 @@ class TakePictureTests { IONCAMRCameraManager.takePicture(mockActivity, 0, 0) IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, onMediaResult = { fail() }, @@ -352,8 +164,7 @@ class TakePictureTests { allowEdit = false, correctOrientation = false, saveToPhotoAlbum = true, - includeMetadata = true, - latestVersion = true + includeMetadata = true ) val exifHelperMock = IONExifHelperMock() @@ -379,9 +190,6 @@ class TakePictureTests { IONCAMRCameraManager.takePicture(mockActivity, 0, 0) IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, onMediaResult = { fail() }, @@ -402,8 +210,7 @@ class TakePictureTests { allowEdit = false, correctOrientation = false, saveToPhotoAlbum = true, - includeMetadata = true, - latestVersion = true + includeMetadata = true ) val exifHelperMock = IONExifHelperMock() @@ -431,9 +238,6 @@ class TakePictureTests { IONCAMRCameraManager.takePicture(mockActivity, 0, 0) IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, - onImage = { - fail() - }, onMediaResult = { assertEquals(it.type, 0) assertTrue(it.uri.contains("myFile")) @@ -450,1609 +254,4 @@ class TakePictureTests { }) } - @Test - fun givenAPI28TakePictureCalledPNGAndDataUriAndProcessOKWhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 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 givenAPI28TakePictureCalledJPEGAndProcessErrorWhenProcessResultFromCameraThenError() { - 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 = 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 givenAPI28TakePictureCalledPNGAndProcessErrorWhenProcessResultFromCameraThenError() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 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 - - 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() - }, - onError = { - fail() - }) - } - - @Test - fun givenTakePictureCalledPNGAndCompressOKWhenProcessResultFromCameraThenSuccess() { - val camParameters = IONCAMRCameraParameters( - 20, - -1, - -1, - 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 - 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 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() - }) - } - -} \ No newline at end of file +} From 1667c041a313d372e2fbdad192a265e794b35971 Mon Sep 17 00:00:00 2001 From: Alexandre Jacinto Date: Tue, 24 Mar 2026 17:52:53 -0400 Subject: [PATCH 2/3] feat: add more tests to TakePictureTests.kt --- .../libs/ioncameralib/TakePictureTests.kt | 322 ++++++++++++++++++ 1 file changed, 322 insertions(+) diff --git a/src/test/kotlin/io/ionic/libs/ioncameralib/TakePictureTests.kt b/src/test/kotlin/io/ionic/libs/ioncameralib/TakePictureTests.kt index a8d15d5..a4ae23c 100644 --- a/src/test/kotlin/io/ionic/libs/ioncameralib/TakePictureTests.kt +++ b/src/test/kotlin/io/ionic/libs/ioncameralib/TakePictureTests.kt @@ -6,6 +6,7 @@ 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 @@ -43,6 +44,7 @@ class TakePictureTests { 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 @@ -254,4 +256,324 @@ class TakePictureTests { }) } + @Test + fun givenTakePictureNotCalledWhenProcessResultFromCameraThenError() { + val camParameters = IONCAMRCameraParameters( + 20, + -1, + -1, + 0, + 0, + allowEdit = false, + correctOrientation = false, + saveToPhotoAlbum = false, + includeMetadata = 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) + + // takePicture is NOT called — imageFilePath is null, so sourcePath is null + IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, + onMediaResult = { + fail() + }, + onError = { + assertEquals(it.code, IONCAMRError.TAKE_PHOTO_ERROR.code) + assertEquals(it.description, IONCAMRError.TAKE_PHOTO_ERROR.description) + }) + } + + @Test + fun givenAPI30TakePictureCalledJPEGNoMetadataWhenProcessResultFromCameraThenSuccess() { + val camParameters = IONCAMRCameraParameters( + 20, + -1, + -1, + 0, + 0, + allowEdit = false, + correctOrientation = false, + saveToPhotoAlbum = false, + includeMetadata = 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) + + fileHelperMock.fileExists = true + fileHelperMock.isUriNull = false + fileHelperMock.isFileStreamNull = false + imgHelperMock.isBitmapNull = false + imgHelperMock.bitmapToBase64Success = true + + IONCAMRCameraManager.takePicture(mockActivity, 0, 0) + IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, + onMediaResult = { + assertEquals(it.type, 0) + assertTrue(it.uri.contains("myFile")) + assertEquals(it.thumbnail, BASE_64) + assertEquals(it.metadata, null) + }, + onError = { + fail() + }) + } + + @Test + fun givenAPI30TakePictureCalledJPEGDoNotSaveToAlbumWhenProcessResultFromCameraThenSuccess() { + val camParameters = IONCAMRCameraParameters( + 20, + -1, + -1, + 0, + 0, + allowEdit = false, + correctOrientation = false, + saveToPhotoAlbum = false, + includeMetadata = true + ) + + 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) + + 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, + onMediaResult = { + assertEquals(it.type, 0) + assertTrue(it.uri.contains("myFile")) + assertEquals(it.thumbnail, BASE_64) + assertFalse(it.saved) + assertNotEquals(it.metadata, null) + }, + onError = { + fail() + }) + } + + @Test + fun givenAPI30TakePictureAllowEditWithExternalEditWhenProcessResultFromCameraThenSuccess() { + val camParameters = IONCAMRCameraParameters( + 20, + -1, + -1, + 0, + 0, + allowEdit = true, + correctOrientation = false, + saveToPhotoAlbum = false, + includeMetadata = true + ) + + 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) + Mockito.doReturn(FILE_LOCATION).`when`(mIntent).getStringExtra(IONCAMRImageEditorActivity.IMAGE_OUTPUT_URI_EXTRAS) + + fileHelperMock.fileExists = true + fileHelperMock.isUriNull = false + fileHelperMock.isFileStreamNull = false + imgHelperMock.isBitmapNull = false + imgHelperMock.bitmapToBase64Success = true + fileHelperMock.fileExtension = "jpg" + + IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, + onMediaResult = { + assertEquals(it.type, 0) + assertEquals(it.thumbnail, BASE_64) + assertNotEquals(it.metadata, null) + }, + onError = { + fail() + }) + } + + @Test + fun givenAPI30TakePictureAllowEditWithExternalEditAndUriNullWhenProcessResultFromCameraThenError() { + val camParameters = IONCAMRCameraParameters( + 20, + -1, + -1, + 0, + 0, + allowEdit = true, + correctOrientation = false, + saveToPhotoAlbum = false, + includeMetadata = 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) + Mockito.doReturn(FILE_LOCATION).`when`(mIntent).getStringExtra(IONCAMRImageEditorActivity.IMAGE_OUTPUT_URI_EXTRAS) + + fileHelperMock.isUriNull = true + + IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, + onMediaResult = { + fail() + }, + onError = { + assertEquals(it.code, IONCAMRError.TAKE_PHOTO_ERROR.code) + assertEquals(it.description, IONCAMRError.TAKE_PHOTO_ERROR.description) + }) + } + + @Test + fun givenAPI30TakePictureCalledPNGAndUriNotNullBitmapNotNullWhenProcessResultFromCameraThenSuccess() { + val camParameters = IONCAMRCameraParameters( + 20, + -1, + -1, + 1, + 0, + allowEdit = false, + correctOrientation = false, + saveToPhotoAlbum = true, + includeMetadata = true + ) + + 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) + + 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, + onMediaResult = { + 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() + }) + } + + @Test + fun givenAPI30TakePictureCalledPNGAndUriNullWhenProcessResultFromCameraThenError() { + val camParameters = IONCAMRCameraParameters( + 20, + -1, + -1, + 1, + 0, + allowEdit = false, + correctOrientation = false, + saveToPhotoAlbum = true, + includeMetadata = 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) + + fileHelperMock.isUriNull = true + + IONCAMRCameraManager.takePicture(mockActivity, 0, 1) + IONCAMRCameraManager.processResultFromCamera(mockActivity, mIntent, camParameters, + onMediaResult = { + fail() + }, + onError = { + assertEquals(it.code, IONCAMRError.TAKE_PHOTO_ERROR.code) + assertEquals(it.description, IONCAMRError.TAKE_PHOTO_ERROR.description) + }) + } + } From 4e1874d69a87956a8e578dacd6d0d2fb329b07c1 Mon Sep 17 00:00:00 2001 From: Alexandre Jacinto Date: Wed, 25 Mar 2026 08:43:15 -0400 Subject: [PATCH 3/3] refactor: rename tests --- .../libs/ioncameralib/TakePictureTests.kt | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/test/kotlin/io/ionic/libs/ioncameralib/TakePictureTests.kt b/src/test/kotlin/io/ionic/libs/ioncameralib/TakePictureTests.kt index a4ae23c..2461ac3 100644 --- a/src/test/kotlin/io/ionic/libs/ioncameralib/TakePictureTests.kt +++ b/src/test/kotlin/io/ionic/libs/ioncameralib/TakePictureTests.kt @@ -68,7 +68,7 @@ class TakePictureTests { } @Test - fun givenAPI30TakePictureCalledJPEGAndDataUriAndUriNullWhenProcessResultFromCameraThenError() { + fun givenTakePictureCalledJPEGAndUriNullWhenProcessResultFromCameraThenError() { val camParameters = IONCAMRCameraParameters( 20, -1, @@ -111,7 +111,7 @@ class TakePictureTests { } @Test - fun givenAPI30TakePictureCalledJPEGAndDataUriAndUriNotNullFileStreamNullWhenProcessResultFromCameraThenError() { + fun givenTakePictureCalledJPEGAndFileStreamNullWhenProcessResultFromCameraThenError() { val camParameters = IONCAMRCameraParameters( 20, -1, @@ -156,7 +156,7 @@ class TakePictureTests { } @Test - fun givenAPI30TakePictureCalledJPEGAndDataUriAndUriNotNullBitmapNullWhenProcessResultFromCameraThenError() { + fun givenTakePictureCalledJPEGAndBitmapNullWhenProcessResultFromCameraThenError() { val camParameters = IONCAMRCameraParameters( 20, -1, @@ -202,7 +202,7 @@ class TakePictureTests { } @Test - fun givenAPI30TakePictureCalledJPEGAndDataUriAndUriNotNullBitmapNotNullWhenProcessResultFromCameraThenSuccess() { + fun givenTakePictureCalledJPEGWithMetadataWhenProcessResultFromCameraThenSuccess() { val camParameters = IONCAMRCameraParameters( 20, -1, @@ -297,7 +297,7 @@ class TakePictureTests { } @Test - fun givenAPI30TakePictureCalledJPEGNoMetadataWhenProcessResultFromCameraThenSuccess() { + fun givenTakePictureCalledJPEGNoMetadataWhenProcessResultFromCameraThenSuccess() { val camParameters = IONCAMRCameraParameters( 20, -1, @@ -345,7 +345,7 @@ class TakePictureTests { } @Test - fun givenAPI30TakePictureCalledJPEGDoNotSaveToAlbumWhenProcessResultFromCameraThenSuccess() { + fun givenTakePictureCalledJPEGDoNotSaveToAlbumWhenProcessResultFromCameraThenSuccess() { val camParameters = IONCAMRCameraParameters( 20, -1, @@ -395,7 +395,7 @@ class TakePictureTests { } @Test - fun givenAPI30TakePictureAllowEditWithExternalEditWhenProcessResultFromCameraThenSuccess() { + fun givenTakePictureAllowEditWithExternalEditWhenProcessResultFromCameraThenSuccess() { val camParameters = IONCAMRCameraParameters( 20, -1, @@ -443,7 +443,7 @@ class TakePictureTests { } @Test - fun givenAPI30TakePictureAllowEditWithExternalEditAndUriNullWhenProcessResultFromCameraThenError() { + fun givenTakePictureAllowEditWithExternalEditAndUriNullWhenProcessResultFromCameraThenError() { val camParameters = IONCAMRCameraParameters( 20, -1, @@ -485,7 +485,7 @@ class TakePictureTests { } @Test - fun givenAPI30TakePictureCalledPNGAndUriNotNullBitmapNotNullWhenProcessResultFromCameraThenSuccess() { + fun givenTakePictureCalledPNGWithMetadataWhenProcessResultFromCameraThenSuccess() { val camParameters = IONCAMRCameraParameters( 20, -1, @@ -535,7 +535,7 @@ class TakePictureTests { } @Test - fun givenAPI30TakePictureCalledPNGAndUriNullWhenProcessResultFromCameraThenError() { + fun givenTakePictureCalledPNGAndUriNullWhenProcessResultFromCameraThenError() { val camParameters = IONCAMRCameraParameters( 20, -1,