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

Side by Side Diff: tests/PDFPrimitivesTest.cpp

Issue 1033543002: SKPDF: refactor pdfcatalog and pdfdocument (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: 2015-03-23 (Monday) 19:02:27 EDT 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 unified diff | Download patch
« src/pdf/SkPDFCatalog.cpp ('K') | « src/pdf/SkPDFTypes.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2010 The Android Open Source Project 2 * Copyright 2010 The Android Open Source Project
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SkBitmap.h" 8 #include "SkBitmap.h"
9 #include "SkCanvas.h" 9 #include "SkCanvas.h"
10 #include "SkData.h" 10 #include "SkData.h"
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 REPORTER_ASSERT(reporter, stream_equals(buffer, 0, expectedData, 88 REPORTER_ASSERT(reporter, stream_equals(buffer, 0, expectedData,
89 directSize)); 89 directSize));
90 90
91 if (indirect) { 91 if (indirect) {
92 // Indirect output. 92 // Indirect output.
93 static char header[] = "1 0 obj\n"; 93 static char header[] = "1 0 obj\n";
94 static size_t headerLen = strlen(header); 94 static size_t headerLen = strlen(header);
95 static char footer[] = "\nendobj\n"; 95 static char footer[] = "\nendobj\n";
96 static size_t footerLen = strlen(footer); 96 static size_t footerLen = strlen(footer);
97 97
98 catalog.addObject(obj, false); 98 catalog.addObject(obj);
99 99
100 size_t indirectSize = get_output_size(obj, &catalog, true); 100 size_t indirectSize = get_output_size(obj, &catalog, true);
101 REPORTER_ASSERT(reporter, 101 REPORTER_ASSERT(reporter,
102 indirectSize == directSize + headerLen + footerLen); 102 indirectSize == directSize + headerLen + footerLen);
103 103
104 buffer.reset(); 104 buffer.reset();
105 emit_object(obj, &buffer, &catalog, true); 105 emit_object(obj, &buffer, &catalog, true);
106 REPORTER_ASSERT(reporter, indirectSize == buffer.getOffset()); 106 REPORTER_ASSERT(reporter, indirectSize == buffer.getOffset());
107 REPORTER_ASSERT(reporter, stream_equals(buffer, 0, header, headerLen)); 107 REPORTER_ASSERT(reporter, stream_equals(buffer, 0, header, headerLen));
108 REPORTER_ASSERT(reporter, stream_equals(buffer, headerLen, expectedData, 108 REPORTER_ASSERT(reporter, stream_equals(buffer, headerLen, expectedData,
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 } 160 }
161 161
162 static void TestCatalog(skiatest::Reporter* reporter) { 162 static void TestCatalog(skiatest::Reporter* reporter) {
163 SkPDFCatalog catalog; 163 SkPDFCatalog catalog;
164 SkAutoTUnref<SkPDFInt> int1(new SkPDFInt(1)); 164 SkAutoTUnref<SkPDFInt> int1(new SkPDFInt(1));
165 SkAutoTUnref<SkPDFInt> int2(new SkPDFInt(2)); 165 SkAutoTUnref<SkPDFInt> int2(new SkPDFInt(2));
166 SkAutoTUnref<SkPDFInt> int3(new SkPDFInt(3)); 166 SkAutoTUnref<SkPDFInt> int3(new SkPDFInt(3));
167 int1.get()->ref(); 167 int1.get()->ref();
168 SkAutoTUnref<SkPDFInt> int1Again(int1.get()); 168 SkAutoTUnref<SkPDFInt> int1Again(int1.get());
169 169
170 catalog.addObject(int1.get(), false); 170 catalog.addObject(int1.get());
171 catalog.addObject(int2.get(), false); 171 catalog.addObject(int2.get());
172 catalog.addObject(int3.get(), false); 172 catalog.addObject(int3.get());
173 173
174 REPORTER_ASSERT(reporter, catalog.getObjectNumber(int1.get()) == 1); 174 REPORTER_ASSERT(reporter, catalog.getObjectNumber(int1.get()) == 1);
175 REPORTER_ASSERT(reporter, catalog.getObjectNumber(int2.get()) == 2); 175 REPORTER_ASSERT(reporter, catalog.getObjectNumber(int2.get()) == 2);
176 REPORTER_ASSERT(reporter, catalog.getObjectNumber(int3.get()) == 3); 176 REPORTER_ASSERT(reporter, catalog.getObjectNumber(int3.get()) == 3);
177 REPORTER_ASSERT(reporter, catalog.getObjectNumber(int1Again.get()) == 1); 177 REPORTER_ASSERT(reporter, catalog.getObjectNumber(int1Again.get()) == 1);
178 } 178 }
179 179
180 static void TestObjectRef(skiatest::Reporter* reporter) { 180 static void TestObjectRef(skiatest::Reporter* reporter) {
181 SkAutoTUnref<SkPDFInt> int1(new SkPDFInt(1)); 181 SkAutoTUnref<SkPDFInt> int1(new SkPDFInt(1));
182 SkAutoTUnref<SkPDFInt> int2(new SkPDFInt(2)); 182 SkAutoTUnref<SkPDFInt> int2(new SkPDFInt(2));
183 SkAutoTUnref<SkPDFObjRef> int2ref(new SkPDFObjRef(int2.get())); 183 SkAutoTUnref<SkPDFObjRef> int2ref(new SkPDFObjRef(int2.get()));
184 184
185 SkPDFCatalog catalog; 185 SkPDFCatalog catalog;
186 catalog.addObject(int1.get(), false); 186 catalog.addObject(int1.get());
187 catalog.addObject(int2.get(), false); 187 catalog.addObject(int2.get());
188 REPORTER_ASSERT(reporter, catalog.getObjectNumber(int1.get()) == 1); 188 REPORTER_ASSERT(reporter, catalog.getObjectNumber(int1.get()) == 1);
189 REPORTER_ASSERT(reporter, catalog.getObjectNumber(int2.get()) == 2); 189 REPORTER_ASSERT(reporter, catalog.getObjectNumber(int2.get()) == 2);
190 190
191 char expectedResult[] = "2 0 R"; 191 char expectedResult[] = "2 0 R";
192 SkDynamicMemoryWStream buffer; 192 SkDynamicMemoryWStream buffer;
193 int2ref->emitObject(&buffer, &catalog); 193 int2ref->emitObject(&buffer, &catalog);
194 REPORTER_ASSERT(reporter, buffer.getOffset() == strlen(expectedResult)); 194 REPORTER_ASSERT(reporter, buffer.getOffset() == strlen(expectedResult));
195 REPORTER_ASSERT(reporter, stream_equals(buffer, 0, expectedResult, 195 REPORTER_ASSERT(reporter, stream_equals(buffer, 0, expectedResult,
196 buffer.getOffset())); 196 buffer.getOffset()));
197 } 197 }
198 198
199 static void TestSubstitute(skiatest::Reporter* reporter) { 199 static void TestSubstitute(skiatest::Reporter* reporter) {
200 SkAutoTUnref<SkPDFTestDict> proxy(new SkPDFTestDict()); 200 SkAutoTUnref<SkPDFTestDict> proxy(new SkPDFTestDict());
201 SkAutoTUnref<SkPDFTestDict> stub(new SkPDFTestDict()); 201 SkAutoTUnref<SkPDFTestDict> stub(new SkPDFTestDict());
202 202
203 proxy->insert("Value", new SkPDFInt(33))->unref(); 203 proxy->insert("Value", new SkPDFInt(33))->unref();
204 stub->insert("Value", new SkPDFInt(44))->unref(); 204 stub->insert("Value", new SkPDFInt(44))->unref();
205 205
206 SkPDFCatalog catalog; 206 SkPDFCatalog catalog;
207 catalog.addObject(proxy.get(), false); 207 catalog.addObject(proxy.get());
208 catalog.setSubstitute(proxy.get(), stub.get()); 208 catalog.setSubstitute(proxy.get(), stub.get());
209 209
210 REPORTER_ASSERT(reporter, stub.get() == catalog.getSubstituteObject(proxy)); 210 REPORTER_ASSERT(reporter, stub.get() == catalog.getSubstituteObject(proxy));
211 REPORTER_ASSERT(reporter, proxy.get() != catalog.getSubstituteObject(stub)); 211 REPORTER_ASSERT(reporter, proxy.get() != catalog.getSubstituteObject(stub));
212 } 212 }
213 213
214 // This test used to assert without the fix submitted for 214 // This test used to assert without the fix submitted for
215 // http://code.google.com/p/skia/issues/detail?id=1083. 215 // http://code.google.com/p/skia/issues/detail?id=1083.
216 // SKP files might have invalid glyph ids. This test ensures they are ignored, 216 // SKP files might have invalid glyph ids. This test ensures they are ignored,
217 // and there is no assert on input data in Debug mode. 217 // and there is no assert on input data in Debug mode.
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 // Filter just created; should be unvisited. 359 // Filter just created; should be unvisited.
360 REPORTER_ASSERT(reporter, !filter->visited()); 360 REPORTER_ASSERT(reporter, !filter->visited());
361 SkPaint paint; 361 SkPaint paint;
362 paint.setImageFilter(filter.get()); 362 paint.setImageFilter(filter.get());
363 canvas->drawRect(SkRect::MakeWH(100, 100), paint); 363 canvas->drawRect(SkRect::MakeWH(100, 100), paint);
364 doc->close(); 364 doc->close();
365 365
366 // Filter was used in rendering; should be visited. 366 // Filter was used in rendering; should be visited.
367 REPORTER_ASSERT(reporter, filter->visited()); 367 REPORTER_ASSERT(reporter, filter->visited());
368 } 368 }
OLDNEW
« src/pdf/SkPDFCatalog.cpp ('K') | « src/pdf/SkPDFTypes.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698