aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/AnnotationTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/AnnotationTest.cpp')
-rw-r--r--tests/AnnotationTest.cpp45
1 files changed, 43 insertions, 2 deletions
diff --git a/tests/AnnotationTest.cpp b/tests/AnnotationTest.cpp
index cc2fd1f912..b49b80d545 100644
--- a/tests/AnnotationTest.cpp
+++ b/tests/AnnotationTest.cpp
@@ -8,7 +8,9 @@
#include "SkCanvas.h"
#include "SkData.h"
#include "SkDocument.h"
+#include "SkSVGCanvas.h"
#include "SkStream.h"
+#include "SkXMLWriter.h"
#include "Test.h"
/** Returns true if data (may contain null characters) contains needle (null
@@ -57,8 +59,8 @@ DEF_TEST(Annotation_PdfLink, reporter) {
REPORTER_ASSERT(reporter, ContainsString(rawOutput, out->size(), "/Annots "));
}
-DEF_TEST(Annotation_NamedDestination, reporter) {
- REQUIRE_PDF_DOCUMENT(Annotation_NamedDestination, reporter);
+DEF_TEST(Annotation_PdfDefineNamedDestination, reporter) {
+ REQUIRE_PDF_DOCUMENT(Annotation_PdfNamedDestination, reporter);
SkDynamicMemoryWStream outStream;
sk_sp<SkDocument> doc(SkDocument::MakePDF(&outStream));
SkCanvas* canvas = doc->beginPage(612.0f, 792.0f);
@@ -75,3 +77,42 @@ DEF_TEST(Annotation_NamedDestination, reporter) {
REPORTER_ASSERT(reporter,
ContainsString(rawOutput, out->size(), "/example "));
}
+
+DEF_TEST(Annotation_SvgLink, reporter) {
+ SkDynamicMemoryWStream outStream;
+ std::unique_ptr<SkXMLWriter> xmlWriter(new SkXMLStreamWriter(&outStream));
+ SkRect bounds = SkRect::MakeIWH(400, 400);
+ std::unique_ptr<SkCanvas> canvas = SkSVGCanvas::Make(bounds, xmlWriter.get());
+
+ SkRect r = SkRect::MakeXYWH(SkIntToScalar(72), SkIntToScalar(72), SkIntToScalar(288),
+ SkIntToScalar(72));
+ sk_sp<SkData> data(SkData::MakeWithCString("http://www.gooogle.com"));
+ SkAnnotateRectWithURL(canvas.get(), r, data.get());
+
+ canvas->flush();
+ sk_sp<SkData> out = outStream.detachAsData();
+ const char* rawOutput = (const char*)out->data();
+
+ REPORTER_ASSERT(reporter,
+ ContainsString(rawOutput, out->size(), "a xlink:href=\"http://www.gooogle.com\""));
+}
+
+DEF_TEST(Annotation_SvgLinkNamedDestination, reporter) {
+ SkDynamicMemoryWStream outStream;
+ std::unique_ptr<SkXMLWriter> xmlWriter(new SkXMLStreamWriter(&outStream));
+ SkRect bounds = SkRect::MakeIWH(400, 400);
+ std::unique_ptr<SkCanvas> canvas = SkSVGCanvas::Make(bounds, xmlWriter.get());
+
+ SkRect r = SkRect::MakeXYWH(SkIntToScalar(72), SkIntToScalar(72), SkIntToScalar(288),
+ SkIntToScalar(72));
+ sk_sp<SkData> data(SkData::MakeWithCString("http://www.gooogle.com/#NamedDestination"));
+ SkAnnotateLinkToDestination(canvas.get(), r, data.get());
+
+ canvas->flush();
+ sk_sp<SkData> out = outStream.detachAsData();
+ const char* rawOutput = (const char*)out->data();
+
+ REPORTER_ASSERT(reporter,
+ ContainsString(rawOutput, out->size(),
+ "a xlink:href=\"http://www.gooogle.com/#NamedDestination\""));
+}