1 // Copyright 2015 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "../../public/fpdf_doc.h"
6 #include "../../public/fpdfview.h"
7 #include "../../testing/embedder_test.h"
8 #include "testing/gtest/include/gtest/gtest.h"
10 class FPDFDocEmbeddertest : public EmbedderTest {};
12 TEST_F(FPDFDocEmbeddertest, DestGetPageIndex) {
13 EXPECT_TRUE(OpenDocument("testing/resources/named_dests.pdf"));
15 // NULL FPDF_DEST case.
16 EXPECT_EQ(0U, FPDFDest_GetPageIndex(document(), nullptr));
18 // Page number directly in item from Dests NameTree.
19 FPDF_DEST dest = FPDF_GetNamedDestByName(document(), "First");
20 EXPECT_NE(nullptr, dest);
21 EXPECT_EQ(1U, FPDFDest_GetPageIndex(document(), dest));
23 // Page number via object reference in item from Dests NameTree.
24 dest = FPDF_GetNamedDestByName(document(), "Next");
25 EXPECT_NE(nullptr, dest);
26 EXPECT_EQ(1U, FPDFDest_GetPageIndex(document(), dest));
28 // Page number directly in item from Dests dictionary.
29 dest = FPDF_GetNamedDestByName(document(), "FirstAlternate");
30 EXPECT_NE(nullptr, dest);
31 EXPECT_EQ(11U, FPDFDest_GetPageIndex(document(), dest));
33 // Invalid object reference in item from Dests NameTree.
34 dest = FPDF_GetNamedDestByName(document(), "LastAlternate");
35 EXPECT_NE(nullptr, dest);
36 EXPECT_EQ(0U, FPDFDest_GetPageIndex(document(), dest));