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/pp_input_event.h" 10 #include "ppapi/cpp/input_event.h" 11 #include "ppapi/cpp/instance.h" 12 #include "ppapi/cpp/rect.h" 13 #include "ppapi/tests/testing_instance.h" 14 15 REGISTER_TEST_CASE(Scrollbar); 16 17 TestScrollbar::TestScrollbar(TestingInstance* instance) 18 : TestCase(instance), 19 WidgetClient_Dev(instance), 20 scrollbar_(instance, true), 21 scrollbar_value_changed_(false) { 22 } 23 24 bool TestScrollbar::Init() { 25 return CheckTestingInterface(); 26 } 27 28 void TestScrollbar::RunTests(const std::string& filter) { 29 RUN_TEST(HandleEvent, filter); 30 } 31 32 std::string TestScrollbar::TestHandleEvent() { 33 pp::Rect location; 34 location.set_width(1000); 35 location.set_height(1000); 36 scrollbar_.SetLocation(location); 37 38 scrollbar_.SetDocumentSize(10000); 39 40 pp::Core* core = pp::Module::Get()->core(); 41 pp::KeyboardInputEvent input_event( 42 instance_, PP_INPUTEVENT_TYPE_KEYDOWN, 43 core->GetTimeTicks(), 44 0, // Modifier. 45 0x28, // Key code = VKEY_DOWN. 46 pp::Var(), 47 pp::Var("ArrowDown")); 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