blob: 6dd61215a03808129af6ffdebc0b22c3935b2318 [file] [log] [blame]
// Copyright 2018 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <base/macros.h>
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include <metrics/metrics_library_mock.h>
#include "biod/biod_metrics.h"
using ::testing::_;
namespace biod {
namespace {
class BiodMetricsTest : public testing::Test {
protected:
BiodMetricsTest() {
biod_metrics_.SetMetricsLibraryForTesting(
std::make_unique<MetricsLibraryMock>());
}
~BiodMetricsTest() override = default;
MetricsLibraryMock* GetMetricsLibraryMock() {
return static_cast<MetricsLibraryMock*>(
biod_metrics_.metrics_library_for_testing());
}
BiodMetrics biod_metrics_;
private:
DISALLOW_COPY_AND_ASSIGN(BiodMetricsTest);
};
TEST_F(BiodMetricsTest, SendEnrolledFingerCount) {
const int finger_count = 2;
EXPECT_CALL(*GetMetricsLibraryMock(), SendEnumToUMA(_, finger_count, _))
.Times(1);
biod_metrics_.SendEnrolledFingerCount(finger_count);
}
TEST_F(BiodMetricsTest, SendFpUnlockEnabled) {
EXPECT_CALL(*GetMetricsLibraryMock(), SendBoolToUMA(_, true)).Times(1);
EXPECT_CALL(*GetMetricsLibraryMock(), SendBoolToUMA(_, false)).Times(1);
biod_metrics_.SendFpUnlockEnabled(true);
biod_metrics_.SendFpUnlockEnabled(false);
}
TEST_F(BiodMetricsTest, SendFpLatencyStatsOnMatch) {
EXPECT_CALL(*GetMetricsLibraryMock(),
SendToUMA(metrics::kFpMatchDurationCapture, _, _, _, _))
.Times(1);
EXPECT_CALL(*GetMetricsLibraryMock(),
SendToUMA(metrics::kFpMatchDurationMatcher, _, _, _, _))
.Times(1);
EXPECT_CALL(*GetMetricsLibraryMock(),
SendToUMA(metrics::kFpMatchDurationOverall, _, _, _, _))
.Times(1);
EXPECT_CALL(*GetMetricsLibraryMock(),
SendToUMA(metrics::kFpNoMatchDurationCapture, _, _, _, _))
.Times(0);
EXPECT_CALL(*GetMetricsLibraryMock(),
SendToUMA(metrics::kFpNoMatchDurationMatcher, _, _, _, _))
.Times(0);
EXPECT_CALL(*GetMetricsLibraryMock(),
SendToUMA(metrics::kFpNoMatchDurationOverall, _, _, _, _))
.Times(0);
biod_metrics_.SendFpLatencyStats(true, 0, 0, 0);
}
TEST_F(BiodMetricsTest, SendFpLatencyStatsOnNoMatch) {
EXPECT_CALL(*GetMetricsLibraryMock(),
SendToUMA(metrics::kFpMatchDurationCapture, _, _, _, _))
.Times(0);
EXPECT_CALL(*GetMetricsLibraryMock(),
SendToUMA(metrics::kFpMatchDurationMatcher, _, _, _, _))
.Times(0);
EXPECT_CALL(*GetMetricsLibraryMock(),
SendToUMA(metrics::kFpMatchDurationOverall, _, _, _, _))
.Times(0);
EXPECT_CALL(*GetMetricsLibraryMock(),
SendToUMA(metrics::kFpNoMatchDurationCapture, _, _, _, _))
.Times(1);
EXPECT_CALL(*GetMetricsLibraryMock(),
SendToUMA(metrics::kFpNoMatchDurationMatcher, _, _, _, _))
.Times(1);
EXPECT_CALL(*GetMetricsLibraryMock(),
SendToUMA(metrics::kFpNoMatchDurationOverall, _, _, _, _))
.Times(1);
biod_metrics_.SendFpLatencyStats(false, 0, 0, 0);
}
TEST_F(BiodMetricsTest, SendFpLatencyStatsValues) {
const int capture = 70;
const int matcher = 187;
const int overall = 223;
EXPECT_CALL(*GetMetricsLibraryMock(), SendToUMA(_, capture, _, _, _))
.Times(2);
EXPECT_CALL(*GetMetricsLibraryMock(), SendToUMA(_, matcher, _, _, _))
.Times(2);
EXPECT_CALL(*GetMetricsLibraryMock(), SendToUMA(_, overall, _, _, _))
.Times(2);
biod_metrics_.SendFpLatencyStats(true, capture, matcher, overall);
biod_metrics_.SendFpLatencyStats(false, capture, matcher, overall);
}
} // namespace
} // namespace biod