Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 0769d11

Browse files
committed
[Windows] Reduce warnings produced by unit tests
1 parent 315495e commit 0769d11

File tree

5 files changed

+74
-68
lines changed

5 files changed

+74
-68
lines changed

shell/platform/windows/angle_surface_manager.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class AngleSurfaceManager {
6565

6666
// Binds |egl_context_| to the current rendering thread and to the draw and
6767
// read surfaces returning a boolean result reflecting success.
68-
bool MakeCurrent();
68+
virtual bool MakeCurrent();
6969

7070
// Unbinds the current EGL context from the current thread.
7171
bool ClearCurrent();

shell/platform/windows/flutter_window_unittests.cc

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "gtest/gtest.h"
1313

1414
using testing::_;
15+
using testing::AnyNumber;
1516
using testing::Invoke;
1617
using testing::Return;
1718

@@ -133,8 +134,7 @@ TEST(FlutterWindowTest, OnBitmapSurfaceUpdated) {
133134
// when the DPI scale is 100% (96 DPI).
134135
TEST(FlutterWindowTest, OnCursorRectUpdatedRegularDPI) {
135136
MockFlutterWindow win32window;
136-
ON_CALL(win32window, GetDpiScale()).WillByDefault(Return(1.0));
137-
EXPECT_CALL(win32window, GetDpiScale()).Times(1);
137+
EXPECT_CALL(win32window, GetDpiScale()).WillOnce(Return(1.0));
138138

139139
Rect cursor_rect(Point(10, 20), Size(30, 40));
140140
EXPECT_CALL(win32window, UpdateCursorRect(cursor_rect)).Times(1);
@@ -147,8 +147,7 @@ TEST(FlutterWindowTest, OnCursorRectUpdatedRegularDPI) {
147147
// when the DPI scale is 150% (144 DPI).
148148
TEST(FlutterWindowTest, OnCursorRectUpdatedHighDPI) {
149149
MockFlutterWindow win32window;
150-
ON_CALL(win32window, GetDpiScale()).WillByDefault(Return(1.5));
151-
EXPECT_CALL(win32window, GetDpiScale()).Times(1);
150+
EXPECT_CALL(win32window, GetDpiScale()).WillOnce(Return(1.5));
152151

153152
Rect expected_cursor_rect(Point(15, 30), Size(45, 60));
154153
EXPECT_CALL(win32window, UpdateCursorRect(expected_cursor_rect)).Times(1);
@@ -160,7 +159,9 @@ TEST(FlutterWindowTest, OnCursorRectUpdatedHighDPI) {
160159
TEST(FlutterWindowTest, OnPointerStarSendsDeviceType) {
161160
FlutterWindow win32window(100, 100);
162161
MockWindowBindingHandlerDelegate delegate;
162+
EXPECT_CALL(delegate, OnWindowStateEvent).Times(AnyNumber());
163163
win32window.SetView(&delegate);
164+
164165
// Move
165166
EXPECT_CALL(delegate,
166167
OnPointerMove(10.0, 10.0, kFlutterPointerDeviceKindMouse,
@@ -259,6 +260,7 @@ TEST(FlutterWindowTest, OnPointerStarSendsDeviceType) {
259260
TEST(FlutterWindowTest, OnScrollCallsGetScrollOffsetMultiplier) {
260261
MockFlutterWindow win32window;
261262
MockWindowBindingHandlerDelegate delegate;
263+
EXPECT_CALL(win32window, OnWindowStateEvent).Times(AnyNumber());
262264
win32window.SetView(&delegate);
263265

264266
ON_CALL(win32window, GetScrollOffsetMultiplier())
@@ -277,6 +279,7 @@ TEST(FlutterWindowTest, OnScrollCallsGetScrollOffsetMultiplier) {
277279
TEST(FlutterWindowTest, OnWindowRepaint) {
278280
MockFlutterWindow win32window;
279281
MockWindowBindingHandlerDelegate delegate;
282+
EXPECT_CALL(win32window, OnWindowStateEvent).Times(AnyNumber());
280283
win32window.SetView(&delegate);
281284

282285
EXPECT_CALL(delegate, OnWindowRepaint()).Times(1);
@@ -287,6 +290,7 @@ TEST(FlutterWindowTest, OnWindowRepaint) {
287290
TEST(FlutterWindowTest, OnThemeChange) {
288291
MockFlutterWindow win32window;
289292
MockWindowBindingHandlerDelegate delegate;
293+
EXPECT_CALL(win32window, OnWindowStateEvent).Times(AnyNumber());
290294
win32window.SetView(&delegate);
291295

292296
EXPECT_CALL(delegate, OnHighContrastChanged).Times(1);
@@ -308,9 +312,9 @@ TEST(FlutterWindowTest, AccessibilityNodeWithoutView) {
308312
TEST(FlutterWindowTest, AlertNode) {
309313
std::unique_ptr<MockFlutterWindow> win32window =
310314
std::make_unique<MockFlutterWindow>();
311-
ON_CALL(*win32window, GetPlatformWindow()).WillByDefault(Return(nullptr));
312-
ON_CALL(*win32window, GetAxFragmentRootDelegate())
313-
.WillByDefault(Return(nullptr));
315+
EXPECT_CALL(*win32window.get(), GetAxFragmentRootDelegate())
316+
.WillOnce(Return(nullptr));
317+
EXPECT_CALL(*win32window.get(), OnWindowStateEvent).Times(AnyNumber());
314318
MockFlutterWindowsView view(std::move(win32window));
315319
std::wstring message = L"Test alert";
316320
EXPECT_CALL(view, NotifyWinEventWrapper(_, ax::mojom::Event::kAlert))
@@ -337,21 +341,22 @@ TEST(FlutterWindowTest, AlertNode) {
337341

338342
TEST(FlutterWindowTest, LifecycleFocusMessages) {
339343
MockFlutterWindow win32window;
340-
ON_CALL(win32window, GetPlatformWindow).WillByDefault([]() {
341-
return reinterpret_cast<HWND>(1);
342-
});
344+
EXPECT_CALL(win32window, GetPlatformWindow)
345+
.WillRepeatedly(Return(reinterpret_cast<HWND>(1)));
343346
MockWindowBindingHandlerDelegate delegate;
344-
win32window.SetView(&delegate);
345347

346348
WindowStateEvent last_event;
347-
ON_CALL(delegate, OnWindowStateEvent)
348-
.WillByDefault([&last_event](HWND hwnd, WindowStateEvent event) {
349+
EXPECT_CALL(delegate, OnWindowStateEvent)
350+
.WillRepeatedly([&last_event](HWND hwnd, WindowStateEvent event) {
349351
last_event = event;
350352
});
351-
ON_CALL(win32window, OnWindowStateEvent)
352-
.WillByDefault([&](WindowStateEvent event) {
353+
EXPECT_CALL(win32window, OnWindowStateEvent)
354+
.WillRepeatedly([&](WindowStateEvent event) {
353355
win32window.FlutterWindow::OnWindowStateEvent(event);
354356
});
357+
EXPECT_CALL(win32window, OnResize).Times(AnyNumber());
358+
359+
win32window.SetView(&delegate);
355360

356361
win32window.InjectWindowMessage(WM_SIZE, 0, 0);
357362
EXPECT_EQ(last_event, WindowStateEvent::kHide);
@@ -368,13 +373,13 @@ TEST(FlutterWindowTest, LifecycleFocusMessages) {
368373

369374
TEST(FlutterWindowTest, CachedLifecycleMessage) {
370375
MockFlutterWindow win32window;
371-
ON_CALL(win32window, GetPlatformWindow).WillByDefault([]() {
372-
return reinterpret_cast<HWND>(1);
373-
});
374-
ON_CALL(win32window, OnWindowStateEvent)
375-
.WillByDefault([&](WindowStateEvent event) {
376+
EXPECT_CALL(win32window, GetPlatformWindow)
377+
.WillRepeatedly(Return(reinterpret_cast<HWND>(1)));
378+
EXPECT_CALL(win32window, OnWindowStateEvent)
379+
.WillRepeatedly([&](WindowStateEvent event) {
376380
win32window.FlutterWindow::OnWindowStateEvent(event);
377381
});
382+
EXPECT_CALL(win32window, OnResize).Times(1);
378383

379384
// Restore
380385
win32window.InjectWindowMessage(WM_SIZE, 0, MAKEWORD(1, 1));
@@ -385,8 +390,8 @@ TEST(FlutterWindowTest, CachedLifecycleMessage) {
385390
MockWindowBindingHandlerDelegate delegate;
386391
bool focused = false;
387392
bool restored = false;
388-
ON_CALL(delegate, OnWindowStateEvent)
389-
.WillByDefault([&](HWND hwnd, WindowStateEvent event) {
393+
EXPECT_CALL(delegate, OnWindowStateEvent)
394+
.WillRepeatedly([&](HWND hwnd, WindowStateEvent event) {
390395
if (event == WindowStateEvent::kFocus) {
391396
focused = true;
392397
} else if (event == WindowStateEvent::kShow) {
@@ -403,18 +408,19 @@ TEST(FlutterWindowTest, PosthumousWindowMessage) {
403408
MockWindowBindingHandlerDelegate delegate;
404409
int msg_count = 0;
405410
HWND hwnd;
406-
ON_CALL(delegate, OnWindowStateEvent)
407-
.WillByDefault([&](HWND hwnd, WindowStateEvent event) { msg_count++; });
411+
EXPECT_CALL(delegate, OnWindowStateEvent)
412+
.WillRepeatedly([&](HWND hwnd, WindowStateEvent event) { msg_count++; });
408413

409414
{
410415
MockFlutterWindow win32window(false);
411-
ON_CALL(win32window, GetPlatformWindow).WillByDefault([&]() {
416+
EXPECT_CALL(win32window, GetPlatformWindow).WillRepeatedly([&]() {
412417
return win32window.FlutterWindow::GetPlatformWindow();
413418
});
414-
ON_CALL(win32window, OnWindowStateEvent)
415-
.WillByDefault([&](WindowStateEvent event) {
419+
EXPECT_CALL(win32window, OnWindowStateEvent)
420+
.WillRepeatedly([&](WindowStateEvent event) {
416421
win32window.FlutterWindow::OnWindowStateEvent(event);
417422
});
423+
EXPECT_CALL(win32window, OnResize).Times(AnyNumber());
418424
win32window.SetView(&delegate);
419425
win32window.InitializeChild("Title", 1, 1);
420426
hwnd = win32window.GetPlatformWindow();

shell/platform/windows/flutter_windows_engine_unittests.cc

Lines changed: 35 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -640,9 +640,8 @@ TEST_F(FlutterWindowsEngineTest, AlertPlatformMessage) {
640640
std::make_unique<::testing::NiceMock<MockWindowBindingHandler>>();
641641
ui::AXPlatformNodeDelegateBase parent_delegate;
642642
AlertPlatformNodeDelegate delegate(parent_delegate);
643-
ON_CALL(*window_binding_handler, GetAlertDelegate).WillByDefault([&delegate] {
644-
return &delegate;
645-
});
643+
EXPECT_CALL(*window_binding_handler, GetAlertDelegate)
644+
.WillOnce(Return(&delegate));
646645
MockFlutterWindowsView view(std::move(window_binding_handler));
647646
view.SetEngine(engine.get());
648647

@@ -660,9 +659,9 @@ TEST_F(FlutterWindowsEngineTest, AlertPlatformMessage) {
660659
});
661660

662661
bool did_call = false;
663-
ON_CALL(view, NotifyWinEventWrapper)
664-
.WillByDefault([&did_call](ui::AXPlatformNodeWin* node,
665-
ax::mojom::Event event) { did_call = true; });
662+
EXPECT_CALL(view, NotifyWinEventWrapper)
663+
.WillOnce([&did_call](ui::AXPlatformNodeWin* node,
664+
ax::mojom::Event event) { did_call = true; });
666665

667666
engine->UpdateSemanticsEnabled(true);
668667
engine->Run();
@@ -712,13 +711,13 @@ TEST_F(FlutterWindowsEngineTest, TestExit) {
712711
EngineModifier modifier(engine.get());
713712
modifier.embedder_api().RunsAOTCompiledDartCode = []() { return false; };
714713
auto handler = std::make_unique<MockWindowsLifecycleManager>(engine.get());
715-
ON_CALL(*handler, Quit)
716-
.WillByDefault(
717-
[&finished](std::optional<HWND> hwnd, std::optional<WPARAM> wparam,
718-
std::optional<LPARAM> lparam,
719-
UINT exit_code) { finished = exit_code == 0; });
720-
ON_CALL(*handler, IsLastWindowOfProcess).WillByDefault([]() { return true; });
721-
EXPECT_CALL(*handler, Quit).Times(1);
714+
EXPECT_CALL(*handler, SetLifecycleState(AppLifecycleState::kResumed));
715+
EXPECT_CALL(*handler, Quit)
716+
.WillOnce([&finished](std::optional<HWND> hwnd,
717+
std::optional<WPARAM> wparam,
718+
std::optional<LPARAM> lparam,
719+
UINT exit_code) { finished = exit_code == 0; });
720+
EXPECT_CALL(*handler, IsLastWindowOfProcess).WillOnce(Return(true));
722721
modifier.SetLifecycleManager(std::move(handler));
723722

724723
engine->lifecycle_manager()->BeginProcessingExit();
@@ -738,7 +737,6 @@ TEST_F(FlutterWindowsEngineTest, TestExit) {
738737
TEST_F(FlutterWindowsEngineTest, TestExitCancel) {
739738
FlutterWindowsEngineBuilder builder{GetContext()};
740739
builder.SetDartEntrypoint("exitTestCancel");
741-
bool finished = false;
742740
bool did_call = false;
743741

744742
auto engine = builder.Build();
@@ -750,12 +748,8 @@ TEST_F(FlutterWindowsEngineTest, TestExitCancel) {
750748
EngineModifier modifier(engine.get());
751749
modifier.embedder_api().RunsAOTCompiledDartCode = []() { return false; };
752750
auto handler = std::make_unique<MockWindowsLifecycleManager>(engine.get());
753-
ON_CALL(*handler, Quit)
754-
.WillByDefault([&finished](std::optional<HWND> hwnd,
755-
std::optional<WPARAM> wparam,
756-
std::optional<LPARAM> lparam,
757-
UINT exit_code) { finished = true; });
758-
ON_CALL(*handler, IsLastWindowOfProcess).WillByDefault([]() { return true; });
751+
EXPECT_CALL(*handler, SetLifecycleState(AppLifecycleState::kResumed));
752+
EXPECT_CALL(*handler, IsLastWindowOfProcess).WillOnce(Return(true));
759753
EXPECT_CALL(*handler, Quit).Times(0);
760754
modifier.SetLifecycleManager(std::move(handler));
761755
engine->lifecycle_manager()->BeginProcessingExit();
@@ -783,10 +777,11 @@ TEST_F(FlutterWindowsEngineTest, TestExitCancel) {
783777
while (!did_call) {
784778
engine->task_runner()->ProcessTasks();
785779
}
786-
787-
EXPECT_FALSE(finished);
788780
}
789781

782+
// TODO(loicsharma): This test is passing incorrectly on the first
783+
// WM_CLOSE message when instead it should pass on the second WM_CLOSE message.
784+
// https://github.com/flutter/flutter/issues/137963
790785
TEST_F(FlutterWindowsEngineTest, TestExitSecondCloseMessage) {
791786
FlutterWindowsEngineBuilder builder{GetContext()};
792787
builder.SetDartEntrypoint("exitTestExit");
@@ -801,18 +796,18 @@ TEST_F(FlutterWindowsEngineTest, TestExitSecondCloseMessage) {
801796
EngineModifier modifier(engine.get());
802797
modifier.embedder_api().RunsAOTCompiledDartCode = []() { return false; };
803798
auto handler = std::make_unique<MockWindowsLifecycleManager>(engine.get());
804-
auto& handler_obj = *handler;
805-
ON_CALL(handler_obj, IsLastWindowOfProcess).WillByDefault([]() {
806-
return true;
807-
});
808-
ON_CALL(handler_obj, Quit)
809-
.WillByDefault(
810-
[&handler_obj](std::optional<HWND> hwnd, std::optional<WPARAM> wparam,
799+
EXPECT_CALL(*handler, SetLifecycleState(AppLifecycleState::kResumed));
800+
// TODO(loicsharma): These should be `EXPECT_CALL`s
801+
// https://github.com/flutter/flutter/issues/137963
802+
ON_CALL(*handler, IsLastWindowOfProcess).WillByDefault(Return(true));
803+
ON_CALL(*handler, Quit)
804+
.WillByDefault([handler_ptr = handler.get()](
805+
std::optional<HWND> hwnd, std::optional<WPARAM> wparam,
811806
std::optional<LPARAM> lparam, UINT exit_code) {
812-
handler_obj.WindowsLifecycleManager::Quit(hwnd, wparam, lparam,
813-
exit_code);
814-
});
815-
ON_CALL(handler_obj, DispatchMessage)
807+
handler_ptr->WindowsLifecycleManager::Quit(hwnd, wparam, lparam,
808+
exit_code);
809+
});
810+
ON_CALL(*handler, DispatchMessage)
816811
.WillByDefault(
817812
[&engine](HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) {
818813
engine->window_proc_delegate_manager()->OnTopLevelWindowProc(
@@ -863,7 +858,8 @@ TEST_F(FlutterWindowsEngineTest, TestExitCloseMultiWindow) {
863858
EngineModifier modifier(engine.get());
864859
modifier.embedder_api().RunsAOTCompiledDartCode = []() { return false; };
865860
auto handler = std::make_unique<MockWindowsLifecycleManager>(engine.get());
866-
ON_CALL(*handler, IsLastWindowOfProcess).WillByDefault([&finished]() {
861+
EXPECT_CALL(*handler, SetLifecycleState(AppLifecycleState::kResumed));
862+
EXPECT_CALL(*handler, IsLastWindowOfProcess).WillOnce([&finished]() {
867863
finished = true;
868864
return false;
869865
});
@@ -1065,8 +1061,8 @@ TEST_F(FlutterWindowsEngineTest, EnableLifecycleState) {
10651061
EngineModifier modifier(engine.get());
10661062
modifier.embedder_api().RunsAOTCompiledDartCode = []() { return false; };
10671063
auto handler = std::make_unique<MockWindowsLifecycleManager>(engine.get());
1068-
ON_CALL(*handler, SetLifecycleState)
1069-
.WillByDefault([handler_ptr = handler.get()](AppLifecycleState state) {
1064+
EXPECT_CALL(*handler, SetLifecycleState)
1065+
.WillRepeatedly([handler_ptr = handler.get()](AppLifecycleState state) {
10701066
handler_ptr->WindowsLifecycleManager::SetLifecycleState(state);
10711067
});
10721068
modifier.SetLifecycleManager(std::move(handler));
@@ -1118,8 +1114,8 @@ TEST_F(FlutterWindowsEngineTest, LifecycleStateToFrom) {
11181114
EngineModifier modifier(engine.get());
11191115
modifier.embedder_api().RunsAOTCompiledDartCode = []() { return false; };
11201116
auto handler = std::make_unique<MockWindowsLifecycleManager>(engine.get());
1121-
ON_CALL(*handler, SetLifecycleState)
1122-
.WillByDefault([handler_ptr = handler.get()](AppLifecycleState state) {
1117+
EXPECT_CALL(*handler, SetLifecycleState)
1118+
.WillRepeatedly([handler_ptr = handler.get()](AppLifecycleState state) {
11231119
handler_ptr->WindowsLifecycleManager::SetLifecycleState(state);
11241120
});
11251121
handler->begin_processing_callback = [&]() { enabled_lifecycle = true; };
@@ -1167,6 +1163,7 @@ TEST_F(FlutterWindowsEngineTest, ChannelListenedTo) {
11671163

11681164
bool lifecycle_began = false;
11691165
auto handler = std::make_unique<MockWindowsLifecycleManager>(engine.get());
1166+
EXPECT_CALL(*handler, SetLifecycleState).Times(1);
11701167
handler->begin_processing_callback = [&]() { lifecycle_began = true; };
11711168
modifier.SetLifecycleManager(std::move(handler));
11721169

shell/platform/windows/flutter_windows_view_unittests.cc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ class MockAngleSurfaceManager : public AngleSurfaceManager {
131131
(override));
132132
MOCK_METHOD(void, DestroySurface, (), (override));
133133

134+
MOCK_METHOD(bool, MakeCurrent, (), (override));
134135
MOCK_METHOD(void, SetVSyncEnabled, (bool), (override));
135136

136137
private:
@@ -1302,7 +1303,9 @@ TEST(FlutterWindowsViewTest, UpdatesVSyncOnDwmUpdates) {
13021303
FlutterWindowsView view(std::move(window_binding_handler));
13031304

13041305
InSequence s;
1306+
EXPECT_CALL(*surface_manager.get(), MakeCurrent).WillOnce(Return(true));
13051307
EXPECT_CALL(*surface_manager.get(), SetVSyncEnabled(true)).Times(1);
1308+
EXPECT_CALL(*surface_manager.get(), MakeCurrent).WillOnce(Return(true));
13061309
EXPECT_CALL(*surface_manager.get(), SetVSyncEnabled(false)).Times(1);
13071310

13081311
EXPECT_CALL(*engine.get(), Stop).Times(1);

shell/platform/windows/system_utils_unittests.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ TEST(SystemUtils, GetPreferredLanguageInfo) {
2525

2626
TEST(SystemUtils, GetPreferredLanguages) {
2727
MockWindowsProcTable proc_table;
28-
ON_CALL(proc_table, GetThreadPreferredUILanguages)
29-
.WillByDefault(
28+
EXPECT_CALL(proc_table, GetThreadPreferredUILanguages)
29+
.WillRepeatedly(
3030
[](DWORD flags, PULONG count, PZZWSTR languages, PULONG size) {
3131
// Languages string ends in a double-null.
3232
static const wchar_t lang[] = L"en-US\0";

0 commit comments

Comments
 (0)