1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
7 #include "base/strings/utf_string_conversions.h"
8 #include "base/win/message_window.h"
9 #include "testing/gmock/include/gmock/gmock.h"
10 #include "testing/gtest/include/gtest/gtest.h"
17 UINT message
, WPARAM wparam
, LPARAM lparam
, LRESULT
* result
) {
18 // Return |wparam| as the result of WM_USER message.
19 if (message
== WM_USER
) {
29 // Checks that a window can be created.
30 TEST(MessageWindowTest
, Create
) {
31 win::MessageWindow window
;
32 EXPECT_TRUE(window
.Create(base::Bind(&HandleMessage
)));
35 // Checks that a named window can be created.
36 TEST(MessageWindowTest
, CreateNamed
) {
37 win::MessageWindow window
;
38 EXPECT_TRUE(window
.CreateNamed(base::Bind(&HandleMessage
),
39 UTF8ToUTF16("test_message_window")));
42 // Verifies that the created window can receive messages.
43 TEST(MessageWindowTest
, SendMessage
) {
44 win::MessageWindow window
;
45 EXPECT_TRUE(window
.Create(base::Bind(&HandleMessage
)));
47 EXPECT_EQ(SendMessage(window
.hwnd(), WM_USER
, 100, 0), 100);
50 // Verifies that a named window can be found by name.
51 TEST(MessageWindowTest
, FindWindow
) {
52 string16 name
= UTF8ToUTF16(base::GenerateGUID());
53 win::MessageWindow window
;
54 EXPECT_TRUE(window
.CreateNamed(base::Bind(&HandleMessage
), name
));
56 HWND hwnd
= win::MessageWindow::FindWindow(name
);
57 EXPECT_TRUE(hwnd
!= NULL
);
58 EXPECT_EQ(SendMessage(hwnd
, WM_USER
, 200, 0), 200);