From 2cf5fde373658f5392981a14cd73245bf5a42f68 Mon Sep 17 00:00:00 2001 From: Sofien Haj Chedhli Date: Thu, 14 Sep 2023 09:39:30 +0100 Subject: [PATCH] fix: add exception for mocked classes with security manager - EXO-65023 - Meeds-io/meeds#1084 Before this fix, mocked classes does not pass the rules of security managers and thrown exceptions that cause the failing of unit tests This fix adds Nullity checks and adds the pattern of mocked classes to identify mocked instances. --- .../org/exoplatform/commons/test/TestSecurityManager.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/exo.kernel.commons.test/src/main/java/org/exoplatform/commons/test/TestSecurityManager.java b/exo.kernel.commons.test/src/main/java/org/exoplatform/commons/test/TestSecurityManager.java index 1fc68ce94..bb7616b6d 100644 --- a/exo.kernel.commons.test/src/main/java/org/exoplatform/commons/test/TestSecurityManager.java +++ b/exo.kernel.commons.test/src/main/java/org/exoplatform/commons/test/TestSecurityManager.java @@ -86,8 +86,8 @@ public void checkPermission(Permission perm) String className = traceElements[i].getClassName(); String fileName = traceElements[i].getFileName(); String methodName = traceElements[i].getMethodName(); - if (i - 1 >= 0 && excludes.containsKey(className + "." + methodName) - && excludes.get(className + "." + methodName).contains(traceElements[i - 1].getMethodName())) + if (className.contains("$MockitoMock$") || (i - 1 >= 0 && excludes.containsKey(className + "." + methodName) + && excludes.get(className + "." + methodName).contains(traceElements[i - 1].getMethodName()))) { // the called method is excluded thus we ignore the exception return; @@ -95,12 +95,12 @@ public void checkPermission(Permission perm) if (className.startsWith("org.exoplatform")) { // known tests classes - if (fileName.startsWith("Test") || fileName.endsWith("Test.java") + if (fileName != null && (fileName.startsWith("Test") || fileName.endsWith("Test.java") || fileName.endsWith("TestBase.java") || fileName.endsWith("TestCase.java") || fileName.equals("Probe.java") || fileName.equals("ExportBase.java") || fileName.equals("AbstractTestContainer.java") || fileName.equals("ContainerBuilder.java") || fileName.equals("WorkspaceStorageCacheBaseCase.java") - || fileName.equals("ExoRepositoryStub.java") || fileName.equals("CloseableDataSource.java")) + || fileName.equals("ExoRepositoryStub.java") || fileName.equals("CloseableDataSource.java"))) { testCode = true; }