| Index: services/device/fingerprint/fingerprint_impl_chromeos_unittest.cc
|
| diff --git a/services/device/fingerprint/fingerprint_impl_chromeos_unittest.cc b/services/device/fingerprint/fingerprint_impl_chromeos_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f9d0d0da960996dbe4f278603235919d8029533b
|
| --- /dev/null
|
| +++ b/services/device/fingerprint/fingerprint_impl_chromeos_unittest.cc
|
| @@ -0,0 +1,108 @@
|
| +// Copyright 2017 The Chromium 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 "services/device/fingerprint/fingerprint_impl_chromeos.h"
|
| +
|
| +#include "base/macros.h"
|
| +#include "base/message_loop/message_loop.h"
|
| +#include "base/run_loop.h"
|
| +#include "mojo/public/cpp/bindings/binding.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace device {
|
| +
|
| +class FakeBiodObserver : public mojom::BiodObserver {
|
| + public:
|
| + explicit FakeBiodObserver(mojom::BiodObserverRequest request)
|
| + : binding_(this, std::move(request)) {}
|
| + ~FakeBiodObserver() override {}
|
| +
|
| + // mojom::BiodObserver
|
| + void OnRestarted() override { restarts_++; }
|
| +
|
| + void OnScanned(uint32_t scan_result, bool is_complete) override { scans_++; }
|
| +
|
| + void OnAttempt(uint32_t scan_result,
|
| + const std::vector<std::string>& recognized_user_ids) override {
|
| + attempts_++;
|
| + }
|
| +
|
| + void OnFailure() override { failures_++; }
|
| +
|
| + // Test status counts.
|
| + int Scans() { return scans_; }
|
| + int Attempts() { return attempts_; }
|
| + int Restarts() { return restarts_; }
|
| + int Failures() { return failures_; }
|
| +
|
| + private:
|
| + mojo::Binding<mojom::BiodObserver> binding_;
|
| + int scans_ = 0; // Count of scan signal received.
|
| + int attempts_ = 0; // Count of attempt signal received.
|
| + int restarts_ = 0; // Count of restart signal received.
|
| + int failures_ = 0; // Count of failure signal received.
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(FakeBiodObserver);
|
| +};
|
| +
|
| +class FingerprintImplChromeOSTest : public testing::Test {
|
| + public:
|
| + FingerprintImplChromeOSTest() {
|
| + fingerprint_ = base::WrapUnique(new FingerprintImplChromeOS());
|
| + }
|
| + ~FingerprintImplChromeOSTest() override {}
|
| +
|
| + FingerprintImplChromeOS* fingerprint() { return fingerprint_.get(); }
|
| +
|
| + void GenerateRestartSignal() { fingerprint_->BiodBiometricClientRestarted(); }
|
| +
|
| + void GenerateScanSignal() {
|
| + fingerprint_->BiometricsScanEventReceived(0, true);
|
| + }
|
| +
|
| + void GenerateAttemptSignal() {
|
| + std::vector<std::string> user_list;
|
| + fingerprint_->BiometricsAttemptEventReceived(0, user_list);
|
| + }
|
| +
|
| + void GenerateFailureSignal() { fingerprint_->BiometricsFailureReceived(); }
|
| +
|
| + private:
|
| + base::MessageLoop message_loop_;
|
| + std::unique_ptr<FingerprintImplChromeOS> fingerprint_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(FingerprintImplChromeOSTest);
|
| +};
|
| +
|
| +TEST_F(FingerprintImplChromeOSTest, BiodObserverTest) {
|
| + mojom::BiodObserverPtr proxy1;
|
| + FakeBiodObserver observer1(mojo::MakeRequest(&proxy1));
|
| + mojom::BiodObserverPtr proxy2;
|
| + FakeBiodObserver observer2(mojo::MakeRequest(&proxy2));
|
| +
|
| + fingerprint()->AddBiodObserver(std::move(proxy1));
|
| + fingerprint()->AddBiodObserver(std::move(proxy2));
|
| +
|
| + GenerateRestartSignal();
|
| + base::RunLoop().RunUntilIdle();
|
| + EXPECT_EQ(observer1.Restarts(), 1);
|
| + EXPECT_EQ(observer2.Restarts(), 1);
|
| +
|
| + GenerateScanSignal();
|
| + base::RunLoop().RunUntilIdle();
|
| + EXPECT_EQ(observer1.Scans(), 1);
|
| + EXPECT_EQ(observer2.Scans(), 1);
|
| +
|
| + GenerateAttemptSignal();
|
| + base::RunLoop().RunUntilIdle();
|
| + EXPECT_EQ(observer1.Attempts(), 1);
|
| + EXPECT_EQ(observer2.Attempts(), 1);
|
| +
|
| + GenerateFailureSignal();
|
| + base::RunLoop().RunUntilIdle();
|
| + EXPECT_EQ(observer1.Failures(), 1);
|
| + EXPECT_EQ(observer2.Failures(), 1);
|
| +}
|
| +
|
| +} // namespace device
|
|
|