Add VerifyUriActionInLink() helper to fpdf_annot_embeddertest.cpp.
This helper function will be reused in future tests for URI actions.
Change-Id: I4df778945a7a8329e025a77476cedf8f4fc8bc3a
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/79232
Reviewed-by: Daniel Hosseinian <dhoss@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/fpdfsdk/fpdf_annot_embeddertest.cpp b/fpdfsdk/fpdf_annot_embeddertest.cpp
index 198bbe2..03e6773 100644
--- a/fpdfsdk/fpdf_annot_embeddertest.cpp
+++ b/fpdfsdk/fpdf_annot_embeddertest.cpp
@@ -88,6 +88,25 @@
}
}
+void VerifyUriActionInLink(FPDF_DOCUMENT doc,
+ FPDF_LINK link,
+ const std::string& expected_uri) {
+ ASSERT_TRUE(link);
+
+ FPDF_ACTION action = FPDFLink_GetAction(link);
+ ASSERT_TRUE(action);
+ EXPECT_EQ(static_cast<unsigned long>(PDFACTION_URI),
+ FPDFAction_GetType(action));
+
+ unsigned long bufsize = FPDFAction_GetURIPath(doc, action, nullptr, 0);
+ ASSERT_EQ(expected_uri.size() + 1, bufsize);
+
+ std::vector<char> buffer(bufsize);
+ EXPECT_EQ(bufsize,
+ FPDFAction_GetURIPath(doc, action, buffer.data(), bufsize));
+ EXPECT_STREQ(expected_uri.c_str(), buffer.data());
+}
+
} // namespace
class FPDFAnnotEmbedderTest : public EmbedderTest {};
@@ -2993,29 +3012,15 @@
FPDF_PAGE page = LoadPage(0);
ASSERT_TRUE(page);
{
- ScopedFPDFAnnotation annot(FPDFPage_GetAnnot(page, 3));
- ASSERT_TRUE(annot);
- EXPECT_EQ(FPDF_ANNOT_LINK, FPDFAnnot_GetSubtype(annot.get()));
- FPDF_LINK link_annot = FPDFAnnot_GetLink(annot.get());
- ASSERT_TRUE(link_annot);
-
- FPDF_ACTION action = FPDFLink_GetAction(link_annot);
- ASSERT_TRUE(action);
- EXPECT_EQ(static_cast<unsigned long>(PDFACTION_URI),
- FPDFAction_GetType(action));
-
constexpr char kExpectedResult[] =
"https://cs.chromium.org/chromium/src/third_party/pdfium/public/"
"fpdf_text.h";
- constexpr unsigned long kExpectedLength = pdfium::size(kExpectedResult);
- unsigned long bufsize =
- FPDFAction_GetURIPath(document(), action, nullptr, 0);
- ASSERT_EQ(kExpectedLength, bufsize);
- char buffer[1024];
- EXPECT_EQ(bufsize,
- FPDFAction_GetURIPath(document(), action, buffer, bufsize));
- EXPECT_STREQ(kExpectedResult, buffer);
+ ScopedFPDFAnnotation annot(FPDFPage_GetAnnot(page, 3));
+ ASSERT_TRUE(annot);
+ EXPECT_EQ(FPDF_ANNOT_LINK, FPDFAnnot_GetSubtype(annot.get()));
+ VerifyUriActionInLink(document(), FPDFAnnot_GetLink(annot.get()),
+ kExpectedResult);
}
{