110f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch// Copyright (c) 2011 The Chromium Authors. All rights reserved. 210f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 310f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch// found in the LICENSE file. 410f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch 510f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch#include "ppapi/tests/test_cursor_control.h" 610f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch 710f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch#include "ppapi/c/dev/ppb_cursor_control_dev.h" 810f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch#include "ppapi/cpp/module.h" 910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch#include "ppapi/tests/testing_instance.h" 1010f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch 11c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)REGISTER_TEST_CASE(CursorControl); 12e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 1310f88d5669dbd969c059d61ba09fa37dd72ac559Ben MurdochTestCursorControl::TestCursorControl(TestingInstance* instance) 1410f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch : TestCase(instance), 1510f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch cursor_control_interface_(NULL) { 1610f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch} 1710f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch 1810f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdochbool TestCursorControl::Init() { 1910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch cursor_control_interface_ = static_cast<const PPB_CursorControl_Dev*>( 2010f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch pp::Module::Get()->GetBrowserInterface(PPB_CURSOR_CONTROL_DEV_INTERFACE)); 21e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) return !!cursor_control_interface_; 2210f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch} 2310f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch 2410f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdochvoid TestCursorControl::RunTests(const std::string& filter) { 2510f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch RUN_TEST(SetCursor, filter); 2610f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch} 2710f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch 2810f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdochstd::string TestCursorControl::TestSetCursor() { 2910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch // Very simplistic test to make sure we can actually call the function and 3010f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch // it reports success. This is a nice integration test to make sure the 3110f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch // interface is hooked up. Obviously it's not easy in a plugin to test whether 3210f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch // the mouse cursor actually changed. 3310f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch ASSERT_TRUE(cursor_control_interface_->SetCursor(instance_->pp_instance(), 3410f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch PP_CURSORTYPE_WAIT, 0, NULL)); 3510f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch 3610f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch PASS(); 37e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)} 3810f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch