Index: src/platform/window_manager/window_manager_test.cc |
diff --git a/src/platform/window_manager/window_manager_test.cc b/src/platform/window_manager/window_manager_test.cc |
index 0b87844b394a522e4a03b77d1d629a870b5c2dc4..dce957b59319f735d6d8850afb3b370577b100cb 100644 |
--- a/src/platform/window_manager/window_manager_test.cc |
+++ b/src/platform/window_manager/window_manager_test.cc |
@@ -672,6 +672,25 @@ TEST_F(WindowManagerTest, ClientListProperties) { |
TestIntArrayProperty(root_xid, stacking_atom, 0); |
} |
+TEST_F(WindowManagerTest, WmIpcVersion) { |
+ // We should assume version 0 if we haven't received a message from Chrome. |
+ EXPECT_EQ(0, wm_->wm_ipc_version()); |
+ |
+ // Now send the WM a message telling it that Chrome is using version 3. |
+ // We use WmIpc to generate the XEvent for us and then pass it to |
+ // WindowManager::HandleEvent(). |
+ MockXConnection::WindowInfo* info = xconn_->GetWindowInfoOrDie(wm_->wm_xid()); |
+ EXPECT_TRUE(info->client_messages.empty()); |
+ WmIpc::Message msg(WmIpc::Message::WM_NOTIFY_IPC_VERSION); |
+ msg.set_param(0, 3); |
+ ASSERT_TRUE(wm_->wm_ipc()->SendMessage(wm_->wm_xid(), msg)); |
+ ASSERT_EQ(static_cast<size_t>(1), info->client_messages.size()); |
+ XEvent event; |
+ event.xclient = info->client_messages[0]; |
+ EXPECT_TRUE(wm_->HandleEvent(&event)); |
+ EXPECT_EQ(3, wm_->wm_ipc_version()); |
+} |
+ |
} // namespace window_manager |
int main(int argc, char **argv) { |