| // 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 <cstring> |
| |
| #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) { |
| } |