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

Unified Diff: tests/PDFPrimitivesTest.cpp

Issue 869783003: Cleanup SkPDFObject::emit* (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 11 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
« no previous file with comments | « 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 3610dd958101381a0ea6eb30e4b5a4671b88b212..f15f06090d7b10787e32f9f6498290224abcf127 100644
--- a/tests/PDFPrimitivesTest.cpp
+++ b/tests/PDFPrimitivesTest.cpp
@@ -69,6 +69,29 @@ static bool stream_contains(const SkDynamicMemoryWStream& stream,
return false;
}
+static void emit_object(SkPDFObject* object,
+ SkWStream* stream,
+ SkPDFCatalog* catalog,
+ bool indirect) {
+ SkPDFObject* realObject = catalog->getSubstituteObject(object);
+ if (indirect) {
+ catalog->emitObjectNumber(stream, realObject);
+ stream->writeText(" obj\n");
+ realObject->emitObject(stream, catalog);
+ stream->writeText("\nendobj\n");
+ } else {
+ realObject->emitObject(stream, catalog);
+ }
+}
+
+static size_t get_output_size(SkPDFObject* object,
+ SkPDFCatalog* catalog,
+ bool indirect) {
+ SkDynamicMemoryWStream buffer;
+ emit_object(object, &buffer, catalog, indirect);
+ return buffer.getOffset();
+}
+
static void CheckObjectOutput(skiatest::Reporter* reporter, SkPDFObject* obj,
const char* expectedData, size_t expectedSize,
bool indirect, bool compression) {
@@ -77,11 +100,11 @@ static void CheckObjectOutput(skiatest::Reporter* reporter, SkPDFObject* obj,
docFlags = SkTBitOr(docFlags, SkPDFDocument::kFavorSpeedOverSize_Flags);
}
SkPDFCatalog catalog(docFlags);
- size_t directSize = obj->getOutputSize(&catalog, false);
+ size_t directSize = get_output_size(obj, &catalog, false);
REPORTER_ASSERT(reporter, directSize == expectedSize);
SkDynamicMemoryWStream buffer;
- obj->emit(&buffer, &catalog, false);
+ emit_object(obj, &buffer, &catalog, false);
REPORTER_ASSERT(reporter, directSize == buffer.getOffset());
REPORTER_ASSERT(reporter, stream_equals(buffer, 0, expectedData,
directSize));
@@ -95,12 +118,12 @@ static void CheckObjectOutput(skiatest::Reporter* reporter, SkPDFObject* obj,
catalog.addObject(obj, false);
- size_t indirectSize = obj->getOutputSize(&catalog, true);
+ size_t indirectSize = get_output_size(obj, &catalog, true);
REPORTER_ASSERT(reporter,
indirectSize == directSize + headerLen + footerLen);
buffer.reset();
- obj->emit(&buffer, &catalog, true);
+ emit_object(obj, &buffer, &catalog, true);
REPORTER_ASSERT(reporter, indirectSize == buffer.getOffset());
REPORTER_ASSERT(reporter, stream_equals(buffer, 0, header, headerLen));
REPORTER_ASSERT(reporter, stream_equals(buffer, headerLen, expectedData,
@@ -227,18 +250,18 @@ static void TestSubstitute(skiatest::Reporter* reporter) {
catalog.setSubstitute(proxy.get(), stub.get());
SkDynamicMemoryWStream buffer;
- proxy->emit(&buffer, &catalog, false);
+ emit_object(proxy, &buffer, &catalog, false);
SkTSet<SkPDFObject*>* substituteResources =
catalog.getSubstituteList(false);
for (int i = 0; i < substituteResources->count(); ++i) {
- (*substituteResources)[i]->emit(&buffer, &catalog, true);
+ emit_object((*substituteResources)[i], &buffer, &catalog, true);
}
char objectResult[] = "2 0 obj\n<</Value 33\n>>\nendobj\n";
catalog.setFileOffset(proxy.get(), 0);
- size_t outputSize = catalog.getSubstituteObject(proxy.get())
- ->getOutputSize(&catalog, true);
+ size_t outputSize = get_output_size(
+ catalog.getSubstituteObject(proxy.get()), &catalog, true);
REPORTER_ASSERT(reporter, outputSize == strlen(objectResult));
char expectedResult[] =
« no previous file with comments | « src/pdf/SkPDFTypes.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698