Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(703)

Side by Side Diff: services/device/fingerprint/fingerprint_impl_chromeos_unittest.cc

Issue 2664353002: Host fingerprint mojo service within the device service. (Closed)
Patch Set: comments Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "services/device/fingerprint/fingerprint_impl_chromeos.h"
6
7 #include "base/macros.h"
8 #include "base/message_loop/message_loop.h"
9 #include "base/run_loop.h"
10 #include "mojo/public/cpp/bindings/binding.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 namespace device {
14
15 class FakeFingerprintObserver : public mojom::FingerprintObserver {
16 public:
17 explicit FakeFingerprintObserver(mojom::FingerprintObserverRequest request)
18 : binding_(this, std::move(request)) {}
19 ~FakeFingerprintObserver() override {}
20
21 // mojom::FingerprintObserver
22 void OnRestarted() override { restarts_++; }
23
24 void OnScanned(uint32_t scan_result, bool is_complete) override { scans_++; }
25
26 void OnAttempt(uint32_t scan_result,
27 const std::vector<std::string>& recognized_user_ids) override {
28 attempts_++;
29 }
30
31 void OnFailure() override { failures_++; }
32
33 // Test status counts.
34 int Scans() { return scans_; }
35 int Attempts() { return attempts_; }
36 int Restarts() { return restarts_; }
37 int Failures() { return failures_; }
38
39 private:
40 mojo::Binding<mojom::FingerprintObserver> binding_;
41 int scans_ = 0; // Count of scan signal received.
42 int attempts_ = 0; // Count of attempt signal received.
43 int restarts_ = 0; // Count of restart signal received.
44 int failures_ = 0; // Count of failure signal received.
45
46 DISALLOW_COPY_AND_ASSIGN(FakeFingerprintObserver);
47 };
48
49 class FingerprintImplChromeOSTest : public testing::Test {
50 public:
51 FingerprintImplChromeOSTest() {
52 fingerprint_ = base::WrapUnique(new FingerprintImplChromeOS());
53 }
54 ~FingerprintImplChromeOSTest() override {}
55
56 FingerprintImplChromeOS* fingerprint() { return fingerprint_.get(); }
57
58 void GenerateRestartSignal() { fingerprint_->BiodBiometricClientRestarted(); }
59
60 void GenerateScanSignal() {
61 fingerprint_->BiometricsScanEventReceived(0, true);
62 }
63
64 void GenerateAttemptSignal() {
65 std::vector<std::string> user_list;
66 fingerprint_->BiometricsAttemptEventReceived(0, user_list);
67 }
68
69 void GenerateFailureSignal() { fingerprint_->BiometricsFailureReceived(); }
70
71 private:
72 base::MessageLoop message_loop_;
73 std::unique_ptr<FingerprintImplChromeOS> fingerprint_;
74
75 DISALLOW_COPY_AND_ASSIGN(FingerprintImplChromeOSTest);
76 };
77
78 TEST_F(FingerprintImplChromeOSTest, FingerprintObserverTest) {
79 mojom::FingerprintObserverPtr proxy1;
80 FakeFingerprintObserver observer1(mojo::MakeRequest(&proxy1));
81 mojom::FingerprintObserverPtr proxy2;
82 FakeFingerprintObserver observer2(mojo::MakeRequest(&proxy2));
83
84 fingerprint()->AddFingerprintObserver(std::move(proxy1));
85 fingerprint()->AddFingerprintObserver(std::move(proxy2));
86
87 GenerateRestartSignal();
88 base::RunLoop().RunUntilIdle();
89 EXPECT_EQ(observer1.Restarts(), 1);
90 EXPECT_EQ(observer2.Restarts(), 1);
91
92 GenerateScanSignal();
93 base::RunLoop().RunUntilIdle();
94 EXPECT_EQ(observer1.Scans(), 1);
95 EXPECT_EQ(observer2.Scans(), 1);
96
97 GenerateAttemptSignal();
98 base::RunLoop().RunUntilIdle();
99 EXPECT_EQ(observer1.Attempts(), 1);
100 EXPECT_EQ(observer2.Attempts(), 1);
101
102 GenerateFailureSignal();
103 base::RunLoop().RunUntilIdle();
104 EXPECT_EQ(observer1.Failures(), 1);
105 EXPECT_EQ(observer2.Failures(), 1);
106 }
107
108 } // namespace device
OLDNEW
« no previous file with comments | « services/device/fingerprint/fingerprint_impl_chromeos.cc ('k') | services/device/fingerprint/fingerprint_impl_default.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698