Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36e92f17 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Check for the correct userId in callbacks"

parents d609ba41 a07870dd
Loading
Loading
Loading
Loading
+24 −10
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ struct FaceCallbackArgs {
    // The error passed to the last onError() callback.
    FaceError error;

    // The userId passed to the last onRemoved() callback.
    // The userId passed to the last callback.
    int32_t userId;
};

@@ -74,24 +74,32 @@ struct FaceCallbackArgs {
class FaceCallback : public ::testing::VtsHalHidlTargetCallbackBase<FaceCallbackArgs>,
                     public IBiometricsFaceClientCallback {
  public:
    Return<void> onEnrollResult(uint64_t, uint32_t, int32_t, uint32_t) override {
        NotifyFromCallback(kCallbackNameOnEnrollResult);
    Return<void> onEnrollResult(uint64_t, uint32_t, int32_t userId, uint32_t) override {
        FaceCallbackArgs args = {};
        args.userId = userId;
        NotifyFromCallback(kCallbackNameOnEnrollResult, args);
        return Void();
    }

    Return<void> onAuthenticated(uint64_t, uint32_t, int32_t, const hidl_vec<uint8_t>&) override {
        NotifyFromCallback(kCallbackNameOnAuthenticated);
    Return<void> onAuthenticated(uint64_t, uint32_t, int32_t userId,
                                 const hidl_vec<uint8_t>&) override {
        FaceCallbackArgs args = {};
        args.userId = userId;
        NotifyFromCallback(kCallbackNameOnAuthenticated, args);
        return Void();
    }

    Return<void> onAcquired(uint64_t, int32_t, FaceAcquiredInfo, int32_t) override {
        NotifyFromCallback(kCallbackNameOnAcquired);
    Return<void> onAcquired(uint64_t, int32_t userId, FaceAcquiredInfo, int32_t) override {
        FaceCallbackArgs args = {};
        args.userId = userId;
        NotifyFromCallback(kCallbackNameOnAcquired, args);
        return Void();
    }

    Return<void> onError(uint64_t, int32_t, FaceError error, int32_t) override {
    Return<void> onError(uint64_t, int32_t userId, FaceError error, int32_t) override {
        FaceCallbackArgs args = {};
        args.error = error;
        args.userId = userId;
        NotifyFromCallback(kCallbackNameOnError, args);
        return Void();
    }
@@ -103,8 +111,10 @@ class FaceCallback : public ::testing::VtsHalHidlTargetCallbackBase<FaceCallback
        return Void();
    }

    Return<void> onEnumerate(uint64_t, const hidl_vec<uint32_t>&, int32_t) override {
        NotifyFromCallback(kCallbackNameOnEnumerate);
    Return<void> onEnumerate(uint64_t, const hidl_vec<uint32_t>&, int32_t userId) override {
        FaceCallbackArgs args = {};
        args.userId = userId;
        NotifyFromCallback(kCallbackNameOnEnumerate, args);
        return Void();
    }

@@ -185,6 +195,7 @@ TEST_F(FaceHidlTest, EnrollZeroHatTest) {
    // onError should be called with a meaningful (nonzero) error.
    auto res = mCallback->WaitForCallback(kCallbackNameOnError);
    EXPECT_TRUE(res.no_timeout);
    EXPECT_EQ(kUserId, res.args->userId);
    EXPECT_EQ(FaceError::UNABLE_TO_PROCESS, res.args->error);
}

@@ -205,6 +216,7 @@ TEST_F(FaceHidlTest, EnrollGarbageHatTest) {
    // onError should be called with a meaningful (nonzero) error.
    auto res = mCallback->WaitForCallback(kCallbackNameOnError);
    EXPECT_TRUE(res.no_timeout);
    EXPECT_EQ(kUserId, res.args->userId);
    EXPECT_EQ(FaceError::UNABLE_TO_PROCESS, res.args->error);
}

@@ -271,6 +283,7 @@ TEST_F(FaceHidlTest, EnumerateTest) {
    Return<Status> ret = mService->enumerate();
    ASSERT_EQ(Status::OK, static_cast<Status>(ret));
    auto res = mCallback->WaitForCallback(kCallbackNameOnEnumerate);
    EXPECT_EQ(kUserId, res.args->userId);
    EXPECT_TRUE(res.no_timeout);
}

@@ -330,6 +343,7 @@ TEST_F(FaceHidlTest, CancelTest) {
    auto res = mCallback->WaitForCallback(kCallbackNameOnError);
    // make sure callback was invoked within kRevokeChallengeTimeout
    EXPECT_TRUE(res.no_timeout);
    EXPECT_EQ(kUserId, res.args->userId);
    EXPECT_EQ(FaceError::CANCELED, res.args->error);
}