| Index: ppapi/native_client/tests/ppapi_browser/ppb_instance/ppapi_ppb_instance.cc
|
| ===================================================================
|
| --- ppapi/native_client/tests/ppapi_browser/ppb_instance/ppapi_ppb_instance.cc (revision 0)
|
| +++ ppapi/native_client/tests/ppapi_browser/ppb_instance/ppapi_ppb_instance.cc (revision 0)
|
| @@ -0,0 +1,81 @@
|
| +// Copyright (c) 2011 The Native Client 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 "native_client/src/shared/platform/nacl_check.h"
|
| +#include "native_client/tests/ppapi_test_lib/get_browser_interface.h"
|
| +#include "native_client/tests/ppapi_test_lib/test_interface.h"
|
| +
|
| +#include "ppapi/c/pp_size.h"
|
| +#include "ppapi/c/ppb_image_data.h"
|
| +#include "ppapi/c/ppb_instance.h"
|
| +#include "ppapi/c/ppb_graphics_2d.h"
|
| +
|
| +namespace {
|
| +
|
| +
|
| +// Tests PPB_Instance::IsFullFrame().
|
| +void TestIsFullFrame() {
|
| + // Note: IsFullFrame returning PP_TRUE is only possible when a plugin
|
| + // is a content handler. For coverage, see:
|
| + // tests/ppapi_browser/extension_mime_handler/
|
| + PP_Bool full_frame = PPBInstance()->IsFullFrame(pp_instance());
|
| + EXPECT(full_frame == PP_FALSE);
|
| +
|
| + full_frame = PPBInstance()->IsFullFrame(kInvalidInstance);
|
| + EXPECT(full_frame == PP_FALSE);
|
| +
|
| + TEST_PASSED;
|
| +}
|
| +
|
| +void TestBindGraphics() {
|
| + PP_Size size = PP_MakeSize(100, 100);
|
| +
|
| + PP_Resource graphics1 = PPBGraphics2D()->Create(
|
| + pp_instance(), &size, PP_TRUE);
|
| + PP_Resource graphics2 = PPBGraphics2D()->Create(
|
| + pp_instance(), &size, PP_TRUE);
|
| +
|
| + EXPECT(graphics1 != kInvalidResource);
|
| + EXPECT(graphics2 != kInvalidResource);
|
| +
|
| + PP_Bool ret = PPBInstance()->BindGraphics(pp_instance(), graphics1);
|
| + EXPECT(ret == PP_TRUE);
|
| +
|
| + // We should be allowed to replace one device with another.
|
| + ret = PPBInstance()->BindGraphics(pp_instance(), graphics2);
|
| + EXPECT(ret == PP_TRUE);
|
| +
|
| + // This should fail because instance is not valid.
|
| + ret = PPBInstance()->BindGraphics(kInvalidInstance, graphics1);
|
| + EXPECT(ret == PP_FALSE);
|
| +
|
| + // This should fail because instance is not valid and graphics2 is bound.
|
| + ret = PPBInstance()->BindGraphics(kInvalidInstance, graphics2);
|
| + EXPECT(ret == PP_FALSE);
|
| +
|
| + // This is not a failure, binding resource 0 simply unbinds all devices.
|
| + ret = PPBInstance()->BindGraphics(pp_instance(), kInvalidResource);
|
| + EXPECT(ret == PP_TRUE);
|
| +
|
| + PP_Resource image_data = PPBImageData()->Create(
|
| + pp_instance(), PP_IMAGEDATAFORMAT_RGBA_PREMUL, &size, PP_FALSE);
|
| + EXPECT(image_data != kInvalidResource);
|
| +
|
| + // This should fail because the resource is the wrong type.
|
| + ret = PPBInstance()->BindGraphics(pp_instance(), image_data);
|
| + EXPECT(ret == PP_FALSE);
|
| +
|
| + TEST_PASSED;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +void SetupTests() {
|
| + RegisterTest("TestIsFullFrame", TestIsFullFrame);
|
| + RegisterTest("TestBindGraphics", TestBindGraphics);
|
| +}
|
| +
|
| +void SetupPluginInterfaces() {
|
| + // none
|
| +}
|
|
|