diff --git a/sakura_core/_os/CClipboard.cpp b/sakura_core/_os/CClipboard.cpp index b77bc6adbf..fa0d6806a0 100644 --- a/sakura_core/_os/CClipboard.cpp +++ b/sakura_core/_os/CClipboard.cpp @@ -674,18 +674,18 @@ int CClipboard::GetDataType() return -1; } -HANDLE CClipboard::SetClipboardData(UINT uFormat, HANDLE hMem) { +HANDLE CClipboard::SetClipboardData(UINT uFormat, HANDLE hMem) const { return ::SetClipboardData(uFormat, hMem); } -HANDLE CClipboard::GetClipboardData(UINT uFormat) { +HANDLE CClipboard::GetClipboardData(UINT uFormat) const { return ::GetClipboardData(uFormat); } -BOOL CClipboard::EmptyClipboard() { +BOOL CClipboard::EmptyClipboard() const { return ::EmptyClipboard(); } -BOOL CClipboard::IsClipboardFormatAvailable(UINT format) { +BOOL CClipboard::IsClipboardFormatAvailable(UINT format) const { return ::IsClipboardFormatAvailable(format); } diff --git a/sakura_core/_os/CClipboard.h b/sakura_core/_os/CClipboard.h index dedc6a138a..f398c56796 100644 --- a/sakura_core/_os/CClipboard.h +++ b/sakura_core/_os/CClipboard.h @@ -68,11 +68,14 @@ class CClipboard{ static int GetDataType(); //!< クリップボードデータ形式(CF_UNICODETEXT等)の取得 protected: - // 単体テスト用 + // 単体テスト用コンストラクタ explicit CClipboard(bool openStatus) : m_bOpenResult(openStatus) {} - virtual HANDLE SetClipboardData(UINT uFormat, HANDLE hMem); - virtual HANDLE GetClipboardData(UINT uFormat); - virtual BOOL EmptyClipboard(); - virtual BOOL IsClipboardFormatAvailable(UINT format); + + // 同名の Windows API に引数を転送する仮想メンバ関数。 + // 単体テスト内でオーバーライドすることで副作用のないテストを実施するのが目的。 + virtual HANDLE SetClipboardData(UINT uFormat, HANDLE hMem) const; + virtual HANDLE GetClipboardData(UINT uFormat) const; + virtual BOOL EmptyClipboard() const; + virtual BOOL IsClipboardFormatAvailable(UINT format) const; }; #endif /* SAKURA_CCLIPBOARD_4E783022_214C_4E51_A2E0_54EC343500F6_H_ */ diff --git a/tests/unittests/test-cclipboard.cpp b/tests/unittests/test-cclipboard.cpp index d723639ba7..4db5b13f66 100644 --- a/tests/unittests/test-cclipboard.cpp +++ b/tests/unittests/test-cclipboard.cpp @@ -211,10 +211,10 @@ class MockCClipboard : public CClipboard { public: MockCClipboard(bool openStatus = true) : CClipboard(openStatus) {} ~MockCClipboard() override {} - MOCK_METHOD2(SetClipboardData, HANDLE (UINT, HANDLE)); - MOCK_METHOD1(GetClipboardData, HANDLE (UINT)); - MOCK_METHOD0(EmptyClipboard, BOOL ()); - MOCK_METHOD1(IsClipboardFormatAvailable, BOOL (UINT)); + MOCK_CONST_METHOD2(SetClipboardData, HANDLE (UINT, HANDLE)); + MOCK_CONST_METHOD1(GetClipboardData, HANDLE (UINT)); + MOCK_CONST_METHOD0(EmptyClipboard, BOOL ()); + MOCK_CONST_METHOD1(IsClipboardFormatAvailable, BOOL (UINT)); }; // Empty のテスト。