|  | // 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(StartWatching, void()); | 
|  | MOCK_METHOD0(StopWatching, void()); | 
|  |  | 
|  | MOCK_METHOD0(GetAlwaysUse24HourFormat, bool()); | 
|  | MOCK_METHOD0(GetTextScaleFactor, float()); | 
|  | MOCK_METHOD0(GetPreferredBrightness, PlatformBrightness()); | 
|  | }; | 
|  |  | 
|  | }  // 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(); | 
|  | } | 
|  |  | 
|  | }  // namespace testing | 
|  | }  // namespace flutter |