Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(703)

Unified Diff: tests/PDFPrimitivesTest.cpp

Issue 1049753002: SkPDF: Factor SkPDFCatalog into SkPDFObjNumMap and SkPDFSubstituteMap (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: full Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« src/pdf/SkPDFStream.cpp ('K') | « src/pdf/SkPDFTypes.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/PDFPrimitivesTest.cpp
diff --git a/tests/PDFPrimitivesTest.cpp b/tests/PDFPrimitivesTest.cpp
index e361554f7a7dc3b90702a999864175b58e73754e..a98aacbb8f2b47fcae5713b2b71a057d89002a4d 100644
--- a/tests/PDFPrimitivesTest.cpp
+++ b/tests/PDFPrimitivesTest.cpp
@@ -13,7 +13,6 @@
#include "SkImageEncoder.h"
#include "SkMatrix.h"
#include "SkPDFCanon.h"
-#include "SkPDFCatalog.h"
#include "SkPDFDevice.h"
#include "SkPDFStream.h"
#include "SkPDFTypes.h"
@@ -36,36 +35,39 @@ static bool stream_equals(const SkDynamicMemoryWStream& stream, size_t offset,
static void emit_object(SkPDFObject* object,
SkWStream* stream,
- SkPDFCatalog* catalog,
+ const SkPDFObjNumMap& objNumMap,
+ const SkPDFSubstituteMap& substitutes,
bool indirect) {
- SkPDFObject* realObject = catalog->getSubstituteObject(object);
+ SkPDFObject* realObject = substitutes.getSubstitute(object);
if (indirect) {
- stream->writeDecAsText(catalog->getObjectNumber(object));
+ stream->writeDecAsText(objNumMap.getObjectNumber(realObject));
stream->writeText(" 0 obj\n"); // Generation number is always 0.
- realObject->emitObject(stream, catalog);
+ realObject->emitObject(stream, objNumMap, substitutes);
stream->writeText("\nendobj\n");
} else {
- realObject->emitObject(stream, catalog);
+ realObject->emitObject(stream, objNumMap, substitutes);
}
}
static size_t get_output_size(SkPDFObject* object,
- SkPDFCatalog* catalog,
+ const SkPDFObjNumMap& objNumMap,
+ const SkPDFSubstituteMap& substitutes,
bool indirect) {
SkDynamicMemoryWStream buffer;
- emit_object(object, &buffer, catalog, indirect);
+ emit_object(object, &buffer, objNumMap, substitutes, indirect);
return buffer.getOffset();
}
static void CheckObjectOutput(skiatest::Reporter* reporter, SkPDFObject* obj,
const char* expectedData, size_t expectedSize,
bool indirect) {
- SkPDFCatalog catalog;
- size_t directSize = get_output_size(obj, &catalog, false);
+ SkPDFSubstituteMap substituteMap;
+ SkPDFObjNumMap catalog;
+ size_t directSize = get_output_size(obj, catalog, substituteMap, false);
REPORTER_ASSERT(reporter, directSize == expectedSize);
SkDynamicMemoryWStream buffer;
- emit_object(obj, &buffer, &catalog, false);
+ emit_object(obj, &buffer, catalog, substituteMap, false);
REPORTER_ASSERT(reporter, directSize == buffer.getOffset());
REPORTER_ASSERT(reporter, stream_equals(buffer, 0, expectedData,
directSize));
@@ -79,12 +81,13 @@ static void CheckObjectOutput(skiatest::Reporter* reporter, SkPDFObject* obj,
catalog.addObject(obj);
- size_t indirectSize = get_output_size(obj, &catalog, true);
+ size_t indirectSize =
+ get_output_size(obj, catalog, substituteMap, true);
REPORTER_ASSERT(reporter,
indirectSize == directSize + headerLen + footerLen);
buffer.reset();
- emit_object(obj, &buffer, &catalog, true);
+ emit_object(obj, &buffer, catalog, substituteMap, true);
REPORTER_ASSERT(reporter, indirectSize == buffer.getOffset());
REPORTER_ASSERT(reporter, stream_equals(buffer, 0, header, headerLen));
REPORTER_ASSERT(reporter, stream_equals(buffer, headerLen, expectedData,
@@ -108,10 +111,10 @@ static void TestPDFStream(skiatest::Reporter* reporter) {
SkAutoTUnref<SkPDFStream> stream(new SkPDFStream(streamData.get()));
SimpleCheckObjectOutput(
reporter, stream.get(),
- "<</Length 12\n>> stream\nTest\nFoo\tBar\nendstream");
+ "<</Length 12>> stream\nTest\nFoo\tBar\nendstream");
stream->insert("Attribute", new SkPDFInt(42))->unref();
SimpleCheckObjectOutput(reporter, stream.get(),
- "<</Length 12\n/Attribute 42\n>> stream\n"
+ "<</Length 12\n/Attribute 42>> stream\n"
"Test\nFoo\tBar\nendstream");
{
@@ -128,8 +131,7 @@ static void TestPDFStream(skiatest::Reporter* reporter) {
SkAutoDataUnref compressedData(compressedByteStream.copyToData());
SkDynamicMemoryWStream expected;
- expected.writeText("<</Filter /FlateDecode\n/Length 116\n"
- ">> stream\n");
+ expected.writeText("<</Filter /FlateDecode\n/Length 116>> stream\n");
expected.write(compressedData->data(), compressedData->size());
expected.writeText("\nendstream");
SkAutoDataUnref expectedResultData2(expected.copyToData());
@@ -140,7 +142,8 @@ static void TestPDFStream(skiatest::Reporter* reporter) {
}
static void TestCatalog(skiatest::Reporter* reporter) {
- SkPDFCatalog catalog;
+ SkPDFSubstituteMap substituteMap;
+ SkPDFObjNumMap catalog;
SkAutoTUnref<SkPDFInt> int1(new SkPDFInt(1));
SkAutoTUnref<SkPDFInt> int2(new SkPDFInt(2));
SkAutoTUnref<SkPDFInt> int3(new SkPDFInt(3));
@@ -162,7 +165,8 @@ static void TestObjectRef(skiatest::Reporter* reporter) {
SkAutoTUnref<SkPDFInt> int2(new SkPDFInt(2));
SkAutoTUnref<SkPDFObjRef> int2ref(new SkPDFObjRef(int2.get()));
- SkPDFCatalog catalog;
+ SkPDFSubstituteMap substituteMap;
+ SkPDFObjNumMap catalog;
catalog.addObject(int1.get());
catalog.addObject(int2.get());
REPORTER_ASSERT(reporter, catalog.getObjectNumber(int1.get()) == 1);
@@ -170,7 +174,7 @@ static void TestObjectRef(skiatest::Reporter* reporter) {
char expectedResult[] = "2 0 R";
SkDynamicMemoryWStream buffer;
- int2ref->emitObject(&buffer, &catalog);
+ int2ref->emitObject(&buffer, catalog, substituteMap);
REPORTER_ASSERT(reporter, buffer.getOffset() == strlen(expectedResult));
REPORTER_ASSERT(reporter, stream_equals(buffer, 0, expectedResult,
buffer.getOffset()));
@@ -183,12 +187,13 @@ static void TestSubstitute(skiatest::Reporter* reporter) {
proxy->insert("Value", new SkPDFInt(33))->unref();
stub->insert("Value", new SkPDFInt(44))->unref();
- SkPDFCatalog catalog;
+ SkPDFSubstituteMap substituteMap;
+ substituteMap.setSubstitute(proxy.get(), stub.get());
+ SkPDFObjNumMap catalog;
catalog.addObject(proxy.get());
- catalog.setSubstitute(proxy.get(), stub.get());
- REPORTER_ASSERT(reporter, stub.get() == catalog.getSubstituteObject(proxy));
- REPORTER_ASSERT(reporter, proxy.get() != catalog.getSubstituteObject(stub));
+ REPORTER_ASSERT(reporter, stub.get() == substituteMap.getSubstitute(proxy));
+ REPORTER_ASSERT(reporter, proxy.get() != substituteMap.getSubstitute(stub));
}
// This test used to assert without the fix submitted for
@@ -272,13 +277,13 @@ DEF_TEST(PDFPrimitives, reporter) {
SimpleCheckObjectOutput(reporter, dict.get(), "<<>>");
SkAutoTUnref<SkPDFName> n1(new SkPDFName("n1"));
dict->insert(n1.get(), int42.get());
- SimpleCheckObjectOutput(reporter, dict.get(), "<</n1 42\n>>");
+ SimpleCheckObjectOutput(reporter, dict.get(), "<</n1 42>>");
SkAutoTUnref<SkPDFName> n2(new SkPDFName("n2"));
SkAutoTUnref<SkPDFName> n3(new SkPDFName("n3"));
dict->insert(n2.get(), realHalf.get());
dict->insert(n3.get(), array.get());
SimpleCheckObjectOutput(reporter, dict.get(),
- "<</n1 42\n/n2 0.5\n/n3 [1 0.5 0]\n>>");
+ "<</n1 42\n/n2 0.5\n/n3 [1 0.5 0]>>");
TestPDFStream(reporter);
« src/pdf/SkPDFStream.cpp ('K') | « src/pdf/SkPDFTypes.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698