aboutsummaryrefslogtreecommitdiff
path: root/core/fpdfapi/render/cpdf_docrenderdata_unittest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/render/cpdf_docrenderdata_unittest.cpp')
-rw-r--r--core/fpdfapi/render/cpdf_docrenderdata_unittest.cpp145
1 files changed, 69 insertions, 76 deletions
diff --git a/core/fpdfapi/render/cpdf_docrenderdata_unittest.cpp b/core/fpdfapi/render/cpdf_docrenderdata_unittest.cpp
index 2fb25b6c9..df7bb1cc4 100644
--- a/core/fpdfapi/render/cpdf_docrenderdata_unittest.cpp
+++ b/core/fpdfapi/render/cpdf_docrenderdata_unittest.cpp
@@ -1,9 +1,10 @@
-// Copyright 2018 PDFium Authors. All rights reserved.
+// Copyright 2018 The PDFium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "core/fpdfapi/render/cpdf_docrenderdata.h"
+#include <iterator>
#include <memory>
#include <utility>
@@ -12,9 +13,8 @@
#include "core/fpdfapi/parser/cpdf_dictionary.h"
#include "core/fpdfapi/parser/cpdf_number.h"
#include "core/fpdfapi/parser/cpdf_stream.h"
-#include "core/fxcrt/fx_memory_wrappers.h"
+#include "core/fxcrt/data_vector.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/base/ptr_util.h"
namespace {
@@ -73,26 +73,23 @@ constexpr uint8_t kExpectedType4FunctionSamples[] = {
RetainPtr<CPDF_Stream> CreateType0FunctionStream() {
auto func_dict = pdfium::MakeRetain<CPDF_Dictionary>();
func_dict->SetNewFor<CPDF_Number>("FunctionType", 0);
+ func_dict->SetNewFor<CPDF_Number>("BitsPerSample", 8);
- CPDF_Array* domain_array = func_dict->SetNewFor<CPDF_Array>("Domain");
- domain_array->AddNew<CPDF_Number>(0);
- domain_array->AddNew<CPDF_Number>(1);
-
- CPDF_Array* range_array = func_dict->SetNewFor<CPDF_Array>("Range");
- range_array->AddNew<CPDF_Number>(0);
- range_array->AddNew<CPDF_Number>(0.5f);
+ auto domain_array = func_dict->SetNewFor<CPDF_Array>("Domain");
+ domain_array->AppendNew<CPDF_Number>(0);
+ domain_array->AppendNew<CPDF_Number>(1);
- CPDF_Array* size_array = func_dict->SetNewFor<CPDF_Array>("Size");
- size_array->AddNew<CPDF_Number>(4);
+ auto range_array = func_dict->SetNewFor<CPDF_Array>("Range");
+ range_array->AppendNew<CPDF_Number>(0);
+ range_array->AppendNew<CPDF_Number>(0.5f);
- func_dict->SetNewFor<CPDF_Number>("BitsPerSample", 8);
+ auto size_array = func_dict->SetNewFor<CPDF_Array>("Size");
+ size_array->AppendNew<CPDF_Number>(4);
- static const char content[] = "1234";
- size_t len = FX_ArraySize(content);
- std::unique_ptr<uint8_t, FxFreeDeleter> buf(FX_Alloc(uint8_t, len));
- memcpy(buf.get(), content, len);
- return pdfium::MakeRetain<CPDF_Stream>(std::move(buf), len,
- std::move(func_dict));
+ static constexpr uint8_t kContents[] = "1234";
+ return pdfium::MakeRetain<CPDF_Stream>(
+ DataVector<uint8_t>(std::begin(kContents), std::end(kContents)),
+ std::move(func_dict));
}
RetainPtr<CPDF_Dictionary> CreateType2FunctionDict() {
@@ -100,19 +97,19 @@ RetainPtr<CPDF_Dictionary> CreateType2FunctionDict() {
func_dict->SetNewFor<CPDF_Number>("FunctionType", 2);
func_dict->SetNewFor<CPDF_Number>("N", 1);
- CPDF_Array* domain_array = func_dict->SetNewFor<CPDF_Array>("Domain");
- domain_array->AddNew<CPDF_Number>(0);
- domain_array->AddNew<CPDF_Number>(1);
+ auto domain_array = func_dict->SetNewFor<CPDF_Array>("Domain");
+ domain_array->AppendNew<CPDF_Number>(0);
+ domain_array->AppendNew<CPDF_Number>(1);
- CPDF_Array* c0_array = func_dict->SetNewFor<CPDF_Array>("C0");
- c0_array->AddNew<CPDF_Number>(0.1f);
- c0_array->AddNew<CPDF_Number>(0.2f);
- c0_array->AddNew<CPDF_Number>(0.8f);
+ auto c0_array = func_dict->SetNewFor<CPDF_Array>("C0");
+ c0_array->AppendNew<CPDF_Number>(0.1f);
+ c0_array->AppendNew<CPDF_Number>(0.2f);
+ c0_array->AppendNew<CPDF_Number>(0.8f);
- CPDF_Array* c1_array = func_dict->SetNewFor<CPDF_Array>("C1");
- c1_array->AddNew<CPDF_Number>(0.05f);
- c1_array->AddNew<CPDF_Number>(0.01f);
- c1_array->AddNew<CPDF_Number>(0.4f);
+ auto c1_array = func_dict->SetNewFor<CPDF_Array>("C1");
+ c1_array->AppendNew<CPDF_Number>(0.05f);
+ c1_array->AppendNew<CPDF_Number>(0.01f);
+ c1_array->AppendNew<CPDF_Number>(0.4f);
return func_dict;
}
@@ -121,49 +118,45 @@ RetainPtr<CPDF_Stream> CreateType4FunctionStream() {
auto func_dict = pdfium::MakeRetain<CPDF_Dictionary>();
func_dict->SetNewFor<CPDF_Number>("FunctionType", 4);
- CPDF_Array* domain_array = func_dict->SetNewFor<CPDF_Array>("Domain");
- domain_array->AddNew<CPDF_Number>(0);
- domain_array->AddNew<CPDF_Number>(1);
+ auto domain_array = func_dict->SetNewFor<CPDF_Array>("Domain");
+ domain_array->AppendNew<CPDF_Number>(0);
+ domain_array->AppendNew<CPDF_Number>(1);
- CPDF_Array* range_array = func_dict->SetNewFor<CPDF_Array>("Range");
- range_array->AddNew<CPDF_Number>(-1);
- range_array->AddNew<CPDF_Number>(1);
+ auto range_array = func_dict->SetNewFor<CPDF_Array>("Range");
+ range_array->AppendNew<CPDF_Number>(-1);
+ range_array->AppendNew<CPDF_Number>(1);
- static const char content[] = "{ 360 mul sin 2 div }";
- size_t len = FX_ArraySize(content);
- std::unique_ptr<uint8_t, FxFreeDeleter> buf(FX_Alloc(uint8_t, len));
- memcpy(buf.get(), content, len);
- return pdfium::MakeRetain<CPDF_Stream>(std::move(buf), len,
- std::move(func_dict));
+ static constexpr uint8_t kContents[] = "{ 360 mul sin 2 div }";
+ return pdfium::MakeRetain<CPDF_Stream>(
+ DataVector<uint8_t>(std::begin(kContents), std::end(kContents)),
+ std::move(func_dict));
}
RetainPtr<CPDF_Stream> CreateBadType4FunctionStream() {
auto func_dict = pdfium::MakeRetain<CPDF_Dictionary>();
func_dict->SetNewFor<CPDF_Number>("FunctionType", 4);
- CPDF_Array* domain_array = func_dict->SetNewFor<CPDF_Array>("Domain");
- domain_array->AddNew<CPDF_Number>(0);
- domain_array->AddNew<CPDF_Number>(1);
+ auto domain_array = func_dict->SetNewFor<CPDF_Array>("Domain");
+ domain_array->AppendNew<CPDF_Number>(0);
+ domain_array->AppendNew<CPDF_Number>(1);
- CPDF_Array* range_array = func_dict->SetNewFor<CPDF_Array>("Range");
- range_array->AddNew<CPDF_Number>(-1);
- range_array->AddNew<CPDF_Number>(1);
+ auto range_array = func_dict->SetNewFor<CPDF_Array>("Range");
+ range_array->AppendNew<CPDF_Number>(-1);
+ range_array->AppendNew<CPDF_Number>(1);
- static const char content[] = "garbage";
- size_t len = FX_ArraySize(content);
- std::unique_ptr<uint8_t, FxFreeDeleter> buf(FX_Alloc(uint8_t, len));
- memcpy(buf.get(), content, len);
- return pdfium::MakeRetain<CPDF_Stream>(std::move(buf), len,
- std::move(func_dict));
+ static constexpr uint8_t kContents[] = "garbage";
+ return pdfium::MakeRetain<CPDF_Stream>(
+ DataVector<uint8_t>(std::begin(kContents), std::end(kContents)),
+ std::move(func_dict));
}
class TestDocRenderData : public CPDF_DocRenderData {
public:
- TestDocRenderData() : CPDF_DocRenderData() {}
+ TestDocRenderData() = default;
RetainPtr<CPDF_TransferFunc> CreateTransferFuncForTesting(
- const CPDF_Object* pObj) const {
- return CreateTransferFunc(pObj);
+ RetainPtr<const CPDF_Object> pObj) const {
+ return CreateTransferFunc(std::move(pObj));
}
};
@@ -171,18 +164,18 @@ TEST(CPDF_DocRenderDataTest, TransferFunctionOne) {
RetainPtr<CPDF_Dictionary> func_dict = CreateType2FunctionDict();
TestDocRenderData render_data;
- auto func = render_data.CreateTransferFuncForTesting(func_dict.Get());
+ auto func = render_data.CreateTransferFuncForTesting(func_dict);
ASSERT_TRUE(func);
EXPECT_FALSE(func->GetIdentity());
auto r_samples = func->GetSamplesR();
auto g_samples = func->GetSamplesG();
auto b_samples = func->GetSamplesB();
- ASSERT_EQ(FX_ArraySize(kExpectedType2FunctionSamples), r_samples.size());
- ASSERT_EQ(FX_ArraySize(kExpectedType2FunctionSamples), g_samples.size());
- ASSERT_EQ(FX_ArraySize(kExpectedType2FunctionSamples), b_samples.size());
+ ASSERT_EQ(std::size(kExpectedType2FunctionSamples), r_samples.size());
+ ASSERT_EQ(std::size(kExpectedType2FunctionSamples), g_samples.size());
+ ASSERT_EQ(std::size(kExpectedType2FunctionSamples), b_samples.size());
- for (size_t i = 0; i < FX_ArraySize(kExpectedType2FunctionSamples); ++i) {
+ for (size_t i = 0; i < std::size(kExpectedType2FunctionSamples); ++i) {
EXPECT_EQ(kExpectedType2FunctionSamples[i], r_samples[i]);
EXPECT_EQ(kExpectedType2FunctionSamples[i], g_samples[i]);
EXPECT_EQ(kExpectedType2FunctionSamples[i], b_samples[i]);
@@ -202,23 +195,23 @@ TEST(CPDF_DocRenderDataTest, TransferFunctionOne) {
TEST(CPDF_DocRenderDataTest, TransferFunctionArray) {
auto func_array = pdfium::MakeRetain<CPDF_Array>();
- func_array->Add(CreateType0FunctionStream());
- func_array->Add(CreateType2FunctionDict());
- func_array->Add(CreateType4FunctionStream());
+ func_array->Append(CreateType0FunctionStream());
+ func_array->Append(CreateType2FunctionDict());
+ func_array->Append(CreateType4FunctionStream());
TestDocRenderData render_data;
- auto func = render_data.CreateTransferFuncForTesting(func_array.Get());
+ auto func = render_data.CreateTransferFuncForTesting(func_array);
ASSERT_TRUE(func);
EXPECT_FALSE(func->GetIdentity());
auto r_samples = func->GetSamplesR();
auto g_samples = func->GetSamplesG();
auto b_samples = func->GetSamplesB();
- ASSERT_EQ(FX_ArraySize(kExpectedType0FunctionSamples), r_samples.size());
- ASSERT_EQ(FX_ArraySize(kExpectedType2FunctionSamples), g_samples.size());
- ASSERT_EQ(FX_ArraySize(kExpectedType4FunctionSamples), b_samples.size());
+ ASSERT_EQ(std::size(kExpectedType0FunctionSamples), r_samples.size());
+ ASSERT_EQ(std::size(kExpectedType2FunctionSamples), g_samples.size());
+ ASSERT_EQ(std::size(kExpectedType4FunctionSamples), b_samples.size());
- for (size_t i = 0; i < FX_ArraySize(kExpectedType2FunctionSamples); ++i) {
+ for (size_t i = 0; i < std::size(kExpectedType2FunctionSamples); ++i) {
EXPECT_EQ(kExpectedType0FunctionSamples[i], r_samples[i]);
EXPECT_EQ(kExpectedType2FunctionSamples[i], g_samples[i]);
EXPECT_EQ(kExpectedType4FunctionSamples[i], b_samples[i]);
@@ -241,7 +234,7 @@ TEST(CPDF_DocRenderDataTest, BadTransferFunctions) {
auto func_stream = CreateBadType4FunctionStream();
TestDocRenderData render_data;
- auto func = render_data.CreateTransferFuncForTesting(func_stream.Get());
+ auto func = render_data.CreateTransferFuncForTesting(func_stream);
EXPECT_FALSE(func);
}
@@ -249,18 +242,18 @@ TEST(CPDF_DocRenderDataTest, BadTransferFunctions) {
auto func_array = pdfium::MakeRetain<CPDF_Array>();
TestDocRenderData render_data;
- auto func = render_data.CreateTransferFuncForTesting(func_array.Get());
+ auto func = render_data.CreateTransferFuncForTesting(func_array);
EXPECT_FALSE(func);
}
{
auto func_array = pdfium::MakeRetain<CPDF_Array>();
- func_array->Add(CreateType0FunctionStream());
- func_array->Add(CreateType2FunctionDict());
- func_array->Add(CreateBadType4FunctionStream());
+ func_array->Append(CreateType0FunctionStream());
+ func_array->Append(CreateType2FunctionDict());
+ func_array->Append(CreateBadType4FunctionStream());
TestDocRenderData render_data;
- auto func = render_data.CreateTransferFuncForTesting(func_array.Get());
+ auto func = render_data.CreateTransferFuncForTesting(func_array);
EXPECT_FALSE(func);
}
}