1 // Copyright (c) 2011 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. 4 5 #include "ppapi/tests/test_scrollbar.h" 6 7 #include <cstring> 8 9 #include "ppapi/c/dev/ppb_testing_dev.h" 10 #include "ppapi/c/pp_input_event.h" 11 #include "ppapi/cpp/input_event.h" 12 #include "ppapi/cpp/instance.h" 13 #include "ppapi/cpp/rect.h" 14 #include "ppapi/tests/testing_instance.h" 15 16 REGISTER_TEST_CASE(Scrollbar); 17 18 TestScrollbar::TestScrollbar(TestingInstance* instance) 19 : TestCase(instance), 20 WidgetClient_Dev(instance), 21 scrollbar_(instance, true), 22 scrollbar_value_changed_(false) { 23 } 24 25 bool TestScrollbar::Init() { 26 return CheckTestingInterface(); 27 } 28 29 void TestScrollbar::RunTests(const std::string& filter) { 30 RUN_TEST(HandleEvent, filter); 31 } 32 33 std::string TestScrollbar::TestHandleEvent() { 34 pp::Rect location; 35 location.set_width(1000); 36 location.set_height(1000); 37 scrollbar_.SetLocation(location); 38 39 scrollbar_.SetDocumentSize(10000); 40 41 pp::Core* core = pp::Module::Get()->core(); 42 pp::KeyboardInputEvent input_event( 43 instance_, PP_INPUTEVENT_TYPE_KEYDOWN, 44 core->GetTimeTicks(), 45 0, // Modifier. 46 0x28, // Key code = VKEY_DOWN. 47 pp::Var()); 48 scrollbar_.HandleEvent(input_event); 49 50 return scrollbar_value_changed_ ? 51 "" : "Didn't get callback for scrollbar value change"; 52 } 53 54 void TestScrollbar::InvalidateWidget(pp::Widget_Dev widget, 55 const pp::Rect& dirty_rect) { 56 } 57 58 void TestScrollbar::ScrollbarValueChanged(pp::Scrollbar_Dev scrollbar, 59 uint32_t value) { 60 if (scrollbar == scrollbar_) 61 scrollbar_value_changed_ = true; 62 } 63 64 void TestScrollbar::ScrollbarOverlayChanged(pp::Scrollbar_Dev scrollbar, 65 bool type) { 66 } 67