// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "ppapi/tests/test_scrollbar.h" #include #include "ppapi/c/pp_input_event.h" #include "ppapi/cpp/input_event.h" #include "ppapi/cpp/instance.h" #include "ppapi/cpp/rect.h" #include "ppapi/tests/testing_instance.h" REGISTER_TEST_CASE(Scrollbar); TestScrollbar::TestScrollbar(TestingInstance* instance) : TestCase(instance), WidgetClient_Dev(instance), scrollbar_(instance, true), scrollbar_value_changed_(false) { } bool TestScrollbar::Init() { return CheckTestingInterface(); } void TestScrollbar::RunTests(const std::string& filter) { RUN_TEST(HandleEvent, filter); } std::string TestScrollbar::TestHandleEvent() { pp::Rect location; location.set_width(1000); location.set_height(1000); scrollbar_.SetLocation(location); scrollbar_.SetDocumentSize(10000); pp::Core* core = pp::Module::Get()->core(); pp::KeyboardInputEvent input_event( instance_, PP_INPUTEVENT_TYPE_KEYDOWN, core->GetTimeTicks(), 0, // Modifier. 0x28, // Key code = VKEY_DOWN. pp::Var(), pp::Var("ArrowDown")); scrollbar_.HandleEvent(input_event); return scrollbar_value_changed_ ? "" : "Didn't get callback for scrollbar value change"; } void TestScrollbar::InvalidateWidget(pp::Widget_Dev widget, const pp::Rect& dirty_rect) { } void TestScrollbar::ScrollbarValueChanged(pp::Scrollbar_Dev scrollbar, uint32_t value) { if (scrollbar == scrollbar_) scrollbar_value_changed_ = true; } void TestScrollbar::ScrollbarOverlayChanged(pp::Scrollbar_Dev scrollbar, bool type) { }