From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- widget/tests/gtest/TestWinMessageLoggingUtils.cpp | 101 ++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 widget/tests/gtest/TestWinMessageLoggingUtils.cpp (limited to 'widget/tests/gtest/TestWinMessageLoggingUtils.cpp') diff --git a/widget/tests/gtest/TestWinMessageLoggingUtils.cpp b/widget/tests/gtest/TestWinMessageLoggingUtils.cpp new file mode 100644 index 0000000000..b0ab09f866 --- /dev/null +++ b/widget/tests/gtest/TestWinMessageLoggingUtils.cpp @@ -0,0 +1,101 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "gtest/gtest.h" +#include "windows/nsWindowDbg.h" + +using namespace mozilla; +using namespace mozilla::widget; + +TEST(WinMessageLoggingUtils, AppendFlagsInfo_CombinationFlagsHandledFirst) +{ + const nsTArray flags = { + {0x3, "COMBO"}, {0x1, "ONE"}, {0x2, "TWO"}}; + nsAutoCString result; + EXPECT_EQ(true, AppendFlagsInfo(result, 0x3, flags, nullptr)); + EXPECT_STREQ("COMBO", result.get()); +} + +TEST(WinMessageLoggingUtils, AppendFlagsInfo_SingleFlag) +{ + const nsTArray flags = { + {0x1, "ONE"}, {0x2, "TWO"}, {0x4, "FOUR"}}; + nsAutoCString result; + EXPECT_EQ(true, AppendFlagsInfo(result, 0x4, flags, nullptr)); + EXPECT_STREQ("FOUR", result.get()); +} + +TEST(WinMessageLoggingUtils, AppendFlagsInfo_SingleFlagWithName) +{ + const nsTArray flags = { + {0x1, "ONE"}, {0x2, "TWO"}, {0x4, "FOUR"}}; + nsAutoCString result; + EXPECT_EQ(true, AppendFlagsInfo(result, 0x4, flags, "paramName")); + EXPECT_STREQ("paramName=FOUR", result.get()); +} + +TEST(WinMessageLoggingUtils, AppendFlagsInfo_MultipleFlags) +{ + const nsTArray flags = { + {0x1, "ONE"}, {0x2, "TWO"}, {0x4, "FOUR"}}; + nsAutoCString result; + EXPECT_EQ(true, AppendFlagsInfo(result, 0x5, flags, nullptr)); + EXPECT_STREQ("ONE|FOUR", result.get()); +} + +TEST(WinMessageLoggingUtils, AppendFlagsInfo_NoFlags) +{ + const nsTArray flags = { + {0x1, "ONE"}, {0x2, "TWO"}, {0x4, "FOUR"}}; + nsAutoCString result; + EXPECT_EQ(true, AppendFlagsInfo(result, 0x8, flags, nullptr)); + EXPECT_STREQ("Unknown (0x00000008)", result.get()); +} + +TEST(WinMessageLoggingUtils, AppendFlagsInfo_OnlySomeFlagsMatch) +{ + const nsTArray flags = { + {0x1, "ONE"}, {0x2, "TWO"}, {0x4, "FOUR"}}; + nsAutoCString result; + EXPECT_EQ(true, AppendFlagsInfo(result, 0x9, flags, nullptr)); + EXPECT_STREQ("ONE|Unknown (0x00000008)", result.get()); +} + +TEST(WinMessageLoggingUtils, AppendFlagsInfo_FlagsMatch_NoZeroReturned) +{ + const nsTArray flags = { + {0x1, "ONE"}, {0x2, "TWO"}, {0x4, "FOUR"}, {0x0, "ZERO"}}; + nsAutoCString result; + EXPECT_EQ(true, AppendFlagsInfo(result, 0x2, flags, nullptr)); + EXPECT_STREQ("TWO", result.get()); +} + +TEST(WinMessageLoggingUtils, AppendFlagsInfo_NoFlagsMatch_NoZeroReturned) +{ + const nsTArray flags = { + {0x1, "ONE"}, {0x2, "TWO"}, {0x4, "FOUR"}, {0x0, "ZERO"}}; + nsAutoCString result; + EXPECT_EQ(true, AppendFlagsInfo(result, 0x8, flags, nullptr)); + EXPECT_STREQ("Unknown (0x00000008)", result.get()); +} + +TEST(WinMessageLoggingUtils, AppendFlagsInfo_NameAndNoFlagsMatch_NoZeroReturned) +{ + const nsTArray flags = { + {0x1, "ONE"}, {0x2, "TWO"}, {0x4, "FOUR"}, {0x0, "ZERO"}}; + nsAutoCString result; + EXPECT_EQ(true, AppendFlagsInfo(result, 0x8, flags, "paramName")); + EXPECT_STREQ("paramName=Unknown (0x00000008)", result.get()); +} + +TEST(WinMessageLoggingUtils, AppendFlagsInfo_ValueIsZero_ZeroReturned) +{ + const nsTArray flags = { + {0x1, "ONE"}, {0x2, "TWO"}, {0x4, "FOUR"}, {0x0, "ZERO"}}; + nsAutoCString result; + EXPECT_EQ(true, AppendFlagsInfo(result, 0x0, flags, nullptr)); + EXPECT_STREQ("ZERO", result.get()); +} -- cgit v1.2.3