• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 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 "fake_ppapi/fake_var_array_buffer_interface.h"
6 
7 #include "fake_ppapi/fake_var_manager.h"
8 #include "gtest/gtest.h"
9 
FakeVarArrayBufferInterface(FakeVarManager * manager)10 FakeVarArrayBufferInterface::FakeVarArrayBufferInterface(
11     FakeVarManager* manager) : manager_(manager) {}
12 
Create(uint32_t size_in_bytes)13 struct PP_Var FakeVarArrayBufferInterface::Create(uint32_t size_in_bytes) {
14   FakeVarData* var_data = manager_->CreateVarData();
15   var_data->type = PP_VARTYPE_ARRAY_BUFFER;
16   var_data->buffer_value.length = size_in_bytes;
17   var_data->buffer_value.ptr = malloc(size_in_bytes);
18 
19   struct PP_Var result = {PP_VARTYPE_ARRAY_BUFFER, 0, {PP_FALSE}};
20   result.value.as_id = var_data->id;
21   return result;
22 }
23 
ByteLength(struct PP_Var var,uint32_t * byte_length)24 PP_Bool FakeVarArrayBufferInterface::ByteLength(struct PP_Var var,
25                                                 uint32_t* byte_length) {
26   EXPECT_EQ(PP_VARTYPE_ARRAY_BUFFER, var.type);
27   FakeVarData* data = manager_->GetVarData(var);
28   EXPECT_NE(static_cast<FakeVarData*>(NULL), data);
29   *byte_length = data->buffer_value.length;
30   return PP_TRUE;
31 }
32 
Map(struct PP_Var var)33 void* FakeVarArrayBufferInterface::Map(struct PP_Var var) {
34   EXPECT_EQ(PP_VARTYPE_ARRAY_BUFFER, var.type);
35   FakeVarData* data = manager_->GetVarData(var);
36   EXPECT_NE(static_cast<FakeVarData*>(NULL), data);
37   return data->buffer_value.ptr;
38 }
39 
Unmap(struct PP_Var var)40 void FakeVarArrayBufferInterface::Unmap(struct PP_Var var) {
41   ASSERT_EQ(PP_VARTYPE_ARRAY_BUFFER, var.type);
42 }
43