| Index: ppapi/tests/test_resource_array.cc
|
| diff --git a/ppapi/tests/test_resource_array.cc b/ppapi/tests/test_resource_array.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..333505ef65f05448b94bba37c5b9c07ce016352a
|
| --- /dev/null
|
| +++ b/ppapi/tests/test_resource_array.cc
|
| @@ -0,0 +1,123 @@
|
| +// Copyright (c) 2012 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_resource_array.h"
|
| +
|
| +#include "ppapi/cpp/dev/resource_array_dev.h"
|
| +#include "ppapi/cpp/image_data.h"
|
| +#include "ppapi/cpp/input_event.h"
|
| +#include "ppapi/tests/testing_instance.h"
|
| +
|
| +REGISTER_TEST_CASE(ResourceArray);
|
| +
|
| +namespace {
|
| +
|
| +pp::InputEvent CreateMouseEvent(pp::Instance* instance,
|
| + PP_InputEvent_Type type,
|
| + PP_InputEvent_MouseButton buttons) {
|
| + return pp::MouseInputEvent(
|
| + instance,
|
| + type,
|
| + 100, // time_stamp
|
| + 0, // modifiers
|
| + buttons,
|
| + pp::Point(), // position
|
| + 1, // click count
|
| + pp::Point()); // movement
|
| +}
|
| +
|
| +pp::ImageData CreateImageData(pp::Instance* instance) {
|
| + return pp::ImageData(
|
| + instance,
|
| + PP_IMAGEDATAFORMAT_RGBA_PREMUL,
|
| + pp::Size(1, 1),
|
| + true);
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +TestResourceArray::TestResourceArray(TestingInstance* instance)
|
| + : TestCase(instance) {
|
| +}
|
| +
|
| +TestResourceArray::~TestResourceArray() {
|
| +}
|
| +
|
| +void TestResourceArray::RunTests(const std::string& filter) {
|
| + RUN_TEST(Basics, filter);
|
| + RUN_TEST(OutOfRangeAccess, filter);
|
| + RUN_TEST(EmptyArray, filter);
|
| + RUN_TEST(InvalidElement, filter);
|
| +}
|
| +
|
| +std::string TestResourceArray::TestBasics() {
|
| + pp::InputEvent mouse_event_1 = CreateMouseEvent(
|
| + instance_, PP_INPUTEVENT_TYPE_MOUSEDOWN, PP_INPUTEVENT_MOUSEBUTTON_LEFT);
|
| + pp::InputEvent mouse_event_2 = CreateMouseEvent(
|
| + instance_, PP_INPUTEVENT_TYPE_MOUSEUP, PP_INPUTEVENT_MOUSEBUTTON_RIGHT);
|
| + pp::ImageData image_data = CreateImageData(instance_);
|
| +
|
| + PP_Resource elements[] = {
|
| + mouse_event_1.pp_resource(),
|
| + mouse_event_2.pp_resource(),
|
| + image_data.pp_resource()
|
| + };
|
| + size_t size = sizeof(elements) / sizeof(elements[0]);
|
| +
|
| + pp::ResourceArray_Dev resource_array(instance_, elements, size);
|
| +
|
| + ASSERT_EQ(size, resource_array.size());
|
| + for (uint32_t index = 0; index < size; ++index)
|
| + ASSERT_EQ(elements[index], resource_array[index]);
|
| +
|
| + PASS();
|
| +}
|
| +
|
| +std::string TestResourceArray::TestOutOfRangeAccess() {
|
| + pp::InputEvent mouse_event_1 = CreateMouseEvent(
|
| + instance_, PP_INPUTEVENT_TYPE_MOUSEDOWN, PP_INPUTEVENT_MOUSEBUTTON_LEFT);
|
| + pp::InputEvent mouse_event_2 = CreateMouseEvent(
|
| + instance_, PP_INPUTEVENT_TYPE_MOUSEUP, PP_INPUTEVENT_MOUSEBUTTON_RIGHT);
|
| + pp::ImageData image_data = CreateImageData(instance_);
|
| +
|
| + PP_Resource elements[] = {
|
| + mouse_event_1.pp_resource(),
|
| + mouse_event_2.pp_resource(),
|
| + image_data.pp_resource()
|
| + };
|
| + size_t size = sizeof(elements) / sizeof(elements[0]);
|
| +
|
| + pp::ResourceArray_Dev resource_array(instance_, elements, size);
|
| + ASSERT_EQ(0, resource_array[size]);
|
| + ASSERT_EQ(0, resource_array[size + 1]);
|
| +
|
| + PASS();
|
| +}
|
| +
|
| +std::string TestResourceArray::TestEmptyArray() {
|
| + pp::ResourceArray_Dev resource_array(instance_, NULL, 0);
|
| + ASSERT_EQ(0, resource_array.size());
|
| + PASS();
|
| +}
|
| +
|
| +std::string TestResourceArray::TestInvalidElement() {
|
| + pp::InputEvent mouse_event = CreateMouseEvent(
|
| + instance_, PP_INPUTEVENT_TYPE_MOUSEDOWN, PP_INPUTEVENT_MOUSEBUTTON_LEFT);
|
| + pp::ImageData image_data = CreateImageData(instance_);
|
| +
|
| + PP_Resource elements[] = {
|
| + mouse_event.pp_resource(),
|
| + 0,
|
| + image_data.pp_resource()
|
| + };
|
| + size_t size = sizeof(elements) / sizeof(elements[0]);
|
| +
|
| + pp::ResourceArray_Dev resource_array(instance_, elements, size);
|
| +
|
| + ASSERT_EQ(size, resource_array.size());
|
| + for (uint32_t index = 0; index < size; ++index)
|
| + ASSERT_EQ(elements[index], resource_array[index]);
|
| +
|
| + PASS();
|
| +}
|
|
|