replace detach/getStream apis on dynamicwstream with SkData

http://codereview.appspot.com/4657046/



git-svn-id: http://skia.googlecode.com/svn/trunk@1714 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tests/PDFPrimitivesTest.cpp b/tests/PDFPrimitivesTest.cpp
index 9a58fa6..a5feba8 100644
--- a/tests/PDFPrimitivesTest.cpp
+++ b/tests/PDFPrimitivesTest.cpp
@@ -17,12 +17,22 @@
 #include <string>
 
 #include "Test.h"
+#include "SkData.h"
 #include "SkPDFCatalog.h"
 #include "SkPDFStream.h"
 #include "SkPDFTypes.h"
 #include "SkScalar.h"
 #include "SkStream.h"
 
+static bool stream_equals(const SkDynamicMemoryWStream& stream, size_t offset,
+                          const void* buffer, size_t len) {
+    SkAutoDataUnref data(stream.copyToData());
+    if (offset + len > data.size()) {
+        return false;
+    }
+    return memcmp(data.bytes() + offset, buffer, len) == 0;
+}
+
 static void CheckObjectOutput(skiatest::Reporter* reporter, SkPDFObject* obj,
                               const std::string& representation,
                               bool indirect) {
@@ -32,8 +42,8 @@
     SkDynamicMemoryWStream buffer;
     obj->emitObject(&buffer, NULL, false);
     REPORTER_ASSERT(reporter, directSize == buffer.getOffset());
-    REPORTER_ASSERT(reporter, memcmp(buffer.getStream(), representation.c_str(),
-                                     directSize) == 0);
+    REPORTER_ASSERT(reporter, stream_equals(buffer, 0, representation.c_str(),
+                                            directSize));
 
     if (indirect) {
         // Indirect output.
@@ -52,14 +62,12 @@
         buffer.reset();
         obj->emitObject(&buffer, &catalog, true);
         REPORTER_ASSERT(reporter, indirectSize == buffer.getOffset());
-        REPORTER_ASSERT(reporter, memcmp(buffer.getStream(), header,
-                                         headerLen) == 0);
-        REPORTER_ASSERT(reporter,
-                        memcmp(buffer.getStream() + headerLen,
-                               representation.c_str(), directSize) == 0);
-        REPORTER_ASSERT(reporter,
-                        memcmp(buffer.getStream() + headerLen + directSize,
-                               footer, footerLen) == 0);
+        REPORTER_ASSERT(reporter, stream_equals(buffer, 0, header, headerLen));
+        REPORTER_ASSERT(reporter, stream_equals(buffer, headerLen,
+                                                representation.c_str(),
+                                                directSize));
+        REPORTER_ASSERT(reporter, stream_equals(buffer, headerLen + directSize,
+                                                footer, footerLen));
     }
 }
 
@@ -87,8 +95,8 @@
     catalog.emitObjectNumber(&buffer, int3.get());
     catalog.emitObjectNumber(&buffer, int1Again.get());
     char expectedResult[] = "1 02 03 01 0";
-    REPORTER_ASSERT(reporter, memcmp(buffer.getStream(), expectedResult,
-                                     strlen(expectedResult)) == 0);
+    REPORTER_ASSERT(reporter, stream_equals(buffer, 0, expectedResult,
+                                            strlen(expectedResult)));
 }
 
 static void TestObjectRef(skiatest::Reporter* reporter) {
@@ -109,8 +117,8 @@
     SkDynamicMemoryWStream buffer;
     int2ref->emitObject(&buffer, &catalog, false);
     REPORTER_ASSERT(reporter, buffer.getOffset() == strlen(expectedResult));
-    REPORTER_ASSERT(reporter, memcmp(buffer.getStream(), expectedResult,
-                                     buffer.getOffset()) == 0);
+    REPORTER_ASSERT(reporter, stream_equals(buffer, 0, expectedResult,
+                                            buffer.getOffset()));
 }
 
 static void TestPDFPrimitives(skiatest::Reporter* reporter) {