123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- // Copyright 2018 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/audio/user_input_monitor.h"
- #include <memory>
- #include <utility>
- #include "media/base/user_input_monitor.h"
- #include "testing/gtest/include/gtest/gtest.h"
- namespace audio {
- namespace {
- constexpr uint32_t kKeyPressCount = 10;
- }
- TEST(AudioServiceUserInputMonitorTest, CreateWithValidHandle) {
- std::unique_ptr<base::MappedReadOnlyRegion> shmem =
- std::make_unique<base::MappedReadOnlyRegion>(
- base::ReadOnlySharedMemoryRegion::Create(sizeof(uint32_t)));
- ASSERT_TRUE(shmem->IsValid());
- EXPECT_TRUE(UserInputMonitor::Create(shmem->region.Duplicate()));
- }
- TEST(AudioServiceUserInputMonitorTest, CreateWithInvalidHandle_ReturnsNullptr) {
- EXPECT_EQ(nullptr,
- UserInputMonitor::Create(base::ReadOnlySharedMemoryRegion()));
- }
- TEST(AudioServiceUserInputMonitorTest, GetKeyPressCount) {
- std::unique_ptr<base::MappedReadOnlyRegion> shmem =
- std::make_unique<base::MappedReadOnlyRegion>(
- base::ReadOnlySharedMemoryRegion::Create(sizeof(uint32_t)));
- ASSERT_TRUE(shmem->IsValid());
- std::unique_ptr<UserInputMonitor> monitor =
- UserInputMonitor::Create(shmem->region.Duplicate());
- EXPECT_TRUE(monitor);
- media::WriteKeyPressMonitorCount(shmem->mapping, kKeyPressCount);
- EXPECT_EQ(kKeyPressCount, monitor->GetKeyPressCount());
- }
- TEST(AudioServiceUserInputMonitorTest, GetKeyPressCountAfterMemoryUnmap) {
- std::unique_ptr<base::MappedReadOnlyRegion> shmem =
- std::make_unique<base::MappedReadOnlyRegion>(
- base::ReadOnlySharedMemoryRegion::Create(sizeof(uint32_t)));
- ASSERT_TRUE(shmem->IsValid());
- std::unique_ptr<UserInputMonitor> monitor =
- UserInputMonitor::Create(shmem->region.Duplicate());
- EXPECT_TRUE(monitor);
- media::WriteKeyPressMonitorCount(shmem->mapping, kKeyPressCount);
- EXPECT_EQ(kKeyPressCount, monitor->GetKeyPressCount());
- // ReadOnlyMapping should still be valid, containing the last updated value,
- // after shmem reset.
- shmem.reset();
- EXPECT_EQ(kKeyPressCount, monitor->GetKeyPressCount());
- }
- } // namespace audio
|