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

Side by Side Diff: services/video_capture/fake_device_descriptor_unittest.cc

Issue 2386183002: Replace manual conversions with Mojo type mappings
Patch Set: Created 4 years, 2 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
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/run_loop.h" 5 #include "base/run_loop.h"
6 #include "services/video_capture/fake_device_descriptor_test.h" 6 #include "services/video_capture/fake_device_descriptor_test.h"
7 #include "services/video_capture/mock_video_frame_receiver.h" 7 #include "services/video_capture/mock_video_frame_receiver.h"
8 8
9 using testing::_; 9 using testing::_;
10 using testing::InvokeWithoutArgs; 10 using testing::InvokeWithoutArgs;
11 11
12 namespace video_capture { 12 namespace video_capture {
13 13
14 class MockCreateDeviceProxyCallback { 14 class MockCreateDeviceProxyCallback {
15 public: 15 public:
16 MOCK_METHOD1(Run, void(mojom::DeviceAccessResultCode result_code)); 16 MOCK_METHOD1(Run, void(mojom::DeviceAccessResultCode result_code));
17 }; 17 };
18 18
19 // Tests that when requesting a second proxy for a device without closing the 19 // Tests that when requesting a second proxy for a device without closing the
20 // first one, the service revokes access to the first one by closing the 20 // first one, the service revokes access to the first one by closing the
21 // connection. 21 // connection.
22 TEST_F(FakeDeviceDescriptorTest, AccessIsRevokedOnSecondAccess) { 22 TEST_F(FakeDeviceDescriptorTest, AccessIsRevokedOnSecondAccess) {
23 mojom::VideoCaptureDeviceProxyPtr device_proxy_1; 23 mojom::VideoCaptureDeviceProxyPtr device_proxy_1;
24 bool device_access_1_revoked = false; 24 bool device_access_1_revoked = false;
25 MockCreateDeviceProxyCallback create_device_proxy_callback_1; 25 MockCreateDeviceProxyCallback create_device_proxy_callback_1;
26 EXPECT_CALL(create_device_proxy_callback_1, 26 EXPECT_CALL(create_device_proxy_callback_1,
27 Run(mojom::DeviceAccessResultCode::SUCCESS)) 27 Run(mojom::DeviceAccessResultCode::SUCCESS))
28 .Times(1); 28 .Times(1);
29 factory_->CreateDeviceProxy( 29 factory_->CreateDeviceProxy(
30 fake_device_descriptor_->Clone(), mojo::GetProxy(&device_proxy_1), 30 fake_device_descriptor_, mojo::GetProxy(&device_proxy_1),
31 base::Bind(&MockCreateDeviceProxyCallback::Run, 31 base::Bind(&MockCreateDeviceProxyCallback::Run,
32 base::Unretained(&create_device_proxy_callback_1))); 32 base::Unretained(&create_device_proxy_callback_1)));
33 device_proxy_1.set_connection_error_handler( 33 device_proxy_1.set_connection_error_handler(
34 base::Bind([](bool* access_revoked) { *access_revoked = true; }, 34 base::Bind([](bool* access_revoked) { *access_revoked = true; },
35 &device_access_1_revoked)); 35 &device_access_1_revoked));
36 36
37 base::RunLoop wait_loop; 37 base::RunLoop wait_loop;
38 mojom::VideoCaptureDeviceProxyPtr device_proxy_2; 38 mojom::VideoCaptureDeviceProxyPtr device_proxy_2;
39 bool device_access_2_revoked = false; 39 bool device_access_2_revoked = false;
40 MockCreateDeviceProxyCallback create_device_proxy_callback_2; 40 MockCreateDeviceProxyCallback create_device_proxy_callback_2;
41 EXPECT_CALL(create_device_proxy_callback_2, 41 EXPECT_CALL(create_device_proxy_callback_2,
42 Run(mojom::DeviceAccessResultCode::SUCCESS)) 42 Run(mojom::DeviceAccessResultCode::SUCCESS))
43 .Times(1) 43 .Times(1)
44 .WillOnce(InvokeWithoutArgs([&wait_loop]() { wait_loop.Quit(); })); 44 .WillOnce(InvokeWithoutArgs([&wait_loop]() { wait_loop.Quit(); }));
45 factory_->CreateDeviceProxy( 45 factory_->CreateDeviceProxy(
46 fake_device_descriptor_->Clone(), mojo::GetProxy(&device_proxy_2), 46 fake_device_descriptor_, mojo::GetProxy(&device_proxy_2),
47 base::Bind(&MockCreateDeviceProxyCallback::Run, 47 base::Bind(&MockCreateDeviceProxyCallback::Run,
48 base::Unretained(&create_device_proxy_callback_2))); 48 base::Unretained(&create_device_proxy_callback_2)));
49 device_proxy_2.set_connection_error_handler( 49 device_proxy_2.set_connection_error_handler(
50 base::Bind([](bool* access_revoked) { *access_revoked = true; }, 50 base::Bind([](bool* access_revoked) { *access_revoked = true; },
51 &device_access_2_revoked)); 51 &device_access_2_revoked));
52 wait_loop.Run(); 52 wait_loop.Run();
53 ASSERT_TRUE(device_access_1_revoked); 53 ASSERT_TRUE(device_access_1_revoked);
54 ASSERT_FALSE(device_access_2_revoked); 54 ASSERT_FALSE(device_access_2_revoked);
55 } 55 }
56 56
57 // Tests that a second proxy requested for a device can be used successfully. 57 // Tests that a second proxy requested for a device can be used successfully.
58 TEST_F(FakeDeviceDescriptorTest, CanUseSecondRequestedProxy) { 58 TEST_F(FakeDeviceDescriptorTest, CanUseSecondRequestedProxy) {
59 mojom::VideoCaptureDeviceProxyPtr device_proxy_1; 59 mojom::VideoCaptureDeviceProxyPtr device_proxy_1;
60 factory_->CreateDeviceProxy( 60 factory_->CreateDeviceProxy(
61 fake_device_descriptor_->Clone(), mojo::GetProxy(&device_proxy_1), 61 fake_device_descriptor_, mojo::GetProxy(&device_proxy_1),
62 base::Bind([](mojom::DeviceAccessResultCode result_code) {})); 62 base::Bind([](mojom::DeviceAccessResultCode result_code) {}));
63 63
64 base::RunLoop wait_loop; 64 base::RunLoop wait_loop;
65 mojom::VideoCaptureDeviceProxyPtr device_proxy_2; 65 mojom::VideoCaptureDeviceProxyPtr device_proxy_2;
66 factory_->CreateDeviceProxy( 66 factory_->CreateDeviceProxy(
67 fake_device_descriptor_->Clone(), mojo::GetProxy(&device_proxy_2), 67 fake_device_descriptor_, mojo::GetProxy(&device_proxy_2),
68 base::Bind( 68 base::Bind(
69 [](base::RunLoop* wait_loop, 69 [](base::RunLoop* wait_loop,
70 mojom::DeviceAccessResultCode result_code) { wait_loop->Quit(); }, 70 mojom::DeviceAccessResultCode result_code) { wait_loop->Quit(); },
71 &wait_loop)); 71 &wait_loop));
72 wait_loop.Run(); 72 wait_loop.Run();
73 73
74 auto arbitrary_requested_settings = mojom::VideoCaptureSettings::New(); 74 media::VideoCaptureParams arbitrary_requested_settings;
75 arbitrary_requested_settings->format = mojom::VideoCaptureFormat::New(); 75 arbitrary_requested_settings.requested_format.frame_size.SetSize(640, 480);
76 arbitrary_requested_settings->format->frame_size.SetSize(640, 480); 76 arbitrary_requested_settings.requested_format.frame_rate = 15;
77 arbitrary_requested_settings->format->frame_rate = 15; 77 arbitrary_requested_settings.resolution_change_policy =
78 arbitrary_requested_settings->resolution_change_policy = 78 media::RESOLUTION_POLICY_FIXED_RESOLUTION;
79 mojom::ResolutionChangePolicy::FIXED_RESOLUTION; 79 arbitrary_requested_settings.power_line_frequency =
80 arbitrary_requested_settings->power_line_frequency = 80 media::PowerLineFrequency::FREQUENCY_DEFAULT;
81 mojom::PowerLineFrequency::DEFAULT;
82 81
83 base::RunLoop wait_loop_2; 82 base::RunLoop wait_loop_2;
84 mojom::VideoFrameReceiverPtr receiver_proxy; 83 mojom::VideoFrameReceiverPtr receiver_proxy;
85 MockVideoFrameReceiver receiver(mojo::GetProxy(&receiver_proxy)); 84 MockVideoFrameReceiver receiver(mojo::GetProxy(&receiver_proxy));
86 EXPECT_CALL(receiver, OnIncomingCapturedVideoFramePtr(_)) 85 EXPECT_CALL(receiver, OnIncomingCapturedVideoFramePtr(_))
87 .WillRepeatedly( 86 .WillRepeatedly(
88 InvokeWithoutArgs([&wait_loop_2]() { wait_loop_2.Quit(); })); 87 InvokeWithoutArgs([&wait_loop_2]() { wait_loop_2.Quit(); }));
89 88
90 device_proxy_2->Start(std::move(arbitrary_requested_settings), 89 device_proxy_2->Start(std::move(arbitrary_requested_settings),
91 std::move(receiver_proxy)); 90 std::move(receiver_proxy));
92 wait_loop_2.Run(); 91 wait_loop_2.Run();
93 } 92 }
94 93
95 } // namespace video_capture 94 } // namespace video_capture
OLDNEW
« no previous file with comments | « services/video_capture/fake_device_descriptor_test.cc ('k') | services/video_capture/fake_device_test.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698