diff options
4 files changed, 74 insertions, 17 deletions
diff --git a/services/tests/security/intrusiondetection/src/com/android/server/security/intrusiondetection/IntrusionDetectionServiceTest.java b/services/tests/security/intrusiondetection/src/com/android/server/security/intrusiondetection/IntrusionDetectionServiceTest.java index da5e9f60004d..e505ebeb2946 100644 --- a/services/tests/security/intrusiondetection/src/com/android/server/security/intrusiondetection/IntrusionDetectionServiceTest.java +++ b/services/tests/security/intrusiondetection/src/com/android/server/security/intrusiondetection/IntrusionDetectionServiceTest.java @@ -54,7 +54,6 @@ import android.os.test.TestLooper; import android.security.intrusiondetection.IIntrusionDetectionServiceCommandCallback; import android.security.intrusiondetection.IIntrusionDetectionServiceStateCallback; import android.security.intrusiondetection.IntrusionDetectionEvent; -import android.security.intrusiondetection.IntrusionDetectionEventTransport; import android.security.keystore.KeyGenParameterSpec; import android.security.keystore.KeyProperties; import android.util.Log; @@ -71,6 +70,7 @@ import com.android.bedstead.nene.exceptions.NeneException; import com.android.bedstead.permissions.CommonPermissions; import com.android.bedstead.permissions.PermissionContext; import com.android.bedstead.permissions.annotations.EnsureHasPermission; +import com.android.coretests.apps.testapp.LocalIntrusionDetectionEventTransport; import com.android.internal.infra.AndroidFuture; import com.android.server.ServiceThread; @@ -601,7 +601,8 @@ public class IntrusionDetectionServiceTest { private ServiceConnection startTestService() throws SecurityException, InterruptedException { final String TAG = "startTestService"; final CountDownLatch latch = new CountDownLatch(1); - IntrusionDetectionEventTransport transport = new IntrusionDetectionEventTransport(); + LocalIntrusionDetectionEventTransport transport = + new LocalIntrusionDetectionEventTransport(); ServiceConnection serviceConnection = new ServiceConnection() { // Called when connection with the service is established. @@ -625,6 +626,16 @@ public class IntrusionDetectionServiceTest { mContext.bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE); latch.await(5, TimeUnit.SECONDS); + // call the methods on the transport object + IntrusionDetectionEvent event = + new IntrusionDetectionEvent(new SecurityEvent(123, new byte[15])); + List<IntrusionDetectionEvent> events = new ArrayList<>(); + events.add(event); + assertTrue(transport.initialize()); + assertTrue(transport.addData(events)); + assertTrue(transport.release()); + assertEquals(1, transport.getEvents().size()); + return serviceConnection; } diff --git a/services/tests/security/intrusiondetection/src/com/android/server/security/intrusiondetection/TestApp/src/com/android/coretests/apps/testapp/Android.bp b/services/tests/security/intrusiondetection/src/com/android/server/security/intrusiondetection/TestApp/src/com/android/coretests/apps/testapp/Android.bp index 57d0de40f3d6..ca5952b140c1 100644 --- a/services/tests/security/intrusiondetection/src/com/android/server/security/intrusiondetection/TestApp/src/com/android/coretests/apps/testapp/Android.bp +++ b/services/tests/security/intrusiondetection/src/com/android/server/security/intrusiondetection/TestApp/src/com/android/coretests/apps/testapp/Android.bp @@ -26,19 +26,9 @@ android_test_helper_app { name: "TestIntrusionDetectionApp", static_libs: [ - "androidx.test.core", - "androidx.test.rules", - "androidx.test.runner", - "compatibility-device-util-axt", "frameworks-base-testutils", - "junit", - "platform-test-annotations", "services.core", "servicestests-utils", - "coretests-aidl", - "truth", - "Nene", - "Harrier", ], srcs: ["**/*.java"], diff --git a/services/tests/security/intrusiondetection/src/com/android/server/security/intrusiondetection/TestApp/src/com/android/coretests/apps/testapp/LocalIntrusionDetectionEventTransport.java b/services/tests/security/intrusiondetection/src/com/android/server/security/intrusiondetection/TestApp/src/com/android/coretests/apps/testapp/LocalIntrusionDetectionEventTransport.java new file mode 100644 index 000000000000..f0012da44fa4 --- /dev/null +++ b/services/tests/security/intrusiondetection/src/com/android/server/security/intrusiondetection/TestApp/src/com/android/coretests/apps/testapp/LocalIntrusionDetectionEventTransport.java @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance + with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + + */ + +package com.android.coretests.apps.testapp; + +import android.security.intrusiondetection.IntrusionDetectionEvent; +import android.security.intrusiondetection.IntrusionDetectionEventTransport; + +import java.util.ArrayList; +import java.util.List; + +/** + * A class that extends {@link IntrusionDetectionEventTransport} to provide a + * local transport mechanism for testing purposes. This implementation overrides + * the {@link #initialize()}, {@link #addData(List)}, and {@link #release()} methods + * to manage events locally within the test environment. + * + * For now, the implementation returns true for all methods since we don't + * have a real data source to send events to. + */ +public class LocalIntrusionDetectionEventTransport extends IntrusionDetectionEventTransport { + private List<IntrusionDetectionEvent> mEvents = new ArrayList<>(); + + @Override + public boolean initialize() { + return true; + } + + @Override + public boolean addData(List<IntrusionDetectionEvent> events) { + mEvents.addAll(events); + return true; + } + + @Override + public boolean release() { + return true; + } + + public List<IntrusionDetectionEvent> getEvents() { + return mEvents; + } +}
\ No newline at end of file diff --git a/services/tests/security/intrusiondetection/src/com/android/server/security/intrusiondetection/TestApp/src/com/android/coretests/apps/testapp/TestLoggingService.java b/services/tests/security/intrusiondetection/src/com/android/server/security/intrusiondetection/TestApp/src/com/android/coretests/apps/testapp/TestLoggingService.java index 9e38b1ce19da..e4bf987402fd 100644 --- a/services/tests/security/intrusiondetection/src/com/android/server/security/intrusiondetection/TestApp/src/com/android/coretests/apps/testapp/TestLoggingService.java +++ b/services/tests/security/intrusiondetection/src/com/android/server/security/intrusiondetection/TestApp/src/com/android/coretests/apps/testapp/TestLoggingService.java @@ -21,22 +21,20 @@ import android.content.Intent; import android.os.IBinder; import android.os.Process; -import android.security.intrusiondetection.IntrusionDetectionEventTransport; - import com.android.internal.infra.AndroidFuture; public class TestLoggingService extends Service { private static final String TAG = "TestLoggingService"; - private IntrusionDetectionEventTransport mIntrusionDetectionEventTransport; + private LocalIntrusionDetectionEventTransport mLocalIntrusionDetectionEventTransport; public TestLoggingService() { - mIntrusionDetectionEventTransport = new IntrusionDetectionEventTransport(); + mLocalIntrusionDetectionEventTransport = new LocalIntrusionDetectionEventTransport(); } // Binder given to clients. @Override public IBinder onBind(Intent intent) { - return mIntrusionDetectionEventTransport.getBinder(); + return mLocalIntrusionDetectionEventTransport.getBinder(); } } |