| // Copyright 2013 The Flutter 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 "flutter/shell/platform/windows/settings_plugin.h" |
| |
| #include "flutter/shell/platform/windows/task_runner.h" |
| #include "flutter/shell/platform/windows/testing/test_binary_messenger.h" |
| #include "gmock/gmock.h" |
| #include "gtest/gtest.h" |
| |
| namespace flutter { |
| namespace testing { |
| |
| namespace { |
| |
| class MockSettingsPlugin : public SettingsPlugin { |
| public: |
| explicit MockSettingsPlugin(BinaryMessenger* messenger, |
| TaskRunner* task_runner) |
| : SettingsPlugin(messenger, task_runner) {} |
| |
| virtual ~MockSettingsPlugin() = default; |
| |
| // |SettingsPlugin| |
| MOCK_METHOD0(GetAlwaysUse24HourFormat, bool()); |
| MOCK_METHOD0(GetTextScaleFactor, float()); |
| MOCK_METHOD0(GetPreferredBrightness, PlatformBrightness()); |
| |
| MOCK_METHOD0(WatchPreferredBrightnessChanged, void()); |
| MOCK_METHOD0(WatchTextScaleFactorChanged, void()); |
| }; |
| |
| } // namespace |
| |
| TEST(SettingsPluginTest, SendSettingsSendsMessage) { |
| bool message_is_sent = false; |
| TestBinaryMessenger messenger( |
| [&message_is_sent](const std::string& channel, const uint8_t* message, |
| size_t message_size, |
| BinaryReply reply) { message_is_sent = true; }); |
| ::testing::NiceMock<MockSettingsPlugin> settings_plugin(&messenger, nullptr); |
| |
| settings_plugin.SendSettings(); |
| |
| EXPECT_TRUE(message_is_sent); |
| } |
| |
| TEST(SettingsPluginTest, SendSettingsGetsSettings) { |
| TestBinaryMessenger messenger([](const std::string& channel, |
| const uint8_t* message, size_t message_size, |
| BinaryReply reply) {}); |
| ::testing::NiceMock<MockSettingsPlugin> settings_plugin(&messenger, nullptr); |
| |
| EXPECT_CALL(settings_plugin, GetAlwaysUse24HourFormat).Times(1); |
| EXPECT_CALL(settings_plugin, GetTextScaleFactor).Times(1); |
| EXPECT_CALL(settings_plugin, GetPreferredBrightness).Times(1); |
| |
| settings_plugin.SendSettings(); |
| } |
| |
| TEST(SettingsPluginTest, StartWatchingStartsWatchingChanges) { |
| TestBinaryMessenger messenger([](const std::string& channel, |
| const uint8_t* message, size_t message_size, |
| BinaryReply reply) {}); |
| ::testing::NiceMock<MockSettingsPlugin> settings_plugin(&messenger, nullptr); |
| |
| EXPECT_CALL(settings_plugin, WatchPreferredBrightnessChanged).Times(1); |
| EXPECT_CALL(settings_plugin, WatchTextScaleFactorChanged).Times(1); |
| |
| settings_plugin.StartWatching(); |
| } |
| |
| } // namespace testing |
| } // namespace flutter |