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); |